Tutorials › Statistical Genetics › Worked Partition Analysis with Functional Annotations

Partitioned Genetic Heritability · Tutorial 553 of 989

Worked Partition Analysis with Functional Annotations

Work from annotation LD scores and fitted coefficients to calculate and interpret heritability partitions and enrichment.

Advanced 11 min read

What You'll Learn

  • Read fitted variance coefficients from a stratified LD score regression model.
  • Calculate category heritability using the number of SNPs in each annotation.
  • Reconcile overlapping category quantities with total modeled heritability.
  • Compute heritability proportions and enrichment ratios with explicit denominators.
  • Use fitted coefficients to predict an association statistic and calculate its residual.
  • Identify assumptions and interpretation limits in a numerical partition analysis.

From Fitted Coefficients to a Heritability Partition

A partitioned heritability analysis connects two kinds of quantities. The regression uses LD scores to estimate how annotation-associated genetic variance relates to association statistics; the resulting coefficients can then be combined with annotation counts to calculate category heritability. The arithmetic is direct, but it is easy to confuse a fitted coefficient with a category’s total heritability, or to mishandle categories that overlap.

The worked analysis below uses a deliberately small, hypothetical data set. Its numbers are chosen to make the fitting arithmetic visible, not to represent a real study. The model assumptions and the definitions of total and category heritability are stated first so that the reported proportions and enrichment have unambiguous denominators.

Definition: Let \(a_{jc}\) indicate whether SNP \(j\) belongs to annotation category \(c\), and let \(\tau_c\) be that category’s fitted per-SNP variance coefficient. Under the additive annotation variance model, the genetic variance attributed to SNP \(j\) is \(\sigma_j^2=\sum_c \tau_c a_{jc}\). The category heritability is \(h_c^2=\tau_c M_c\), where \(M_c=\sum_j a_{jc}\) is the number of SNPs in category \(c\). If the total is defined as the sum of these modeled per-SNP variances, then \(h^2=\sum_j\sigma_j^2=\sum_c h_c^2\).

For a binary annotation, the annotation-specific LD score for regression SNP \(j\) is \(L_{jc}=\sum_k r_{jk}^2a_{kc}\), where \(r_{jk}\) is the genotype correlation between SNPs \(j\) and \(k\). In the simplified stratified LD score regression model used here, the expected association statistic is \(\mathrm{E}[\chi_j^2]=\alpha+N\sum_c\tau_cL_{jc}\). Here \(N\) is the effective sample size, and \(\alpha\) is the fitted intercept, which can absorb a baseline level of the statistic not explained by the LD-score terms. With multiple annotations, each \(\tau_c\) is fitted jointly; it is not obtained by fitting each category in isolation.

This calculation presumes that the specified additive variance model is an adequate description for the annotations and SNP set, that the LD scores use a suitable reference for the analyzed variants, and that the regression has been fitted with the stated sample-size scale. The small example uses equal regression weights and an exactly specified toy model to make its coefficients transparent. Real analyses need not have exact fits, and uncertainty in fitted quantities must be considered separately.

Worked Example: Fitting Two Annotation Coefficients

Worked Example: Fitting Two Annotation Coefficients

Suppose four hypothetical regression SNPs have the following two annotation-specific LD scores. The association statistics are also hypothetical. Take \(N=1{,}000\), and fit the model with equal weights.

SNP\(L_{j1}\)\(L_{j2}\)Observed \(\chi_j^2\)
1111.35
2131.75
3311.55
4331.95

The fitted regression is \(\chi_j^2=\alpha+N\tau_1L_{j1}+N\tau_2L_{j2}+\text{residual}_j\). The mean of each LD-score column is 2, and the mean observed statistic is \((1.35+1.75+1.55+1.95)/4=1.65\). Because the two centered LD-score columns have zero cross-product, their fitted slopes can be calculated separately after centering.

For the first column, the centered values are \((-1,-1,1,1)\), and the centered statistics are \((-0.30,0.10,-0.10,0.30)\). Thus its slope is

$$ \frac{(-1)(-0.30)+(-1)(0.10)+(1)(-0.10)+(1)(0.30)} {(-1)^2+(-1)^2+1^2+1^2} =\frac{0.40}{4}=0.10. $$

For the second column, the centered values are \((-1,1,-1,1)\), giving

$$ \frac{(-1)(-0.30)+(1)(0.10)+(-1)(-0.10)+(1)(0.30)} {4} =\frac{0.80}{4}=0.20. $$

These slopes estimate \(N\tau_1\) and \(N\tau_2\), not the \(\tau_c\) coefficients by themselves. Therefore \(\hat{\tau}_1=0.10/1{,}000=0.0001000\), and \(\hat{\tau}_2=0.20/1{,}000=0.0002000\). The intercept is the mean statistic minus each fitted slope times its column mean:

$$ \hat{\alpha}=1.65-(0.10)(2)-(0.20)(2)=1.05. $$

For example, the fitted value for SNP 1 is \(1.05+(0.10)(1)+(0.20)(1)=1.35\), matching its observed statistic. The same substitution gives 1.75, 1.55, and 1.95 for SNPs 2–4. This exact fit is a feature of the constructed example; it should not be expected in empirical data.

Calculating Heritability, Proportions, and Enrichment

The coefficient \(\tau_c\) describes variance per annotated SNP under the model. To obtain a category quantity, multiply it by that category’s SNP count. For the same model, the heritability proportion is the category heritability divided by the consistently defined total. Enrichment compares that heritability proportion with the category’s share of the SNP set.

Definition: For \(M\) SNPs in the modeled set, the category heritability proportion is \(P_c=h_c^2/h^2\), and the category’s SNP proportion is \(Q_c=M_c/M\). Its enrichment is \(E_c=P_c/Q_c\). These quantities use the same SNP set and total-heritability definition throughout.

Worked Example: Accounting for Overlapping Functional Categories

Continue with the fitted coefficients from the first example. Suppose the modeled SNP set has \(M=800\) SNPs. Annotation 1 contains \(M_1=600\) SNPs and annotation 2 contains \(M_2=400\); the annotations overlap at 200 SNPs. Thus, 400 SNPs are in annotation 1 only, 200 are in annotation 2 only, and 200 are in both. Their union is the full set of 800 SNPs.

The category heritabilities are

$$ \hat h_1^2=(0.0001000)(600)=0.0600,\qquad \hat h_2^2=(0.0002000)(400)=0.0800. $$

Because the model defines the total as the sum of per-SNP modeled variances, the total is \(\hat h^2=0.0600+0.0800=0.1400\). We can verify this SNP by SNP using the mutually exclusive groups. The 400 annotation-1-only SNPs contribute \(400(0.0001000)=0.0400\); the 200 annotation-2-only SNPs contribute \(200(0.0002000)=0.0400\); and the 200 overlapping SNPs have modeled variance \(0.0001000+0.0002000=0.0003000\) each, contributing \(200(0.0003000)=0.0600\). The total is \(0.0400+0.0400+0.0600=0.1400\), as required.

The category heritability proportions are \(P_1=0.0600/0.1400=0.4286\) and \(P_2=0.0800/0.1400=0.5714\). They sum to 1.000 because the total was defined consistently as the sum of the category terms. Their SNP proportions are \(Q_1=600/800=0.7500\) and \(Q_2=400/800=0.5000\). These SNP proportions sum to 1.25, not 1, because 200 SNPs are counted in both categories.

The enrichment values are \(E_1=0.4286/0.7500=0.5714\) and \(E_2=0.5714/0.5000=1.143\). Under this definition, annotation 1 has less than its proportional share of modeled heritability relative to its share of SNPs, while annotation 2 has more. These are model-based descriptive comparisons, not evidence that either annotation causes a change in heritability.

Why the Overlap Accounting Works

Overlap does not make the algebraic sum of category heritabilities fail. For each SNP, the additive model assigns a term \(\tau_ca_{jc}\) for every annotation \(c\) that contains it. Summing across SNPs and then across categories gives the same total as summing across categories first and then across SNPs:

$$ h^2=\sum_j\sum_c\tau_ca_{jc} =\sum_c\tau_c\sum_j a_{jc} =\sum_c\tau_cM_c =\sum_c h_c^2. $$

This identity holds for the stated model and consistent definitions, including when annotations overlap. It does not mean that overlapping category heritabilities represent disjoint SNP groups: the same SNP’s modeled variance can enter more than one category term. A different definition of total heritability or a different attribution convention must be reported explicitly; the identity should not be assumed across inconsistent definitions.

Enrichment also has a useful accounting check. Since \(E_c=(h_c^2/h^2)/(M_c/M)\), multiplying each enrichment by its SNP proportion gives \(Q_cE_c=P_c\). Therefore, if the annotation categories together cover the modeled set and the total is defined consistently, \(\sum_c Q_cE_c=\sum_cP_c=1\). The enrichments themselves need not sum to 1, and neither do the \(Q_c\) values when categories overlap.

Worked Example: Predicting a Statistic From the Fitted Model

Worked Example: Predicting a Statistic From the Fitted Model

Consider another hypothetical SNP with annotation-specific LD scores \(L_{j1}=2.5\) and \(L_{j2}=0.5\). Use the fitted values \(N=1{,}000\), \(\hat\alpha=1.05\), \(\hat\tau_1=0.0001000\), and \(\hat\tau_2=0.0002000\). Its fitted statistic is

$$ \widehat{\chi_j^2} =1.05+(1{,}000)(0.0001000)(2.5) +(1{,}000)(0.0002000)(0.5) =1.05+0.25+0.10=1.40. $$

If its hypothetical observed statistic is 1.46, the residual, defined as observed minus fitted, is \(1.46-1.40=0.0600\). This is the SNP’s discrepancy from the fitted mean under the regression, not a new estimate of category heritability. Model fit is assessed across the regression observations using the fitting procedure and weights, rather than by interpreting one residual alone.

Common Mistakes and Interpretation Checks

  • Calling \(\tau_c\) the category heritability. The coefficient is a per-SNP variance coefficient in this model. The category quantity is \(\tau_cM_c\); omitting \(M_c\) changes the estimand and units.
  • Using the wrong regression slope scale. In the displayed regression, the slope on \(L_{jc}\) is \(N\tau_c\). Recover \(\tau_c\) by dividing by \(N\), unless the fitted software has already reported the coefficient on the per-SNP variance scale.
  • Treating overlapping categories as disjoint. Category terms can include variance from the same SNP. Under the additive model, their sum still equals the consistently defined total, but the terms are not exclusive SNP-group contributions.
  • Expecting SNP proportions to sum to one under overlap. The values \(M_c/M\) sum to one only for a disjoint partition covering the set. With overlap, their sum can exceed one.
  • Interpreting enrichment as a causal effect. Enrichment is a ratio of modeled heritability share to SNP share. It describes the fitted partition, not the causal effect of an annotation.
Key takeaway: Check the coefficient scale, annotation counts, modeled SNP set, and total-heritability definition before interpreting a partition. Under the additive variance model, \(h_c^2=\tau_cM_c\) and the category quantities sum to the total when all are defined consistently—even for overlapping annotations.

Check Your Understanding

Work through these questions using the definitions and model above.

  1. A fitted slope on an LD-score column is 0.12 and \(N=2{,}000\). What per-SNP variance coefficient does this imply under the displayed model?
  2. If \(\tau_c=0.00015\) and \(M_c=500\), calculate \(h_c^2\).
  3. Two annotations overlap. Explain why their SNP proportions may sum to more than 1 even though their category heritability proportions sum to 1 under consistent additive-model definitions.
  4. A category has heritability proportion 0.30 and SNP proportion 0.20. Calculate its enrichment and interpret it relative to proportional representation.
  5. What additional information is needed to interpret a reported enrichment ratio, beyond its numerical value?
Clinical Biostats