SniffCell Lite
SniffCell Lite keeps a compact workflow:
sniffcell-lite find: call ctDMR catalogs from a methylation atlas.sniffcell-lite anno: annotate variants from supporting reads, a BAM, a reference FASTA, and a ctDMR catalog.sniffcell-lite report: build a lite-native HTML report, optionally with per-variant figures.
This repository is the canonical home of the lite find, anno, and reporting workflow.
Install
pip install sniffcell-lite
To install the latest development version directly from GitHub:
pip install git+https://github.com/Fu-Yilei/SniffCell-lite.git
Source code and issue tracking are maintained at Fu-Yilei/SniffCell-lite.
Find
find keeps the original atlas-driven flavor. The bundled tissue atlas supports tissue code or tissue name lookup through -ck.
sniffcell-lite find \
-n atlas/all_celltypes_blocks.npy \
-i atlas/all_celltypes_blocks.index.gz \
-m atlas/all_celltypes.txt \
-ck "Colon, Ascending" \
-o colon_ascending.ctdmr.tsv
Equivalent code form:
sniffcell-lite find -ck 3E -o colon_ascending.ctdmr.tsv
The default cell-type JSON is the packaged sniffcell/data/tissue_atlas.json. You can still pass a custom atlas with -cf.
Anno
Single-variant mode requires a BAM and reference FASTA. SniffCell Lite maps the variant-supporting reads in the BAM, selects ctDMRs from the catalog that overlap those supporting-read alignment spans, computes methylation from the BAM only for those reads at those ctDMRs, and assigns the variant from the targeted read-level methylation calls. ctDMR evidence is not capped to a fixed distance from the variant.
sniffcell-lite anno \
-i sample.bam \
-r ref.fa \
--variant-name variant_001 \
--variant-location chr1:100000-101000 \
--supporting-reads readA,readB,readC \
--catalog colon_ascending.ctdmr.tsv \
-o anno_out
Batch mode uses a TSV or CSV with these columns:
variant_name variant_location supporting_reads catalog bam reference
Run:
sniffcell-lite anno --batch variants.tsv -o anno_out
supporting_reads accepts comma, pipe, semicolon, whitespace-delimited text, JSON list text, or @path/to/read_names.txt.
If every batch row uses the same reference, pass it once instead of adding a reference column:
sniffcell-lite anno --batch variants.tsv -r ref.fa -o anno_out
Outputs
sniffcell-lite find writes:
*.tsv: ctDMR catalog*.tsv.igv.bed: IGV BED companion*.tsv.catalog.json: catalog manifest when tissue metadata was used
sniffcell-lite anno writes:
variant_assignment.tsvvariant_assignment_readable.tsvvariant_assignment_readable_long.tsvreads_classification.tsvsupport_read_mappings.tsvanno_compact_manifest.jsonoranno_batch_manifest.json
Report
report reads a sniffcell-lite anno output folder directly. Batch reports keep
the per-row BAM and ctDMR catalog from the original lite batch manifest, so
multi-tissue/multi-BAM annotation outputs do not need to be coerced into a
single full-SniffCell manifest.
Table-only report:
sniffcell-lite report --anno_output anno_out -o anno_report
Report with lightweight per-variant figures:
sniffcell-lite report --anno_output anno_out --with_figures -o anno_report
Useful filters:
sniffcell-lite report \
--anno_output anno_out \
--min_overlap_pct 0 \
--min_majority_pct 0 \
--max_variants 100 \
--with_figures \
-o anno_report
To report only listed variants, or to remove listed variants, provide a TSV/CSV
with an id column or a one-ID-per-line file:
sniffcell-lite report \
--anno_output anno_out \
--include_variants selected_ids.tsv \
--with_figures \
-o selected_report
sniffcell-lite report \
--anno_output anno_out \
--exclude_variants rejected_ids.tsv \
--with_figures \
-o filtered_report
--include_variants and --exclude_variants are mutually exclusive. The report
writes index.html, high_confidence_variants.tsv, report_manifest.json,
normalized inclusion/exclusion provenance when used, and optional files under
figures/.
Tests
pytest -q
Metadata
Release files for sniffcell-lite 0.9.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sniffcell_lite-0.9.7.tar.gz | 100.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sniffcell_lite-0.9.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 204.0 kB
Release files / sniffcell_lite-0.9.7.tar.gz
| Download URL | sniffcell_lite-0.9.7.tar.gz |
|---|---|
| Size | 100.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b94f7c4871bc9b2e6b2f7d43a6165e777e19ecfa29ed19882dc874bb0f376678
|
|
BLAKE2b-256 checksum How to use checksums |
71db0a7ccaf4c510eee894d54a386255f7f1edce9685af4d461a14ba0191887b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.
Transparency logRelease files / sniffcell_lite-0.9.7-py3-none-any.whl
| Download URL | sniffcell_lite-0.9.7-py3-none-any.whl |
|---|---|
| Size | 103.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f25e169af62ec723205fc65d4f0d706bcd0577e2cb7d3dec37427e0a53ee4ce6
|
|
BLAKE2b-256 checksum How to use checksums |
296bbcd7f2fdf761817f099867919c7bf9ef9b9180e46ac321751c8236c5b2da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.
Transparency log