No database needs rebuilding after upgrading: caches built by 2.5.1 stay
current. ClinVar condition names in an existing cache are cleaned as they
are read. The first ClinVar build after upgrading starts
clinvar-build.log in the data directory.
Changed
- JSON reports use schema 11 (2.5.1 wrote 10). Each changed entry in the
diffblock addsbelow_display_floor. The report adds
clinvar.scored_down_variantsandhigh_value_unchecked, and the
report_warningscodedi_calls_not_checked.--diffreads schemas 1
to 11. - The annotated VCF schema version is now 0.6.0. A ClinVar finding for an
allele the reference itself carries (Factor V Leiden on GRCh37, for
example) is written in a new field,ALLELIX_CLINVAR_REF(Number=1,
significance|rsID|gene), and no longer in the ALT slots of
ALLELIX_CLINVAR.ALLELIX_CLINVARnow describes carried ALT alleles
only. A record can carry both fields.
Fixed
-
ClinPGx and SNPedia no longer report the normal genotype at a site where
one build's reference carries the variant allele (F5 rs6025 CC on GRCh37)
when ClinVar for the input's build is not installed. The normal allele
then comes from the other build's ClinVar, or from gnomAD's major allele.
Without either, the row is shown as before. -
ClinPGx, SNPedia and the GWAS Catalog give a VCF record written with
padding bases (GC>AC, orCG>CAone base before) the findings they
give the plainG>Arecord. Before, only ClinVar trimmed the alleles,
and the other sources found nothing. -
A two-ALT call whose second ALT is a deletion with the same bases as the
trimmed first ALT (AC,Aat REFGC,1/2) is heterozygous. Before,
the deletion was counted as a second copy, and the call could be marked
implausible. -
The variants that ClinVar's Conflicting or Benign classification scored
down are named, with their submitter split ("GALT rs75391579: 40 of 41
submitters Pathogenic; ..."), on the console, in HTML and in JSON
clinvar.scored_down_variants. Before, only their number was given.
Their scores are unchanged. -
Array calls written as D or I (a deletion or an insertion) at a
high-value rsID, or at an rsID ClinVar classifies Pathogenic or Likely
pathogenic, are named as not checked. The entry gives the gene, the
variant's name (BRCA2 6174delT, BRCA1 5382insC, CFTR F508del), the rsID
and the call. It is in JSONreport_warningsandhigh_value_unchecked,
in the HTML high-value section, and on the console. Before, the only sign
was an aggregate count, the same for carriers and non-carriers. The calls
are still not interpreted. -
On a plain VCF, a high-value site where the reference genome carries a
ClinVar variant allele and the file has no record (CYP3A5 rs776746 on
GRCh37) is named as not checked. Before, it was only counted. -
GWAS findings reported twice, once for the plain trait and once for its
"(MTAG)" re-analysis, are now reported once, under the plain trait. The
rollup meant to merge them never matched the two rows. It now matches the
suffix in any case and spacing. The two rows must share the rsID, the risk
allele and the base trait; they can come from different studies and
papers. An "(MTAG)" finding with no plain twin is kept. An "(MTAG)" row
whose risk allele differs from the plain row's is not a duplicate and is
kept too: someone who carries only the MTAG row's allele sees that row and
not the plain one, so that row can be the only finding the call carries.
On the user1190 genome with the 2026-10-25 GWAS Catalog snapshot, 92
duplicates go and 52 rows with a different risk allele stay; counts drift
with future database snapshots, while the twin rule is the stable
regression invariant. -
A ClinVar build (
allelix db update, or an automatic update) appends its
evidence toclinvar-build.login the data directory on every outcome,
including a refusal and a rollback: each source file's MD5 and size, and
the rows accepted, joined, yielded, inserted and finally counted. Before,
a refused build kept only the final count, and the sources were gone. -
ClinVar condition names no longer carry MedGen IDs
("Congenital factor V deficiency; C0856761:Budd-Chiari syndrome" now reads
"Congenital factor V deficiency; Budd-Chiari syndrome"). A submission can
separate its conditions with;as well as|, and only the first ID was
removed. Existing caches are cleaned as they are read, with no rebuild, and
a--diffbaseline from an earlier version is matched with the clean name,
so the finding does not show as removed and new. A name's own colon or
ID-like word stays ("C3 deficiency: severe"). -
Panel coverage (
--filter-file) and the high-value no-call warnings
agree on which VCF record speaks for an rsID. It is the record at one of
the rsID's identity placements with that placement's REF, whatever its ID
or ALT. Without a placement, it is the record with the rsID as its ID.
Before:- a deletion starting at a SNP's position counted as coverage of the SNP;
- the rsID's ID on a record elsewhere was taken as that rsID;
- an rsID placed at two positions got no coverage;
- a filtered or low-quality first record hid a usable duplicate.
Text-chip files still match by rsID.
-
export plinkon GRCh38 codes each record by gnomAD's alleles at that
record's own position. Before, records sharing an rsID shared one pair: a
1/2call (A/T at a G>A,T site) was written missing, and of two split
records for one site, one was written missing. A two-ALT call now keeps
its observed alleles. -
extractshows confident reference calls. A0/0record, or a gVCF
reference block covering the rsID's position, is shown as the site's
REF/REF. Before, it said "not in file", while panel coverage showed the
same record as typed. A filtered or low-quality record is shown as a
no-call. -
extractshows the same record with and without a tabix index when a
file holds several records for one rsID:- a record at the rsID's placement beats one elsewhere;
- among those, a usable call beats a no-call;
- then file order.
Before, the indexed and sequential paths could show different calls.
-
A file whose known-SNP positions match no supported build stops with
a message that asks for the original file, instead of suggesting
--build. A run forced with--buildover such a file still runs, but
warns: a "Build warning" names the evidence (0 of N positions match) on
the console and in the HTML, and JSONreport_warningskeeps it
(build_override_unmatched). Before, forcing the build hid it entirely. -
extract --buildon a VCF that declares contig lengths reads to the end
of the file before it prints, so the known-SNP check still runs. Before,
when the requested rsIDs came early, extract stopped there. It printed
the genotypes without the warning above, even when known-SNP positions
later in the file placed it on the other build, which stops the run. -
analyzerefuses an--outputand a--vcf-outthat name the same file
(one path in two spellings, a symlink, a linked folder or a hardlink),
before any work. Before, the run finished and the VCF replaced the report.
export plinkrefuses a prefix whose three outputs are not three files. -
No output may name a file the run reads.
--outputor--vcf-out
naming the--diffbaseline or the--filter-file, in any of the
spellings above, is refused before any work, inanalyze,methylation
andpharmacogenomics. Before, the report replaced the baseline or the
filter file. -
An output that cannot be written (a read-only file, or a read-only or
missing folder) stopsanalyze,methylation,pharmacogenomics,
export plinkandconfig setwith an error naming the path (exit
status 1), before any work.db updatestops the same way before a
download, anddb cleanbefore deleting anything. So does every command
given a data directory that cannot be created. Before, these failed
with a traceback, most of them after the work was done. -
extractreads a VCF whose.tbiindex is corrupt or unreadable, or
points at data that cannot be read, sequentially, with a warning naming
the index. Before, it stopped with a traceback, or gave no warning. -
extracton a GRCh38 VCF without rsIDs finds a call at a site that the
rsID identity table places and gnomAD does not. Before, with gnomAD set
up, the site was looked up through gnomAD alone, and the call was reported
as "not in file" with no warning. With and without a tabix index. -
extracton a VCF without rsIDs shows a no-call (./., haploid.) or a
half call carrying only the reference (0/.) at a requested rsID's
position. Before, these were reported as "not in file". -
The tip
extractprints for a.vcf.gzwithout pysam names
pip install allelix[vcf-index]. Before, it printedpip install allelix. -
--min-magnitude,--gwas-min-magnitudeand--snpedia-min-magnitude
take finite numbers only:nan,infand-infare a usage error (exit
status 2). Before, they were accepted, and the JSON report heldNaNor
Infinity, which is not standard JSON. -
A
config.tomlthat cannot be read or parsed (malformed TOML, binary
bytes) stops every command that reads it with an error naming the file,
and nothing is written. Before, it stopped with a traceback. -
config getandconfig setreject an unknown source name in
sources.<name>orlicense.<name>(a typo, a non-ASCII name, an empty
name) like any other unknown key, and the config is not changed. Before,
config setaccepted it, and a non-ASCII name left aconfig.tomlthat
could not be read. Unknown source names already in a config file are
ignored. -
config setwritesconfig.tomlthrough a temporary file, so an
interrupted or failed write keeps the previous file. Before, an interrupt
could leave it truncated. -
New report, annotated VCF and PLINK files get the mode your umask gives a
new file (0644under the usual022), as before 2.5.0. They were
created0600. An existing file keeps its mode. -
--diffidentifies a finding by its source, variant, condition and
allele, and compares its classification and text. Before:- a ClinVar reclassification (Pathogenic to Likely pathogenic, for
example) was listed as one removed and one new finding, and so was a
reworded SNPedia, ClinPGx or GWAS text; - a finding now scored below the display floor (a Pathogenic 9.0 capped
to 4.0 by its aggregate) was listed as removed.
It is now one changed finding, shown with both magnitudes and marked below
the display floor. A finding is removed only when the current run has no
such finding at all.
- a ClinVar reclassification (Pathogenic to Likely pathogenic, for
-
--diffwarns when the baseline report was made from a different input
file. -
--vcf-outwrites the reference finding (see Changed) on every record whose call
carries the reference allele. Before, a het or half call at such a site
(0/1,0/.) had the finding in the JSON but not in the VCF. A
single-position record with ALT.(an all-sites VCF) now gets it too.
gVCF reference blocks stay unstamped. -
--vcf-outstamps findings, enrichment values and recovered rsIDs only
on the record the analysis read a call from. A second record at the same
position and alleles that gave no such call (low genotype quality, a
no-call, a hom-ref) was stamped like the first. -
--vcf-outwrites the recovered rsID in the ID column of a record whose
call carries two different ALT alleles (1/2), with
ALLELIX_ORIGINAL_ID=.. The analysis already used that rsID, but the
annotated VCF left the ID as.. The VCF's ID column now agrees with the
report. -
A single-position VCF record with ALT
.and genotype0/.is read as a
half call of the reference allele, as on a record with an ALT, so a
ClinVar finding there reaches the JSON and HTML reports. -
GRCh37 input gets gnomAD frequencies, AlphaMissense scores and CADD
scores at many more ClinVar rows. The identity table's site-wide
"palindromic" flag blocked every allele at a flagged site, including the
many sites with three or more alleles. A flagged row whose GRCh37 and
GRCh38 reference bases are equal now translates as written. Every allele
translated before is translated as before.scripts/check_wrong_allele.py
follows the same rule. -
The "several rare homozygous Pathogenic calls" warning counts a call
only when gnomAD was asked about it: a rare frequency, or an allele
looked up and absent. A call gnomAD could not be asked about (gnomAD not
installed, or a GRCh37 allele that cannot be translated) no longer
counts as rare. -
A download with a few characters typed before the
#of its first line
(such asX#AncestryDNA raw data download) is read. Before, the stray
characters stopped detection and the file got "doesn't recognise the
format". Up to 8 characters on the first line are ignored, with a
warning on the console and in JSONreport_warnings
(input_stray_characters); the rest of the line must still be the
vendor's banner. -
A 23andMe export re-saved by a spreadsheet as CSV is read. Its rows are
comma-separated (and may be quoted), its comment lines padded with commas
or quoted. Before, the banner was recognised and then every row was
skipped, so the run stopped with "contains no genotype records".
Documentation
- Command help and the documentation match current behavior.
--format
warns only when the reader does not recognise the file.--min-magnitude 0
removes only the global floor.db update --forcestill needs NCBI's
checksums for ClinVar.db cleanalso removesclinvar-build.log. The
README covers CADD full mode's files and the fast test command. Older ADRs
carry amendments where later releases changed their decisions. - The README now describes how a VCF's reference calls are read: a
0/0
call or a gVCF reference block can carry a ClinVar finding where the
reference genome itself carries the variant allele, and a position a
plain VCF does not cover is unknown, not reference. ClinVar's REF = ALT
records are described as they are reported. - The GRCh36 conversion guide gives a full recipe for array files:
zero-based BED positions, new chromosome and position, complemented
genotypes where the mapping is inverted, and the new build line. - The contributor guide's annotator example uses the current cache
readiness check and a read-only connection, and its single-file test
commands pass--no-cov. - The test-data README no longer says the baselines hold only CC0 content:
they leave out SNPedia, and the other sources' licenses still apply. - The full test protocol installs the
vcf-indexextra, creates its
output folder first, and states the current expectations fordb status
before CADD is installed, ClinVar's forward-strand matching,--force
when NCBI's checksum is unavailable, re-annotated VCF headers, reference
calls in the annotated VCF, provenance headers andreport_warnings. - Decision records: ADR-0055 and ADR-0058 are marked Accepted; ADR-0012,
ADR-0016 and ADR-0047 gain dated notes; a file path in ADR-0023 is
corrected. - The example reports' README compares the historical snapshot with 2.5.1
output.