fe0627da07b9f989bc642d824af381968163d9a8 lrnassar Wed Jul 8 13:40:04 2026 -0700 varFreqs: move ALFA to Global reference panels; add shared-sample bias caveat to description pages. refs #36642 Per Max's post-release feedback on the ticket: ALFA is not a European cohort, it is an NCBI aggregator of dbGaP studies from many sources. Moved from Europe to Global reference panels in the newsarch entry. Also adds a shared-sample bias caveat to the Pooled allele frequency section of both varFreqsAffected.html and varFreqsBackground.html. The background page cites the concrete overlaps (1000 Genomes in both gnomAD HGDP+1kG and HRC; HGDP/SGDP; AllOfUs/TOPMed; ALFA aggregating dbGaP studies used elsewhere). The affected page cites the SPARK WGS cohort being a subset of SPARK WES. Both explain that pooled AN is inflated and pooled AF is skewed toward the frequency in the shared subset, and point users to the per-cohort AC/AF/AN fields for unbiased single-cohort numbers. diff --git src/hg/makeDb/trackDb/human/varFreqsAffected.html src/hg/makeDb/trackDb/human/varFreqsAffected.html index bb67d401445..c5510bd7279 100644 --- src/hg/makeDb/trackDb/human/varFreqsAffected.html +++ src/hg/makeDb/trackDb/human/varFreqsAffected.html @@ -48,30 +48,39 @@ <h3>Pooled allele frequency</h3> <p> <b>Affected AF</b> is the pooled rate across contributing affected arms: <code>affectedAF = sum(AC) / sum(AN)</code>, where <b>affectedAC</b> sums the allele counts and <b>affectedAN</b> sums the allele numbers across each cohort/arm that provides both AC and AF (the per-arm AN is derived as <code>round(AC / AF)</code>). Cohorts that publish only AF (with no AC or AN of their own) are still pooled by assigning them an assumed allele number, set as a <code>default_an</code> in the build configuration; their per-arm AC is then derived as <code>round(AF × default_an)</code>. Cohorts that publish only AC and have no <code>default_an</code> set (currently GREGoR's per-arm AC_AFFECTED/UNAFFECTED/UNKNOWN) are listed in <b>affectedCohorts</b> but do not contribute to the pool numerator or denominator; their carriers are visible in the per-database AC column instead. The pooled rate is preferred over a max-across-cohorts statistic so a small cohort with a high local AF cannot dominate the displayed frequency. </p> +<p> +The pooled rate also inherits a <b>shared-sample bias</b>: the SFARI SPARK WGS cohort +(~12k probands) is a subset of the larger SFARI SPARK WES cohort (~155k probands), so +probands sequenced in both contribute their AC and AN twice to the affected pool. Where +this happens, pooled AN is inflated and pooled AF is skewed toward the frequency in the +shared subset. Treat the pooled rate as a cross-cohort summary rather than an unbiased +population estimate; the per-cohort AC/AF/AN fields on each variant give the +single-cohort numbers. +</p> <h3>Top affected sources by AF</h3> <p> Alongside the pooled rate, the mouseover lists the top 3 contributing affected arms ranked by their own per-source AF, formatted as <code>Source (AF)</code>. This surfaces case cohorts where the variant is specifically enriched, even when the pooled rate across all arms is small. For disease cohorts that ship a phenotype split (SPARK, SFARI WGS, SCHEMA, GREGoR), the displayed AF is the affected-arm AF and the label includes the arm (for example <code>SPARK ASD</code>, <code>SCHEMA case</code>); for cohorts with no split (GA4K) the label is just the cohort name and the AF is the whole-cohort AF. Arms that ship only AC and no AF (currently GREGoR per-arm) are not included in this ranking because no AF is available; they still appear in <b>affectedCohorts</b>. </p>