Per SNP Heritability
GWASLab provides a simple function to calculate the variance explained by each SNP.
Available since v3.4.20
.get_per_snp_r2()
It needs effect size BETA and effect allele frequency EAF for calculation.
If N is available, it will also calculate the F-statistics.
Options
.get_per_snp_r2() options |
DataType | Description | Default |
|---|---|---|---|
mode |
q or b |
q: quantitative trait; b: binary trait |
q |
For quantitative traits (mode="q"), GWASLab will use BETA, EAF to calculate SNPR2.
.get_per_snp_r2() options |
DataType | Description | Default |
|---|---|---|---|
vary |
float or se |
Var(Y); if vary="se",Var(Y) will be estimated using SE |
1 |
k |
int |
k for calculating F | 1 |
For SNP i
When vary=1 and k=1:
\[ h^2_{i} = 2 \times \beta_i^2 \times EAF \times (1 - EAF) \]
\[ F = h^2_{i} \times (n -2) / (1 - h^2_{i}) \]
For binary traits (mode="b"), ncase, ncontrol and prevalence are needed to estimate the variance of liability explained by variants:
.get_per_snp_r2() options |
DataType | Description | Default |
|---|---|---|---|
ncase |
int |
number of cases | - |
ncontrol |
int |
number of controls | - |
prevalence |
float |
prevalence in general population | - |
Quote
Equation 10 in Lee, S. H., Goddard, M. E., Wray, N. R., & Visscher, P. M. (2012). A better coefficient of determination for genetic profile analysis. Genetic epidemiology, 36(3), 214-224.
- Implementation adopted from TwoSampleMR https://rdrr.io/github/MRCIEU/TwoSampleMR/src/R/add_rsq.r