Targeted repeat-expansion calling from Oxford Nanopore BAM files, with per-allele methylation. It genotypes 82 disease loci and tells you, per sample, whether a normal result is actually trustworthy.
A read the aligner soft-clipped at the repeat still bounds the allele from below. Reads are classified as spanning, split, partial or uninformative, and partial evidence is reported as a lower bound with its read support rather than discarded.
Every expansion-regime locus reports the fraction of reads long enough to have spanned a pathogenic allele. Where that is low, the call is explicitly marked as not being negative evidence instead of looking like a clean result.
5mC is summarised per allele over windows declared in gene orientation, so a promoter window lands on the correct flank either strand. Each allele also carries its spread, upward length tail and methylated-read fraction.
One statically linked binary for x86-64 Linux. It needs nothing installed, and it carries the STRchive catalogue, the clinical overlay and the VCF dialects, so the file is the whole tool. Each release publishes the binary with its SHA-256, and the build is reproducible: a checkout of the release tag builds the same bytes.
# download the latest release, check it, put it on the PATH $ gh release download --repo martinandclaude/expansionscout $ sha256sum -c expansionscout.sha256 $ install -m 755 expansionscout ~/.local/bin/ $ expansionscout --version # or build it: needs rustup and a C compiler $ git clone https://github.com/martinandclaude/expansionscout $ cd expansionscout $ ./build-static.sh
The binary and its checksum are also on the releases page.
Point it at a coordinate-sorted, indexed BAM aligned to GRCh38 and the reference it was aligned to. Methylation output additionally needs MM/ML tags from modification-aware basecalling.
# the whole catalogue $ expansionscout call --bam sample.bam --ref hg38.fa.gz --out results/sample # selected loci, by id, alias or gene name $ expansionscout call \ --bam sample.bam \ --ref hg38.fa.gz \ --out results/sample \ --loci FMR1 C9ORF72 HTT \ --sex XY \ --mosaic \ --vcf → results/sample.loci.tsv one row per locus → results/sample.per_read.tsv one row per read → results/sample.report.html the sample as a worklist, self-contained → results/sample.vcf one record per locus, with --vcf
| locus | gene | a1 | a2 | class | 5mC | detect | evidence |
|---|---|---|---|---|---|---|---|
| FXS_FMR1 | FMR1 | 30 | 120 | premutation | 0.07 | 0.98 | NONE |
| HD_HTT | HTT | 17 | 21 | normal | . | 1.00 | NONE |
| SCA1_ATXN1 | ATXN1 | 29 | 30 | normal | . | 1.00 | NONE |
| FTDALS1_C9orf72 | C9orf72 | 2 | 8 | normal | 0.44 | 0.11 | EXPANSION_LB |
The last row is the case the tool exists for. Both alleles look normal, but only 11 % of reads were long enough to have spanned a pathogenic allele, and clipped reads support something much longer. That result is flagged rather than reported as a negative.
Alleles longer than the reads cannot be measured; no method working on aligned sequence can size a tract no read crosses. Mosaicism is described through spread and minor modes, never quantified as a fraction. Methylation is only as good as the basecalling that produced the tags.
Interpretation is locus-specific: composition loci such as RFC1 turn on which motif is expanded rather than length, and at ATXN1 a long interrupted allele can be benign while a shorter pure one is not.
The test suite is synthetic. Alignments are built in process with explicit CIGAR strings, so no sequencing data is needed and none is distributed.
Concordance against orthogonal measurement — PCR fragment analysis, repeat-primed PCR, Southern blot — has not been established. Treat the output accordingly.
This is not a clinical assay and no output is a diagnostic claim. Confirm every size-class boundary against your own laboratory's validated cut-points before relying on a label.
expansionscout bundles the STRchive disease-locus catalogue, redistributed under CC BY 4.0. That licence requires attribution, so cite STRchive if you use this tool, and the repository and the release you used.
Hiatt L, Weisburd B, Dolzhenko E, Rubinetti V, Avvaru AK, VanNoy GE, Kurtas NE, Rehm HL, Quinlan AR, Dashnow H. STRchive: a dynamic resource detailing population-level and locus-specific insights at tandem repeat disease loci. Genome Medicine 2025;17(1):29. doi:10.1186/s13073-025-01454-4
Issues and pull requests are welcome, particularly locus overlay entries, validation against known-size samples, and anything that improves the honesty of the detectability estimate.