d8b6c80ed8ff14976691a387275e5632861f9b66 lrnassar 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. diff --git src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPProvisionalClass.py src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPProvisionalClass.py index 4d991c786b6..5805fe469e1 100644 --- src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPProvisionalClass.py +++ src/hg/makeDb/scripts/cardiomyopathyVCEP/cmpVCEPProvisionalClass.py @@ -33,31 +33,35 @@ import argparse, json, os, re, subprocess, sys from collections import defaultdict sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from cmpVCEPClinDomains import parse_mane_record OUR_GENES = ['MYH7', 'MYBPC3', 'TNNT2', 'TNNI3', 'TPM1', 'ACTC1', 'MYL2', 'MYL3'] WORKDIR = '/hive/users/lrnassar/claude/RM37446' B3_BED = f'{WORKDIR}/cmpVCEPAFfrequencies/cmpVCEPAFfrequenciesHg38.bed' B4_BED = f'{WORKDIR}/cmpVCEPRevel/cmpVCEPRevelHg38.bed' B1_BED = f'{WORKDIR}/cmpVCEPClinDomains/cmpVCEPClinDomainsHg38.bed' EVREPO_JSON = f'{WORKDIR}/cmp_downloads/erepo/cardiomyopathyVCEP_classifications.json' ANNOT_TSV = f'{WORKDIR}/cmpVCEPAnnotate/cmpVCEPAnnotations.hg38.tsv' -SPLICEAI_BB = '/gbdb/hg38/bbi/spliceAIsnvsMasked.bb' # released masked-SNV file (what the live UCSC track serves) +SPLICEAI_BB = '/gbdb/hg38/bbi/spliceAIsnvs.bb' # released RAW (unmasked) SNV file. +# Walker 2023 (PMID 37352859), the calibration our BP7/BP4 SpliceAI cutoff cites, derived +# the <0.1 threshold on the raw max delta. The masked file zeroes losses at unannotated +# (cryptic) sites, which for our 8 genes would grant BP7 to 66 synonymous variants whose raw +# score is up to 0.87; using the raw file keeps the score type matched to the calibration. # Per-gene thresholds (from CSpec - NOT invented here) BS1_THRESHOLDS = {'MYBPC3': 0.0002} DEFAULT_BS1 = 0.0001 BA1_THRESHOLD = 0.001 PM2_SUPPORTING_THRESHOLD = 0.00004 SPLICE_SAFETY_THRESHOLD = 0.20 # SpliceAI delta flagged as possible splice impact (informational) # BP7: synonymous with no predicted splice impact. The CM VCEP set this at SpliceAI < 0.1 and # removed the conservation requirement, per Walker 2023 (PMID 37352859). BP7_SPLICE_MAX = 0.10 # NC_ accession (hg38) -> chrom, for parsing EvRepo genomic HGVS (leave-one-out keys) NC_HG38 = { 'NC_000001.11': 'chr1', 'NC_000003.12': 'chr3', 'NC_000011.10': 'chr11', 'NC_000012.12': 'chr12', 'NC_000014.9': 'chr14', 'NC_000015.10': 'chr15',