Why Put Functional Annotations Into a SKAT Kernel?
A gene-level SKAT analysis combines information across variants, but the variants need not contribute equally. A frequency-based weighting scheme gives greater emphasis to variants with certain minor-allele frequencies. Functional annotations provide another kind of information: for example, whether a variant is predicted to alter a protein or affect a regulatory region. An annotation-informed kernel uses such information to encode which variants are expected, before examining the association outcome, to have larger or smaller effects.
This is a modeling choice, not evidence that an annotated variant affects the trait. The weighting scheme states a prior expectation about relative effect sizes. The resulting SKAT statistic and its null calibration must use the same weights; changing the weights changes the statistic being tested.
Weights as Prior Expectations About Effects
In a random-effects description of SKAT, variant effects are modeled as mean-zero random quantities with different variances. One common specification is $$ \beta_j \sim N(0,\tau v_j), \qquad \operatorname{Cov}(\beta_j,\beta_k)=0 \text{ for } j\ne k, $$ where \(\tau\) is an overall scale and \(v_j\) determines the relative effect variance assigned to variant \(j\). This model describes a distribution used to motivate and interpret the test. It does not assert that the true effects were generated by this distribution.
If \(c_j>1\), the annotation increases the prior variance for variant \(j\) relative to its frequency-based value; if \(0<c_j<1\), it decreases that variance. A zero multiplier excludes a variant from this kernel because its variance weight is zero. If annotations are represented by categories, the multipliers can be assigned by category. If they are continuous scores, a prespecified mapping from score to multiplier is needed.
The choice of scale matters less than the relative weights for the usual SKAT test: multiplying every \(v_j\) by the same positive constant multiplies the statistic and its null distribution by the same constant. The relative allocation across variants is what changes the test's emphasis. For clarity, calculations below use explicitly stated weights; they do not claim to represent a universal annotation scheme.
Worked Example: Combining Frequency and Annotation Weights
Suppose three hypothetical variants have frequency-based weights \(w^F=(3,1,0.4)\). A prespecified annotation rule assigns variance multipliers \(c=(0.2,2,5)\). Find the annotation-informed weights, the variance weights, and each variant's share of the total variance weight.
First square the frequency-based weights to obtain the frequency-based variance weights: $$ v^F=((3)^2,(1)^2,(0.4)^2)=(9,1,0.16). $$
Multiply each by its annotation multiplier. The resulting annotation-informed variance weights are $$ v=(9(0.2),1(2),0.16(5))=(1.8,2,0.8). $$ Taking square roots gives the weights used to multiply variant scores: $$ w^A=(\sqrt{1.8},\sqrt{2},\sqrt{0.8})\approx(1.342,1.414,0.8944). $$
The total variance weight is \(1.8+2+0.8=4.6\). The respective shares are $$ \left(\frac{1.8}{4.6},\frac{2}{4.6},\frac{0.8}{4.6}\right) \approx(0.3913,0.4348,0.1739). $$
Under this rule, the second variant receives the largest share of the relative prior effect variance, even though its original frequency-based weight was smaller than the first variant's. This is a statement about the chosen model weights, not a finding about the variants' actual effects.
From Variant Weights to a Genotype Kernel
Let \(U_j\) denote the score for association at variant \(j\), calculated under the null model for the trait and adjusted for covariates as required by that model. Collect these scores into \(U=(U_1,\ldots,U_m)^\mathsf{T}\). With variance weights \(v_j\), the SKAT quadratic-form statistic is $$ Q_A=U^\mathsf{T}\operatorname{diag}(v_1,\ldots,v_m)U =\sum_{j=1}^{m}v_jU_j^2. $$ Equivalently, if the score vector has the form \(U=G^\mathsf{T}r\) for a suitable null-model residual or score-residual vector \(r\), then $$ Q_A=r^\mathsf{T}G\operatorname{diag}(v_1,\ldots,v_m)G^\mathsf{T}r =r^\mathsf{T}K_A r. $$ For a general covariate-adjusted model, the score and its covariance are determined by that model; the kernel representation must be used consistently with that score construction.
The kernel is positive semidefinite whenever all \(v_j\) are nonnegative. For any vector \(x\) of length \(n\), $$ x^\mathsf{T}K_Ax =x^\mathsf{T}G\operatorname{diag}(v_j)G^\mathsf{T}x =\sum_{j=1}^{m}v_j(g_j^\mathsf{T}x)^2\geq 0. $$ Each term is nonnegative, so the sum cannot be negative. This property is important because the kernel represents weighted similarity in genotype patterns and leads to a nonnegative quadratic-form statistic.
Worked Example: Computing an Annotation-Weighted Kernel Statistic
Consider three hypothetical individuals and two variants with genotype columns \(g_1=(1,0,0)^\mathsf{T}\) and \(g_2=(0,1,0)^\mathsf{T}\). For a simple score illustration, let \(r=(-2,2,1)^\mathsf{T}\), so \(U=G^\mathsf{T}r\). Suppose the annotation-informed variance weights are \(v_1=2\) and \(v_2=0.5\). Compute the kernel and quadratic form.
The variant scores are \(g_1^\mathsf{T}r=-2\) and \(g_2^\mathsf{T}r=2\), so \(U=(-2,2)^\mathsf{T}\). The kernel is $$ K_A=2g_1g_1^\mathsf{T}+0.5g_2g_2^\mathsf{T} = \begin{pmatrix} 2&0&0\\ 0&0.5&0\\ 0&0&0 \end{pmatrix}. $$
Using the score form, $$ Q_A=2(-2)^2+0.5(2)^2=2(4)+0.5(4)=8+2=10. $$ The residual form gives the same result: $$ r^\mathsf{T}K_A r=(-2)(2)(-2)+(2)(0.5)(2)=8+2=10. $$
This calculation verifies the algebra for the specified kernel and scores. It is not a p-value calculation: inference would require the appropriate null distribution for the score statistic under a specified trait model and its assumptions.
How Annotation Weighting Differs From Frequency Weighting
A frequency-based scheme and an annotation-informed scheme encode different expectations. A common frequency-based choice uses a function of minor-allele frequency, such as a beta density, to emphasize variants in a selected frequency range. If that function supplies \(w_j^F\), SKAT uses its square in the variance weight \(v_j^F=(w_j^F)^2\). An annotation multiplier then modifies that variance weight to \(v_j=(w_j^F)^2c_j\).
A functional annotation does not replace the frequency information unless the analyst deliberately defines weights that way. The product form retains the frequency-based emphasis and modifies it according to annotation. For example, a predicted damaging consequence could receive a larger multiplier, while a category considered less likely to affect the phenotype could receive a smaller one. The magnitude of those multipliers must be justified and specified; the label “damaging” alone does not determine a statistically calibrated numerical weight.
Worked Example: Comparing Frequency and Annotation Emphasis
Suppose three hypothetical variants have score vector \(U=(1,-2,1)^\mathsf{T}\). Under a frequency-based scheme, let the variance weights be \(v^F=(2,2,2)\). A functional annotation rule leaves the first and third weights unchanged but reduces the second to give \(v^A=(2,0.5,2)\). Calculate both statistics and identify what changed.
With frequency-based weights, $$ Q_F=2(1)^2+2(-2)^2+2(1)^2=2+8+2=12. $$ With the annotation-informed weights, $$ Q_A=2(1)^2+0.5(-2)^2+2(1)^2=2+2+2=6. $$
The second variant's squared score contributes \(8\) to \(Q_F\) but only \(2\) to \(Q_A\), because its variance weight was reduced from \(2\) to \(0.5\). The other two contributions remain \(2\) each. These values show how the statistic changes for the supplied scores; without a null calibration for each specified weighting scheme, they do not establish whether either result is statistically significant.
Assumptions and Practical Choices
The interpretation of an annotation-informed kernel depends on several choices being made explicitly. The variants must be coded consistently, with each column of \(G\) referring to the same allele definition used for its frequency and annotation. The annotation rule must map each variant to a finite, nonnegative multiplier. The null model used to obtain scores must be appropriate for the trait and account for relevant covariates. Finally, the weights used to compute the statistic must also be used in deriving or calculating its null distribution.
For the random-effects interpretation, the usual conceptual assumptions are mean-zero variant effects, effect variances proportional to the stated \(v_j\), and no covariance between distinct variant effects in the simple specification. These assumptions motivate the kernel's emphasis; they are not requirements that every realized biological effect be independent or literally drawn from a normal distribution. The score test itself is evaluated under a null hypothesis of no association, with its calibration based on the specified model.
Annotations can be imperfect, correlated with one another, or only weakly informative for the trait under study. A large multiplier can make the test sensitive to a variant with a large score, but it can also make the analysis less sensitive to other variants. Thus annotation weights should reflect a defensible prior expectation rather than be tuned after inspecting the association scores. An annotation-informed analysis remains an association test; it does not show that the annotated functional mechanism causes the phenotype.
State how frequency-based weights \(w_j^F\) are calculated, including which allele frequency is used.
Specify the annotation field and the rule assigning a nonnegative multiplier \(c_j\) to each variant.
Calculate \(v_j=(w_j^F)^2c_j\), then form \(K_A=G\operatorname{diag}(v_j)G^\mathsf{T}\).
Compute the statistic and its null distribution using the same weights, genotype coding, and null-model score construction.
Common Mistakes
- Applying the annotation multiplier to the wrong quantity. If \(c_j\) is defined as a variance multiplier, use \(v_j=(w_j^F)^2c_j\), or equivalently \(w_j^A=w_j^F\sqrt{c_j}\). Multiplying the score weight by \(c_j\) instead would multiply its variance weight by \(c_j^2\).
- Calling a prior weight an observed effect. A larger \(v_j\) means the chosen model assigns greater prior effect variance to that variant. It does not demonstrate that the variant has a larger true effect.
- Using negative kernel weights. Negative \(v_j\) can make \(K_A\) indefinite and invalidate the usual nonnegative weighted-kernel interpretation. Annotation multipliers for this construction should be nonnegative.
- Comparing statistics without matching calibration. A smaller or larger \(Q\) alone does not determine which scheme gives stronger evidence. The null distribution changes with the weights, so p-values must be calculated for the corresponding kernel.
Check Your Understanding
Answer each question using the definitions and calculations in this tutorial.
- If a frequency-based score weight is \(w_j^F=2\) and its annotation variance multiplier is \(c_j=4\), what are \(v_j\) and \(w_j^A\)?
- Why does a nonnegative variance weight produce a positive-semidefinite genotype kernel?
- In the random-effects interpretation, what does increasing \(c_j\) say about variant \(j\), and what does it not establish?
- For \(U=(1,2)^\mathsf{T}\) and variance weights \((3,0.5)\), calculate the SKAT quadratic form.
- Why is a quadratic-form statistic by itself insufficient to compare the evidence from two different weighting schemes?