5ad55adbb6a5cc72a393700130584aa87fef2c89 lrnassar Tue Jun 30 06:15:44 2026 -0700 varFreqs: add Top 3 source AFs to mouseOvers; audit excludes SGDP and SVatalog. refs #36642 Adds a Top 3 source AFs ranking to the varFreqsAffected and varFreqsBackground mouseOvers. Alongside the pooled allele frequency, the mouseOver now lists the three cohorts/arms with the highest per-source AF, formatted as "Source (AF), Source (AF), Source (AF)". Disease cohorts with phenotype splits carry the arm label (SPARK ASD, SCHEMA case, GREGoR unaffected); population cohorts use the bare key. Per-population sub-ancestries are deliberately excluded so a high sub-pop AF cannot crowd out actual project-level signals. vcfToBigBed.py adds a top_n_source_afs helper, collects per-arm AFs into affected_arm_afs / background_arm_afs, and emits two new fields topAffectedSources and topBackgroundSources. AS schema field count 163 -> 165. An AF-distribution sweep across all 28 source cohorts identified SGDP and SVatalog as encoding allele counts per genotyped individual (small N, AF defaults near 0.5), making their per-source AF unreliable for the ranking. Adds a skip_top_ranking column (col 9) to databases.tsv, set to 1 for SGDP and SVatalog, and gates the per-arm AF append in vcfToBigBed.py on this flag. Both cohorts still contribute to pooled backgroundAC/AN/AF and still appear in backgroundSources; they are only suppressed from the Top 3. Description pages varFreqsAffected.html and varFreqsBackground.html document the ranking; the latter also documents the SGDP/SVatalog exclusion. Build documentation in varFreqs.txt is updated. diff --git src/hg/makeDb/trackDb/human/varFreqsBackground.html src/hg/makeDb/trackDb/human/varFreqsBackground.html index 5d2f82eb6ef..598b693e6ba 100644 --- src/hg/makeDb/trackDb/human/varFreqsBackground.html +++ src/hg/makeDb/trackDb/human/varFreqsBackground.html @@ -1,141 +1,170 @@

Description

This track shows small variants (SNVs and short indels) seen in population reference cohorts and in unaffected or control individuals of disease-study cohorts, annotated with their predicted protein consequence and colored by severity. It is the background half of a matched pair: the companion Disease cohorts track shows the same kind of variants seen in affected or case individuals. Displaying the two together lets you see how common a variant is in the general/unaffected population compared with affected individuals. For the full list of contributing projects, see the SNV Frequencies collection page.

The background combines two kinds of data: the population/biobank reference cohorts (such as gnomAD HGDP+1kG, TOPMed, ALFA, HRC and the many national WGS projects), and the unaffected/control or unknown-phenotype arms of the disease-study cohorts (non-ASD family members in SFARI SPARK WES/WGS, SCHEMA controls, and GREGoR unaffected/unknown participants). Genotyping-array cohorts are not included. A variant that also appears in affected individuals is shown in both this track and the Disease cohorts track.

Display Conventions

Color by Consequence

Variants are colored by their most severe predicted consequence:

ColorConsequence classExamples
  Protein-truncating / loss-of-function stop_gained, frameshift, splice_donor, splice_acceptor, stop_lost, start_lost
  Missense / in-frame missense, inframe_insertion, inframe_deletion, protein_altering
  Synonymous synonymous, stop_retained
  Non-coding / intergenic intron, non_coding, intergenic, UTR

The score (used for shading) is the pooled background allele frequency times 1000.

Pooled allele frequency

Background AF is the pooled rate across contributing population cohorts and unaffected/control arms: backgroundAF = sum(AC) / sum(AN), where backgroundAC sums the allele counts and backgroundAN sums the allele numbers across each cohort/arm that provides both AC and AF (the per-arm AN is derived as round(AC / AF)). Two cohorts that publish only AF (ABraOM, ALFA) are still pooled by assigning them an assumed allele number, set as a default_an in the build configuration; their per-arm AC is then derived as round(AF × default_an). Cohorts that publish only AC with no default_an set (currently MGRB and the GREGoR unaffected and unknown arms), and cohorts that contribute only through per-population AC/AF (currently AllOfUs), are listed in backgroundSources but do not contribute to the pool numerator or denominator; their data remain visible in the per-database and per-population AC/AF columns. The pooled rate is preferred over a max-across-cohorts statistic so a small cohort with a high local AF (for example AllOfUs Oceanian) cannot dominate the displayed frequency.

+

Top population sources by AF

+

+Alongside the pooled rate, the mouseover lists the top 3 contributing +background sources ranked by their own per-source AF, formatted as +Source (AF). This surfaces population cohorts where a variant +is specifically enriched, even when the pooled rate is small; the +East-Asian founder allele +rs4986893, +for example, ranks ToMMo Japan and KOVA Korea at the top while the pooled +rate across all contributing sources sits much lower. For disease cohorts +that ship a phenotype split (SPARK, SFARI WGS, SCHEMA, GREGoR), the +displayed AF is the unaffected-arm AF and the label includes the arm (for +example SPARK non-ASD, SCHEMA ctrl); for +population cohorts, the label is the cohort name and the AF is the unified +cohort AF. Per-population sub-ancestries of a cohort (such as gnomAD +HGDP+1kG continental groups) are deliberately excluded from this ranking so +sub-population frequencies do not crowd out actual project-level signals. +

+

+Two source cohorts are also excluded from the Top-3 ranking: SGDP +and SVatalog. Their VCFs encode allele counts per genotyped site +rather than per population (each variant in a single individual produces +AC=1, AN=2, AF=0.5), so the per-source AF is not a population +frequency and would always sit near the top of the ranking with a +meaningless value. Both cohorts still appear in backgroundSources +and still contribute their (small) AC and AN to the pooled +backgroundAF; they are only suppressed from the Top-3 list. +

+

Filters

Methods

Variant-frequency VCFs from the contributing cohorts were stripped of unneeded INFO fields, normalized with bcftools norm (splitting multi-allelic sites), and merged with bcftools merge. The merged callset was annotated with predicted protein consequences using bcftools csq against the Ensembl GRCh38 release 115 gene models.

A custom Python script (vcfToBigBed.py) then read the per-cohort allele counts and frequencies and, for each variant, pooled the allele counts and allele numbers across the population cohorts and unaffected/control subgroups to produce this track, and across the affected arms to produce the companion Disease cohorts track. A variant seen in both groups appears in both tracks. The build is documented in the makeDoc, and the scripts are on GitHub.

Data Access

Because the merged callset combines cohorts whose redistribution licenses differ, this track is not available for download and is not in the Table Browser. It can be reconstructed from the individual source VCFs using the conversion scripts and the build documentation. The per-project subtracks on the SNV Frequencies collection page document how to obtain each source dataset.

Credits

This track is only possible thanks to the data from millions of volunteers around the world who contributed to the population reference projects and to the unaffected/control arms of the disease cohorts. Click the individual project subtracks on the SNV Frequencies collection page for the specific credits and citations of each cohort. Thanks to Alex Ioannidis, UCSC, for the inspiration for this track and to Andreas Lahner, MGZ, for feedback.

References

For the primary citation of each source cohort, see the References section on the SNV Frequencies collection page. The merged-track build uses the following tools:

Danecek P, McCarthy SA. BCFtools/csq: haplotype-aware variant consequences. Bioinformatics. 2017 Jul 1;33(13):2037-2039. PMID: 28205675; PMC: PMC5870570