Commits for lrnassar
switch to files view, user index
v502_base to v503_preview (2026-08-10 to 2026-08-17) v503
Show details
e226ca32f92c500fb9294cd84eff5f7938ba45cb Tue Aug 11 14:19:27 2026 -0700
- Alphabetize popEVE references and credits by author per QA. refs #37791
List Frazer (2021) before Orenbuch (2025) in References, and order the Credits names by
surname, per QA feedback on the description page.
- src/hg/makeDb/trackDb/human/popEve.html - lines changed 17, context: html, text, full: html, text
6796b337521a06767307b5c273bf89903d5a3bd6 Tue Aug 11 17:05:08 2026 -0700
- Fix Variant Evidence Summary SpliceAI/BP7 issues per code review. refs #37446
- Use the released spliceAIsnvsMasked.bb instead of a superseded symlink; the
older /gbdb/hg38/bbi/spliceAi.bb pointed at a stale file the live track no
longer serves.
- Distinguish a SpliceAI lookup miss from a measured 0.00 in the mouseover. A
miss now reads "no record (below the 0.02 reporting floor)"; BP7 still applies
because the file's 0.02 floor means a missing score is below 0.1.
- Correct the BP7 mouseover threshold text from "<= 0.1" to "< 0.1" to match the
code, docstring, and makedoc.
- Record PM1 suppression in the codeNotes field so it matches the autoSql
description instead of leaving the field empty on every row.
- src/hg/makeDb/doc/Cardiomyopathy.txt - lines changed 8, context: html, text, full: html, text
- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPProvisionalClass.py - lines changed 18, context: html, text, full: html, text
d8b6c80ed8ff14976691a387275e5632861f9b66 Tue Aug 11 17:21:12 2026 -0700
- Use raw (unmasked) SpliceAI file for BP7 to match the Walker 2023 calibration. refs #37446
Walker 2023 (PMID 37352859), which the CM VCEP cited for the BP7 SpliceAI < 0.1
rule, derived that threshold on the raw max delta score. The masked SNV file zeroes
losses at unannotated (cryptic) splice sites; for our 8 genes that would grant BP7
to 66 synonymous variants whose raw score is up to 0.87. Switching to the released
raw file spliceAIsnvs.bb keeps the score type matched to the calibration and is the
more conservative benign call. BP7 count 2,415 -> 2,334.
- src/hg/makeDb/doc/Cardiomyopathy.txt - lines changed 8, context: html, text, full: html, text
- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPProvisionalClass.py - lines changed 5, context: html, text, full: html, text
615721361f4baf75c0715bb931c5fc1015101622 Tue Aug 11 18:21:56 2026 -0700
- Address code-review findings on the Cardiomyopathy VCEP scripts. refs #37446
- Gate PM1 to missense variants per the CSpec ("applicable to missense variants");
a positional-only test wrongly gave synonymous/truncating/splice variants PM1 and
let it collide with BA1/BP7. PM1 firing 1,293 -> 700.
- Transcript-gate the Walsh-2019 ClinVar coordinate lookup so a classic-vs-MANE
c.notation collision no longer mis-places TNNT2 R92Q (was drawn ~331 nt off with a
different variant's VariationID); the gate applies only to the WALSH_TX genes.
- Show the amino-acid change in the REVEL mouseover (computed from the MANE CDS) so
the per-alt genomic-forward-strand score is not misread on minus-strand genes.
- Resolve every build input relative to --output-dir (sibling track outputs and
cmp_downloads sources) for otto portability; canonical build byte-identical.
- Also key the diseaseTag off the counted PM1 code, and makedoc corrections
(worked example REVEL/gnomAD values, PM1 count, universe and EvRepo notes).
- src/hg/makeDb/doc/Cardiomyopathy.txt - lines changed 20, context: html, text, full: html, text
- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPClinVar506161.py - lines changed 18, context: html, text, full: html, text
- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPEvRepo.py - lines changed 7, context: html, text, full: html, text
- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPProvisionalClass.py - lines changed 18, context: html, text, full: html, text
- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPRevel.py - lines changed 66, context: html, text, full: html, text
- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPWalsh2019.py - lines changed 12, context: html, text, full: html, text
7fb0ec3d9354f0bb4b059b0106ecaf5c40889a05 Thu Aug 13 15:13:03 2026 -0700
- Tier TP53 FLOSSIES BS2 by carrier count; ClinGen wording, per VCEP meeting. refs #37399
Replace the flat BS2 (-4) with the VCEP's carrier-count tiers: 2-3 carriers
BS2_Supporting (-1), 4-7 BS2_Moderate (-2), 8+ BS2 (-4); a single carrier does
not meet BS2. Carriers = allele_count - hom_count. tp53Flossies.py assigns the
tier and color per observation; tp53ProvisionalClass.py reads the tier from the
FLOSSIES bed (load_flossies_lookup returns label+points, bs2_evidence picks the
strongest matching tier) and feeds the matching point value into the Provisional
point sum. Also change the Provisional disclaimer from 'NOT a VCEP
classification' to 'NOT a ClinGen classification' in the mouseover, docstring,
and AUTOSQL, and drop a now-unused POINTS['BS2'] entry.
- src/hg/makeDb/scripts/tp53/tp53Flossies.py - lines changed 50, context: html, text, full: html, text
- src/hg/makeDb/scripts/tp53/tp53ProvisionalClass.py - lines changed 36, context: html, text, full: html, text
1d0e2581c362c4971a20b464f5e593f23b01fba6 Thu Aug 13 16:01:04 2026 -0700
- Fix TP53 Provisional PM2 and BA1/BS1 frequency logic to match CSpec GN009. refs #37399
From the EvRepo cross-check. PM2_Supporting now applies to missense variants
absent from gnomAD, not only rare-but-present ones: tp53AFfrequencies.py writes a
per-assembly gnomAD present-set, and tp53ProvisionalClass.py applies PM2 when
every nt path of a missense change is absent (a present-but-not-rare path blocks
it, so variants seen at moderate frequency are not given PM2).
BA1/BS1 now threshold on the non-founder ancestry-group max AF (AF_grpmax), per
GN009's continental-subpopulation FAF rule, instead of the overall faf95, so
variants common in a single ancestry group are no longer under-called. gnomAD
v4.1 exposes only the single top group with no per-group filtering AF, so this
uses raw AF_grpmax with a >=2000-allele floor as a documented approximation.
Validated vs 137 EvRepo final classifications: PM2 disagreements 63->12, AF
strength disagreements 4->2 (P47S/G360A/T312S now agree).
- src/hg/makeDb/scripts/tp53/tp53AFfrequencies.py - lines changed 81, context: html, text, full: html, text
- src/hg/makeDb/scripts/tp53/tp53ProvisionalClass.py - lines changed 40, context: html, text, full: html, text
e28d9673130c2d129d7f7684897fb809b5a17325 Thu Aug 13 16:38:07 2026 -0700
- Read TP53 BA1/BS1 from source gnomAD VCF for exact per-ancestry faf95. refs #37399
Replace the raw AF_grpmax approximation with the CSpec-exact metric: the max
faf95 across non-founder continental ancestry groups (afr/amr/eas/nfe/sas), read
from the source gnomAD v4.1 sites VCF via tabix. The /gbdb bigBed only carries
the overall faf95 and the raw grpmax AF, not per-group faf95. faf95 is a Poisson
95% CI lower bound, so it discounts small groups (subsuming the CSpec >=2000
allele rule) and removes the raw-AF over-calls. Founder groups
(asj/fin/mid/remaining) are excluded by omission from the max.
Effect vs the AF_grpmax approximation: AF-track BS1 75->53; Provisional
over-calls eliminated (Y107H BA1->BS1, now matches the EvRepo final call, and no
we-only BA1/BS1 remain); T312S drops to no AF code because its exact faf95
0.000299 is just under the 0.0003 BS1 threshold. Also repurposes the AF bed's
chipNote column to fafGroup (the ancestry group giving the faf95).
- src/hg/makeDb/scripts/tp53/tp53AFfrequencies.py - lines changed 127, context: html, text, full: html, text
5b4e8221e9a3ce8c7cd18d4554ee95dc4b4abfbe Thu Aug 13 17:28:29 2026 -0700
- Restore BP4_Moderate strength in TP53 VCEP Curated track from Table S2. refs #37399
EvRepo's structured export emits a bare 'BP4' tag with no BP4_Moderate variant
(unlike PP3_Moderate / PM2_Supporting, which it keeps), so the VCEP Curated
track dropped the BP4 strength the panel actually applied. Restore it from the
VCEP's Table S2 bioinformatic worksheet, matched on the exact nt change:
tp53VCEPClinVar.py loads Table S2's BP4_Moderate set and upgrades a bare Met
'BP4' to 'BP4_Moderate' for the matching variant.
Validated against the ClinVar interpretation prose: where that text is parseable
its BP4 strength matches Table S2 for every missense variant. The enrichment
changes 48 variants, all exactly BP4 -> BP4_Moderate with no off-target code
changes, and removes all 34 BP4 strength disagreements in the EvRepo cross-check
(full code agreement 37% -> 43%).
- src/hg/makeDb/scripts/tp53/tp53VCEPClinVar.py - lines changed 41, context: html, text, full: html, text
c05b0aa800df56a3fd1a5c5cbb903e39a54b6396 Fri Aug 14 10:42:09 2026 -0700
- TP53 Provisional: nt-aware splicing, caveat 4, and per-nt divergence flags. refs #37399
From the ClinGen TP53 VCEP review. The Provisional summary is one row per missense
protein change, but splicing and allele frequency are nt-specific:
- Splicing PP3 (SpliceAI >= 0.2, supersedes a missense BP4) now applies only when
UNAMBIGUOUS: every nt path yielding the protein change is >= 0.2. When paths
straddle the threshold the row keeps its missense code (fixes e.g. L35F, where
c.105G>T=0.35 but c.105G>C=0.13 was wrongly flagged via the codon max).
- Caveat (GN009): when splicing PP3 is applied, drop the protein-level functional
assay code (PS3/BS3) from the point sum, since the assay tests the missense
protein not the splicing effect.
- New ntVerify column (bed9+10 -> 9+11, filterable): flags rows whose nt variants
disagree on SpliceAI or on gnomAD AF, with a mouseover pointer to verify the
exact nt change in the Bioinformatic / Allele Frequencies track.
load_s2 now tracks spliceai_min; af_code_and_points returns af_divergent (AF
aggregation unchanged). Reviewed clean by a fresh-eyes pass.
- src/hg/makeDb/scripts/tp53/tp53ProvisionalClass.py - lines changed 100, context: html, text, full: html, text
44b6d9c6ca033c3f613b336cdc52b9a938e1a8e1 Fri Aug 14 12:58:26 2026 -0700
- Drop dead synonymous_variant from TP53 FLOSSIES coding set; fix comment. refs #37399
Per CR feedback: CODING_CONSEQUENCES listed 'synonymous_variant', but the FLOSSIES
export labels synonymous variants 'silent', so they correctly fall to
Informational (not BS2) as documented. The dead entry contradicted the comment
and would have tiered synonymous as BS2 if the label ever changed. Remove it and
correct the comment. Output is unchanged (no synonymous_variant-labeled variant
exists in the data).
- src/hg/makeDb/scripts/tp53/tp53Flossies.py - lines changed 7, context: html, text, full: html, text
switch to files view, user index