Skip to main content

NGS-based donor chimerism monitoring for HSCT

Project description

allomix

PyPi version Python versions tests

NGS-based donor chimerism monitoring for hematopoietic stem cell transplantation (HSCT).

allomix calculates donor chimerism percentages from NGS data, replacing traditional STR-based analysis with a higher-sensitivity SNP-based approach. It is panel-agnostic: it operates on whatever bi-allelic markers (SNPs or indels) are present in the input VCFs, whether that is 24 indels, 76 SNPs, 202 SNPs, or any other set of loci with sufficient depth.

Results are highly panel specific: do your own validation. Sensitivity and limit of detection depend on your marker set, sequencing depth, and noise profile. Qualify the tool on your own panel before clinical use (see the Panel guide).

Chimerism MLE methodology is based on Crysup & Woerner (2022).

Clinical context

After HSCT, patients carry a mixture of their own (host) and transplanted (donor) cells. Monitoring the donor-to-host ratio over time detects graft rejection or disease relapse early enough to intervene. Current STR-based methods have limited sensitivity (~3-5% LOD) and require separate workflows. allomix aims to:

  • achieve <1% sensitivity for detecting minority cell populations,
  • support up to 3 genomes (host + 2 donors) for patients with multiple transplants, and
  • provide timeline tracking of chimerism across serial post-HSCT timepoints.

Installation

pip install allomix

For development:

git clone https://github.com/SACGF/allomix.git
cd allomix
uv pip install -e ".[dev]"

Quickstart

allomix takes two VCFs: a panel VCF with host/donor genotypes (from GATK joint calling of the reference samples) and an admix VCF with per-timepoint AD counts (from forced bcftools mpileup at the panel sites). A ready-to-use Snakemake pipeline that produces both is in pipeline/.

allomix detect \
    --genotype-vcf patient001_panel.vcf.gz \
    --admix-vcf patient001_admix.vcf.gz \
    --host-sample HOST_001 \
    --donor-sample DONOR_001 \
    --sample TP1_20240101 \
    --html report.html

See the CLI usage guide for multi-donor runs, timelines, bias correction, output options, and input/output reference.

Workflow

1. Genotyping            Sequence host and each donor individually
   (upstream)              → per-sample GVCFs at marker loci

2. estimate-bias         (optional) Estimate per-marker amplification
                         bias from genotyping VCFs → bias table TSV

3. Sequencing            Sequence post-HSCT admixture samples at serial
   (upstream)            timepoints (>=3 per patient) → per-sample GVCFs

4. Joint calling         Combine HOST + DONOR GVCFs (GenomicsDBImport +
   (upstream)            GenotypeGVCFs) → panel VCF; pileup admix samples
                         at the panel sites → admix VCF

5. allomix detect       Chimerism for one timepoint → TSV / JSON / HTML / PDF
   allomix timeline      Track chimerism across timepoints → JSON / HTML / PDF
   allomix report        Render HTML/PDF from a saved detect/timeline JSON

Joint calling of HOST + DONOR propagates donor ALT alleles to the panel even when one sample is hom-ref; pileup of the admix samples preserves raw per-allele counts needed for host fractions below ~5%. See the Joint Calling Guide for the full rationale.

Documentation

Validation and status

allomix has been validated in silico (synthetic chimeric VCFs with realistic noise models: per-marker bias, depth CV, locus dropout) and on real reads from a public dataset of titrated DNA mixtures (SRA study SRP434573). On the real mixtures it recovered known host fractions from 10% down to 1%, resolved a three-person mixture, and called residual host with no false positives on the pure-donor controls. Full validation, including the real-data limit of detection, is in the paper build guide.

These are analytical bounds, not wet-lab limits. Wet-lab validation against STR chimerism on real patient samples is planned, and is a per-laboratory step for any new panel.

This project is under active development.

Project structure

src/allomix/          # Installable library and CLI, the shipped product
scripts/              # Development and validation utilities
paper/scripts/        # Publication-specific analysis and figures
tests/                # pytest tests

src/allomix/ is everything a user gets from pip install allomix: the core library (genotyping, chimerism estimation, simulation, QC, reporting) and the CLI entry point. scripts/ and paper/scripts/ are developer-facing and not part of the installed package. See the Architecture Guide, Scripts Guide, and paper build guide.

License

allomix is distributed under the MIT licence, and comes with no warranty. Results are highly panel specific: do your own validation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allomix-0.4.2.tar.gz (218.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

allomix-0.4.2-py3-none-any.whl (160.1 kB view details)

Uploaded Python 3

File details

Details for the file allomix-0.4.2.tar.gz.

File metadata

  • Download URL: allomix-0.4.2.tar.gz
  • Upload date:
  • Size: 218.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for allomix-0.4.2.tar.gz
Algorithm Hash digest
SHA256 483ce4d39fe62f3eddd11be3fd8fa83b5dbbafcc453d584302301976db490a39
MD5 c062b415ac20bdcc79430254a071db00
BLAKE2b-256 cf22e059e003987b1ad5583c41fcd4a05131b52f460b2142f23571855382fc24

See more details on using hashes here.

File details

Details for the file allomix-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: allomix-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 160.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for allomix-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 681e8a717dfb7a0a9da65c884b27fe67b79a762c29a6a368984805ecf3f180bc
MD5 4996c498a45ba435919f4a2fe9fc8097
BLAKE2b-256 cfa20768e1898ed73600031f84c8e14f5f6ae2e05fb317276411814ab47b2655

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page