mrkeyoor.com_
Fri 16 Oct 18:51 UTC
Dataevaluationupdated 11 Oct 2026

deconv-preflight review

Deconv-preflight checks bulk gene-expression tables against exported single-cell reference IDs and donor metadata before analysis. It catches malformed values and mismatched labels locally, without changing or uploading inputs. It helps prevent input mistakes, while leaving biological suitability and deconvolution accuracy for you to assess.

-45 / 4dstars / 7d
Verdict

Our deconv-preflight run built in 1 second and passed all 27 tests in 4 seconds, making this small alpha worth trying for exact reference-ID and metadata checks. Use it before a deconvolution workflow when you can provide matching exports and decide which warnings should stop the job. A passing report leaves normalization and biological suitability unverified.

We ran it

Lab card: what happened when we ran deconv-preflightScreenshot of deconv-preflight (github.com/Re1nhard-1/deconv-preflight)
Install✓ · 18s36 packages · 37 MB
Build✓ · 1s
Tests✓ · 4s27 passed · 0 failed of 27 (pytest)
Known vulns0(pip-audit)
Repo22 files~575 lines of source · 0 MB · 1 CI workflows · tests dir

Answers from our run

Does deconv-preflight build from source?

Dependencies installed in 18 seconds (36 packages), and the build succeeded in 1 seconds. We cloned commit db959a7 into a clean Debian container with 3 CPUs and no project-specific setup.

Do deconv-preflight's tests pass?

Yes: 27 of 27 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does deconv-preflight have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use deconv-preflight?

Researchers seeking cell-type proportion estimates: the README says this tool does not run deconvolution.

What are the alternatives to deconv-preflight?

Pandera, Frictionless. Our deconv-preflight run built in 1 second and passed all 27 tests in 4 seconds, making this small alpha worth trying for exact reference-ID and metadata checks.

Setup5/518-second install, 37 MB environment, and clean local checks
Docs4/5Exact file contracts, export guidance, and explicit scope limits
Community1/5September 21 push, empty issue list, and no release history
Maturity3/527 passing tests and CI, with alpha distribution and narrow scope

Who it’s for

Researchers checking bulk tables against an existing single-cell reference before deconvolution.
Pipeline maintainers who want named findings and JSON reports for exact IDs, expression values, and donor coverage.
AnnData users willing to export labels from the same filtered reference used in analysis.

Who it’s NOT for

Researchers seeking cell-type proportion estimates: the README says this tool does not run deconvolution.
Teams requiring validation of normalization, species, tissue, or reference expression values: these are explicitly outside its scope.
Workflows needing automatic identifier mapping or cell reordering: the checker requires exact matches and leaves inputs unchanged.
Operators expecting every warning to fail the job by default: warnings require strict mode to enforce that policy.
Users requiring a published PyPI release and established support history: the README calls this an alpha, and the release endpoint returned no release.

Setup reality

Our October 9 sandbox installed commit db959a7 in 18 seconds, adding 36 packages and occupying 37 MB. The build passed in 1 second. Tests passed in 4 seconds, with pytest reporting 27 passed and 0 failed of 27. Pip-audit reported 0 known vulnerabilities.

The CLI needs Python and local exports: a bulk table, reference gene IDs, reference cell IDs, and donor/cell-type metadata. It requires no hosted credential. The package declares no runtime dependencies, which is separate from the full environment footprint our harness measured.

IDs must match exactly and exports must represent the reference used downstream. Default success can include warnings, so choose strict mode deliberately. The lab found 1 CI workflow and a tests directory, with no Dockerfile. The README describes an alpha installed from the checkout, without a PyPI release.

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.

Alternatives

ProjectWhat it isPick it when
PanderaA Python framework for validating dataframe-like objects against custom schemas and checks.pick this instead when your pipeline needs custom dataframe rules beyond deconvolution input contracts.
FrictionlessA Python framework and CLI for describing and validating tabular datasets.pick this instead when general file schemas and reusable dataset descriptions are the main requirement.

What people are saying

  1. [velocity-scout] Re1nhard-1/deconv-preflight

Sources

  1. Deconv-preflight input contract and limitations
  2. Checker implementation at db959a7
  3. Reference export guidance
  4. PBMC3k example and scope
  5. Package metadata
  6. Release history
  7. Pandera documentation
  8. Frictionless documentation

More data reviews

wine-quality-svc-tuning · dhis2-immunisation-audit · OpenTerminal · The-Quant-Trading-Vault · multimodal-product-discovery · edgequake · the whole board →