6b285a53b036b309e3c7a9b61d3741731088a172
lrnassar
Fri Jun 12 02:35:01 2026 -0700
varFreqs: switch affectedAF/backgroundAF from max-across-cohorts to pooled
sum(AC)/sum(AN) so the rate matches the carrier count scale.
Per-arm AN is derived as round(AC/AF) when both are reported. An optional
"default_an" column was added to databases.tsv so AF-only cohorts (ABraOM,
ALFA) can synthesize a denominator from their cohort size; without it
those cohorts had been silently dropped from the pooled rate.
New affectedAN and backgroundAN columns expose the pool denominator. The
mouseOver now reads "Affected AC/AN: 33238 / 213153" so the ratio is
visible. Per-arm cohorts that ship only AC and no default_an (MGRB,
GREGoR AC_AFFECTED/UNAFFECTED/UNKNOWN, AllOfUs per-population) are still
listed in affectedCohorts/backgroundSources but contribute 0 to the
pool, preserving the invariant pool_AF <= 1.
The build pipeline is unchanged: re-run vcfToBigBed.py --split-affected
against the existing merged.annotated.vcf.gz. refs #36642
diff --git src/hg/makeDb/trackDb/human/varFreqs.ra src/hg/makeDb/trackDb/human/varFreqs.ra
index 8bf3d890953..7e8a3c3d634 100644
--- src/hg/makeDb/trackDb/human/varFreqs.ra
+++ src/hg/makeDb/trackDb/human/varFreqs.ra
@@ -4,68 +4,72 @@
group varRep
type bed 12
visibility hide
superTrack on
track varFreqsAffected
shortLabel Disease cohorts
longLabel SNV Frequencies: variants in ~130,000 affected or case individuals (autism, schizophrenia, rare disease cohorts)
type bigBed 9 +
parent varFreqs on
bigDataUrl /gbdb/$D/varFreqs/_affected/varFreqsAffected.bb
visibility pack
itemRgb on
maxWindowToDraw 5000000
priority 0.11
- mouseOver Var: ${name}
AA change: ${aaChange}
Var type: ${varType}
Conseq: ${consequence}
Affected AF: ${affectedAF}
Affected AC: ${affectedAC}
Affected cohorts: ${affectedCohorts}
Background AF: ${backgroundAF}
+ mouseOver Var: ${name}
AA change: ${aaChange}
Var type: ${varType}
Conseq: ${consequence}
Affected AF: ${affectedAF}
Affected AC/AN: ${affectedAC} / ${affectedAN}
Affected cohorts: ${affectedCohorts}
Background AF: ${backgroundAF}
filterValues.affectedCohorts SPARK|SFARI SPARK WES,SFARI_WGS|SFARI SPARK WGS,GREGoR|GREGoR,SCHEMA|SCHEMA,GA4K|GA4K PacBio LR
filterType.affectedCohorts multipleListOr
filterLabel.affectedCohorts Affected/case cohort
filterValues.backgroundSources AllOfUs|AllOfUs,SPARK|SFARI SPARK WES,SFARI_WGS|SFARI SPARK WGS,GenomeAsia|GenomeAsia SNVs,GenomeAsiaIndel|GenomeAsia Indels,NPM|NPM Singapore,KOVA|KOVA Korea,ToMMo|ToMMo Japan,FinnGen|FinnGen Finland,Saudi|Saudi,SweGen|SweGen Sweden,TOPMed|TOPMed,ABraOM|ABraOM Brazil,ALFA|ALFA,MGRB|MGRB Australia,HRC|HRC,SGDP|SGDP,HGDP1kG|gnomAD HGDP+1kG,GREGoR|GREGoR,SCHEMA|SCHEMA,CoLoRSdb|CoLoRSdb PacBio LR,SVatalog|SVatalog 101 10XG SR,Tishkoff180|Tishkoff 180 African WGS,WBBC|WBBC China,ChinaMAP|China ChinaMAP,GenomeIndia|GenomeIndia 9.7k WGS,GoNL|GoNL Netherlands ~13x SR
filterType.backgroundSources multipleListOr
filterLabel.backgroundSources Background source (population or unaffected)
# Variant type and consequence filters
filterValues.varType SNV|SNV,INS|Insertion,DEL|Deletion,MNV|MNV
filterLabel.varType Variant Type
filterValues.consequence missense|Missense,synonymous|Synonymous,stop_gained|Stop Gained,frameshift|Frameshift,splice_donor|Splice Donor,splice_acceptor|Splice Acceptor,intron|Intron,3_prime_utr|3' UTR,5_prime_utr|5' UTR,non_coding|Non-coding,.|Intergenic,others|Other
filterType.consequence multipleListOr
filterLabel.consequence Consequence
# Length filters
filterByRange.refLen on
filterLabel.refLen Reference Length
filter.refLen 1:28037
filterLimits.refLen 1:28037
filterByRange.altLen on
filterLabel.altLen Alternate Length
filter.altLen 1:6294
filterLimits.altLen 1:6294
filterByRange.varLen on
filterLabel.varLen Length Change
filter.varLen -28036:6293
filterLimits.varLen -28036:6293
# Affected/case frequency summary
filterByRange.affectedAF on
- filterLabel.affectedAF Affected/case AF
+ filterLabel.affectedAF Affected/case AF (pooled)
filterLimits.affectedAF 0:1
filterByRange.affectedAC on
filterLabel.affectedAC Affected/case AC
+ filterByRange.affectedAN on
+ filterLabel.affectedAN Affected/case AN (pool denominator)
# Background (population + unaffected) frequency summary
filterByRange.backgroundAF on
- filterLabel.backgroundAF Background AF (population + unaffected)
+ filterLabel.backgroundAF Background AF (pooled)
filterLimits.backgroundAF 0:1
filterByRange.backgroundAC on
filterLabel.backgroundAC Background AC (population + unaffected)
+ filterByRange.backgroundAN on
+ filterLabel.backgroundAN Background AN (pool denominator)
# Affected/case membership flag
filterByRange.inAffected on
filterLabel.inAffected Seen in an affected/case arm (1=yes, 0=no)
filter.inAffected 0:1
filterLimits.inAffected 0:1
# Per-database AF filters
filterByRange.AllOfUsAF on
filterLabel.AllOfUsAF AllOfUs AF
filterByRange.SPARKAF on
filterLabel.SPARKAF SFARI SPARK WES AF
filterByRange.SFARI_WGSAF on
filterLabel.SFARI_WGSAF SFARI SPARK WGS AF
filterByRange.GenomeAsiaAF on
filterLabel.GenomeAsiaAF GenomeAsia SNVs AF
filterByRange.GenomeAsiaIndelAF on
@@ -339,68 +343,72 @@
filterLabel.WBBCAC_South WBBC China South Han AC
filterByRange.WBBCAC_Lingnan on
filterLabel.WBBCAC_Lingnan WBBC China Lingnan Han AC
skipEmptyFields on
track varFreqsBackground
shortLabel Population reference
longLabel SNV Frequencies: variants in ~1.5 million individuals from population cohorts and unaffected or control arms
type bigBed 9 +
parent varFreqs on
bigDataUrl /gbdb/$D/varFreqs/_background/varFreqsBackground.bb
visibility pack
itemRgb on
maxWindowToDraw 5000000
priority 0.1
- mouseOver Var: ${name}
AA change: ${aaChange}
Var type: ${varType}
Conseq: ${consequence}
Background AF: ${backgroundAF}
Background AC: ${backgroundAC}
Sources: ${backgroundSources}
Affected AF: ${affectedAF}
+ mouseOver Var: ${name}
AA change: ${aaChange}
Var type: ${varType}
Conseq: ${consequence}
Background AF: ${backgroundAF}
Background AC/AN: ${backgroundAC} / ${backgroundAN}
Sources: ${backgroundSources}
Affected AF: ${affectedAF}
filterValues.affectedCohorts SPARK|SFARI SPARK WES,SFARI_WGS|SFARI SPARK WGS,GREGoR|GREGoR,SCHEMA|SCHEMA,GA4K|GA4K PacBio LR
filterType.affectedCohorts multipleListOr
filterLabel.affectedCohorts Affected/case cohort
filterValues.backgroundSources AllOfUs|AllOfUs,SPARK|SFARI SPARK WES,SFARI_WGS|SFARI SPARK WGS,GenomeAsia|GenomeAsia SNVs,GenomeAsiaIndel|GenomeAsia Indels,NPM|NPM Singapore,KOVA|KOVA Korea,ToMMo|ToMMo Japan,FinnGen|FinnGen Finland,Saudi|Saudi,SweGen|SweGen Sweden,TOPMed|TOPMed,ABraOM|ABraOM Brazil,ALFA|ALFA,MGRB|MGRB Australia,HRC|HRC,SGDP|SGDP,HGDP1kG|gnomAD HGDP+1kG,GREGoR|GREGoR,SCHEMA|SCHEMA,CoLoRSdb|CoLoRSdb PacBio LR,SVatalog|SVatalog 101 10XG SR,Tishkoff180|Tishkoff 180 African WGS,WBBC|WBBC China,ChinaMAP|China ChinaMAP,GenomeIndia|GenomeIndia 9.7k WGS,GoNL|GoNL Netherlands ~13x SR
filterType.backgroundSources multipleListOr
filterLabel.backgroundSources Background source (population or unaffected)
# Variant type and consequence filters
filterValues.varType SNV|SNV,INS|Insertion,DEL|Deletion,MNV|MNV
filterLabel.varType Variant Type
filterValues.consequence missense|Missense,synonymous|Synonymous,stop_gained|Stop Gained,frameshift|Frameshift,splice_donor|Splice Donor,splice_acceptor|Splice Acceptor,intron|Intron,3_prime_utr|3' UTR,5_prime_utr|5' UTR,non_coding|Non-coding,.|Intergenic,others|Other
filterType.consequence multipleListOr
filterLabel.consequence Consequence
# Length filters
filterByRange.refLen on
filterLabel.refLen Reference Length
filter.refLen 1:28037
filterLimits.refLen 1:28037
filterByRange.altLen on
filterLabel.altLen Alternate Length
filter.altLen 1:6294
filterLimits.altLen 1:6294
filterByRange.varLen on
filterLabel.varLen Length Change
filter.varLen -28036:6293
filterLimits.varLen -28036:6293
# Affected/case frequency summary
filterByRange.affectedAF on
- filterLabel.affectedAF Affected/case AF
+ filterLabel.affectedAF Affected/case AF (pooled)
filterLimits.affectedAF 0:1
filterByRange.affectedAC on
filterLabel.affectedAC Affected/case AC
+ filterByRange.affectedAN on
+ filterLabel.affectedAN Affected/case AN (pool denominator)
# Background (population + unaffected) frequency summary
filterByRange.backgroundAF on
- filterLabel.backgroundAF Background AF (population + unaffected)
+ filterLabel.backgroundAF Background AF (pooled)
filterLimits.backgroundAF 0:1
filterByRange.backgroundAC on
filterLabel.backgroundAC Background AC (population + unaffected)
+ filterByRange.backgroundAN on
+ filterLabel.backgroundAN Background AN (pool denominator)
# Affected/case membership flag
filterByRange.inAffected on
filterLabel.inAffected Seen in an affected/case arm (1=yes, 0=no)
filter.inAffected 0:1
filterLimits.inAffected 0:1
# Per-database AF filters
filterByRange.AllOfUsAF on
filterLabel.AllOfUsAF AllOfUs AF
filterByRange.SPARKAF on
filterLabel.SPARKAF SFARI SPARK WES AF
filterByRange.SFARI_WGSAF on
filterLabel.SFARI_WGSAF SFARI SPARK WGS AF
filterByRange.GenomeAsiaAF on
filterLabel.GenomeAsiaAF GenomeAsia SNVs AF
filterByRange.GenomeAsiaIndelAF on