A passing report leaves biological suitability undecided
Deconv-preflight catches input mismatches before a deconvolution workflow tries to estimate cell-type proportions from bulk expression data. It compares exported reference gene and cell identifiers with the bulk table and its metadata. If a cell is missing or a sample contains invalid values, you get a named finding before the analysis starts. That is useful work, especially when datasets arrive from different people or export scripts.
Our checkout had 22 files and about 575 source lines. The narrow scope makes the tool easier to inspect than an entire analysis framework. It also sets the limit of the recommendation: a clean report says something about the exported input contract. The README explicitly excludes reference expression values, normalization, and tissue or species compatibility. You still need an appropriate reference and a defensible analysis method.
What happened when we ran it
Our sandbox installed deconv-preflight at commit db959a7 in 18 seconds, adding 36 packages and using 37 MB on disk. The build passed in 1 second. On October 9, 2026, we used Python 3.12 on Debian with 3 CPUs and 8 GB of RAM, without secrets or elevated privileges. The install and build both completed successfully in that environment.
The test step completed in 4 seconds: pytest reported 27 passed and 0 failed out of 27. Pip-audit found 0 known vulnerabilities. The lab also found 1 CI workflow and a tests directory, with no Dockerfile. This is a clean result for the supplied code checks. It contains no large-dataset timing or deconvolution accuracy measurement, so neither belongs in a performance claim about the project.
Exact identifiers expose export mistakes instead of repairing them
The bulk input is a CSV or TSV table whose first column is gene_id, followed by sample columns. Reference genes and cells come from separate plain-text lists, while metadata names each cell's donor and cell type. The checker compares identifiers exactly. Automatic gene-name conversion or silent trimming would conceal a mismatch, so its refusal to repair those inputs is a useful choice for an audit step.
The 27 passing tests give us reason to try the checker, while the export documentation explains what you must supply. AnnData users should export the gene axis belonging to the matrix they actually analyze, rather than assume the raw layer has identical genes. Cell order must come from that same filtered reference. A check is only relevant when the exported labels describe the object the downstream method will consume.
Positive expression and donor coverage need separate attention
The source rejects non-finite or negative bulk values and flags samples with no positive expression. It also looks for positive bulk expression among genes shared with the reference. That catches a failure that an apparently nonempty table can hide: a sample may contain numbers yet contribute nothing on the gene set the analysis can use. The report gives finding codes and overlap statistics for investigation.
An 18-second install doesn't settle which warning should stop your pipeline. Fractional values prompt a units check, while donor warnings identify a reference drawn from a single donor or cell types absent from some donors. Those findings need interpretation against the chosen method. The export guide specifically warns against substituting sample or batch labels for biological donors, a mistake that would give the checker misleading metadata to reason about.
Default success can include warnings
The CLI supports JSON output and a strict mode that treats warnings as failure. In ordinary mode, warnings can coexist with a successful exit. If you wire the command into a workflow, decide whether its default policy matches yours. Checking only the exit status without reading the report could let a donor warning pass through to an analysis that depends on donor diversity.
Our 4-second test run supports trying that integration, but it doesn't choose your scientific policy. The optional shared-gene threshold is supplied by the user, not derived as a universally suitable cutoff. Keep the report with the input revision and record why any warning was accepted. The source also includes an explicit list of unchecked properties in its JSON payload, which helps a future reader avoid interpreting a successful report too broadly.
Local checking still requires careful exports and report handling
The core package declares no runtime dependencies, whereas our harness environment installed 36 packages. Those are different descriptions: the former is the package's declaration, and the latter is the measured preparation footprint. The supplied run doesn't attribute every installed package to a particular role. You need Python and exported files for the CLI, without a hosted credential or a service that receives your expression tables.
The public-data guide uses PBMC3k exports and clearly identifies its pseudo-bulk construction as a technical example drawn from a single donor. It isn't independent biological replication or an accuracy benchmark. The export guide also presents an illustrative R route. Reports can include your identifiers, and the checker leaves inputs unchanged. Before sharing a report, inspect which labels it carries and whether those labels may identify samples or participants.
Passing checks make this alpha worth a small pipeline trial
The last push was September 21, 2026, and GitHub showed no open issues or PRs. The fetched issue list was empty, and the latest-release endpoint returned no release. The README calls the tool an alpha and says it has no PyPI release. Together, those facts give little evidence of a broad user base or a long support history. They don't establish abandonment.
Our 37 MB environment and clean test result make a controlled trial reasonable if these input formats match your workflow. Pin the inspected commit while you evaluate it. Choose Pandera when you need custom checks on dataframe objects, or Frictionless when your job is validating general tabular files and schemas. Deconv-preflight earns its place when exact reference alignment and donor metadata are the recurring problem. Keep normalization and biological suitability in the analysis review that follows.

