pypi allelix 2.4.0
v2.4.0

3 hours ago

v2.4.0

Correctness release. Every annotation path now selects ClinVar rows by locus and allele, never by rsID alone, and the same genotype produces the same findings whether the input is a chip file or a VCF. GRCh37 chip files regain population frequency, missense and deleteriousness scores through a new cross-build identity table. VCF quality information is honoured for the first time.

Fixed

  • Chip reports no longer show reference-allele records as findings. ClinVar rows that describe the reference allele itself (written with =, for example c.1601=) were matched by rsID on array input, so a person homozygous for the normal allele could be shown a "Pathogenic" row at F5 or BRCA1. Such records are now never reported. To audit an existing report: allelix analyze RAW_FILE --diff OLD_REPORT.json. ClinVar rows listed as removed whose allele page is titled with = were affected.

  • gVCF and other VCFs without rsIDs no longer drop ClinVar findings. When a VCF record had no rsID, certain ClinVar variants could be skipped silently while the same genotype on a chip was reported. ClinVar findings are now selected by chromosome, position, reference allele and alternate allele on every input type. Chip probes with a vendor ID instead of an rsID (such as 23andMe i probes) are never matched by position, because their strand is unknown.

  • ClinVar no longer matches by rsID at a different position. When positions disagreed with the genome build in use, a ClinVar row could still be attached by rsID. Rows must now match the variant's position in the build-specific ClinVar data.

  • VCF rows the variant caller rejected were reported as findings. Allelix ignored the VCF FILTER column. Rows marked as unreliable (e.g. LowQual, a VQSR tranche) were annotated exactly like passing calls. Such rows are now skipped by default and counted by filter name in the report. --keep-filtered includes them; the annotated VCF marks each with ALLELIX_FILTER. Genotype quality is now read: a call with GQ below 20 (set with --min-gq), or with no reads, is a no-call. JSON reports record these counts in input.vcf_quality.

  • MyHeritage and Family Tree DNA files re-saved through a spreadsheet are recognized again. Spreadsheet-resaved exports (with trailing commas, shifted headers, or stripped # comment markers) are now detected and parsed, including tab-delimited copies.

  • VCF files with only structural-variant or copy-number records now fail with a clear message. Sequencing.com delivers a 30x genome as three VCFs; the two that contain only SV/CNV records now stop with a message naming the correct file (snp-indel.genome.vcf.gz). Structural-variant and breakend records in any VCF are counted in the report.

  • stats, extract and export plink now recover rsIDs for VCF files without them. All four commands now share the same recovery step and databases. stats also reports high-value no-calls and gains a --data-dir option.

  • Genome build detection now works on VCF files without rsIDs. Seed-SNP matching now uses positions as well as rsIDs, so GRCh37 files with chr-prefixed chromosomes are no longer assumed GRCh38.

  • gVCF positions with no reads were treated as reference, and high-value no-calls were never listed for VCF input. Low-GQ blocks, zero-coverage blocks and uncovered positions are now no-calls. The high-value no-call list is now populated for VCF input with reasons.

  • VCF spanning-deletion alleles (*) are no longer read as real alleles. Calls including * are skipped; the character never appears in a genotype. export plink also skips non-ACGT alleles such as I/D indel codes.

  • allelix db update now exits with an error when a database fails to install.

  • ClinPGx no longer reports false matches at palindromic SNP sites. Complement matching is suppressed at palindromic sites where forward and reverse strands are indistinguishable.

Added

  • Population frequency, missense and deleteriousness scores for GRCh37 chip files. A new cross-build rsID identity table (derived from dbSNP) translates GRCh37 genotypes to GRCh38 alleles for gnomAD, AlphaMissense and CADD lookup. Where the reference strand was flipped between assemblies the translation is explicit; ambiguous sites receive no values. The table also supplies the reference allele for strand-aware matching and recovers rsIDs for VCF files on both builds. Downloaded by allelix db update.

  • Plausibility flag for genotype calls. Each finding is compared with gnomAD allele frequency. A homozygous call for an allele rarer than 0.01% is marked implausible; a heterozygous call for an allele with no known carriers is suspicious. Flagged rows are never hidden. Thresholds are configurable via allelix config set.

  • MyHeritage low-pass whole-genome exports are labeled as imputed. Kits from January 2026 onward (about 2x coverage) state their provenance in every report with advice to confirm findings by direct genotyping. JSON reports carry the method as input.method.

Changed

  • JSON report schema version 7. Annotations gain a plausibility field. The input block gains gvcf, vcf_quality, method, and each high_value_no_calls entry gains a reason. --diff accepts reports from earlier schema versions.

  • Annotated VCF output schema 0.2.0. Caller-rejected rows are copied unchanged without Allelix fields; with --keep-filtered they carry ALLELIX_FILTER.

  • Every enrichment lookup is made by position and allele. gnomAD, AlphaMissense and CADD values are looked up at chromosome, position, reference and alternate allele, never by rsID.

Documentation

  • Documentation no longer references private-repo issue and PR numbers; database sizes updated to match current builds.
  • New per-provider format guide: Sequencing.com deliverables, MyHeritage array and low-pass exports, MyHappyGenes build label.
  • New architecture decision records for: locus-keyed ClinVar selection, cross-build rsID identity table, plausibility flag, VCF quality gate, shared rsID resolution.

Infrastructure

  • Chip / gVCF parity harness verifying identical annotations from the same synthetic genotypes on both input paths.

Don't miss a new allelix release

NewReleases is sending notifications on new releases.