Technical Details

Note that this page assumes the predictors are SNPs, and therefore the heritability model describes the expected heritability contributed by each SNP. However, this is not required, and the ideas below can be applied to any type of predictor.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

A general form for the heritability model is

E[h2j] = tau1 a1j + tau2 a2j + ... + tauK aKj

where E[h2j] is the expected heritability (uniquely) contributed by SNP j, a1, a2, ..., aK are vectors of SNP annotations, while tau1, tau2, ..., tauK are the corresponding coefficients. The annotations are specified in advance, while the taus are estimated from the data.

Below we explain how to implement different heritability model in LDAK. When analysing individual-level data (e.g., using LDAK-KVIK or REML, Haseman Elston Regression or PCGC), the choice of heritability model determines the number of kinship matrices and how they are calculated. When analysing summary statistics (e.g., using SumHer or MegaPRS), the choice of heritability model determines how to calculate the tagging file or estimate per-SNP heritabilities.

See the final section on this page for our recommended heritability models when performing different analyses.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

One-parameter heritability models:

We first consider heritability models of the form

E[h2j] = tau1 wj [fj(1-fj)](1+alpha)

where wj is the weighting for SNP j and fj is its minor allele frequency (MAF). To provide SNP weightings use the option --weights <weightsfile> (or --ignore-weights YES to set wj=1), while to specify alpha use --power <float>.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

The Uniform Model assumes E[h2j] = tau1 (i.e., that expected heritability is constant across SNPs). Note that this is the model assumed by any method that first standardizes SNPs, then assigns to each the same prior distribution or penalty function. In LDAK, this model is specified by adding the options --ignore-weights YES and --power -1 when Calculating Kinships or Calculating Taggings.

The Human Default Model assumes E[h2j] = tau1 [fj(1-fj)]0.75, where fj is the minor allele frequency of SNP j. Therefore, the Human Default Model assumes that more common SNPs have higher E[h2j] than less common SNPs. In LDAK, this model is specified by adding the options --ignore-weights YES and --power -0.25 when Calculating Kinships or Calculating Taggings.

The Alpha Model assumes E[h2j] = tau1 [fj(1-fj)]1+alpha, where alpha is estimated from the data. In LDAK, this is the default model when running LDAK-KVIK or MegaPRS.

The LDAK-Thin Model assumes E[h2j] = tau1 Ij [fj(1-fj)]0.75, where Ij indicates whether SNP j remains after thinning for duplicate SNPs. Like the LDAK Model, the LDAK-Thin Model assumes that E[h2j] is higher for SNPs in regions of lower LD and for those with higher MAF. However, using Ij gives less weight to lower-LD regions than using the LDAK weightings, and thus the LDAK-Thin Model can be viewed as intermediate of the Uniform and LDAK Models. In LDAK, the LDAK-Thin Model is specified by adding the options --weights <weightsfile> and --power -0.25 when Calculating Kinships or Calculating Taggings, where <weightsfile> gives weight one to the SNPs that remain after Thinning Predictors with options --window-kb 100 and --window-prune 0.98.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Multi-parameter heritability models when analysing individual-level data

When analysing individual-level data, you must calculate one kinship matrix for each annotation (i.e., in total K kinship matrices). For Kinship Matrix k, you would use Calculate Kinships with the options --weights <weightsfile> and --power -1, where <weightsfile> provides akj for each SNP. Note that if the annotations are of the form akj= bkj [fj(1-fj)](1+alpha), where fj is the MAF of SNP j, then it is equivalent to instead use the options --weights <weightsfile> and --power alpha, where <weightsfile> now contains bkj for each SNP.

Multiple kinship matrices are commonly used for Genomic Partitioning, for example, to estimate how much heritability is contributed by each chromosome. In this case, each kinship matrix corresponds to a subset of SNPs. To create each kinship matrix, you should use --extract <extractfile> to specify the corresponding SNP subset (this is equivalent to modifying <weightsfile> so that SNPs outside the subset get weighting zero).

For computational reasons, there is a limit to how many kinship matrices you can analyse at once, which therefore limits how complex the heritability model can be when analysing individual-level data. For example, while it is often feasible (with a large sample size and sufficient computational resources) to analyse 22 kinship matrices, each corresponding to a different chromosome of the human genome, it is almost certainly not feasible to analyse 97 kinship matrices, which would be required to implement the Baseline LD Model (see below).
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Multi-parameter heritability models when analysing summary statistics

When analysing summary statistics, you must first make files named <prefix>1, <prefix>2, ..., <prefix>K (replace <prefix> with a word of your choice). The file <prefix>k is used to provide ak=(ak1, ak2, ak3, ...), the values for Annotation k. It will usually have two columns, that provide the SNP names then the annotation values. Next you use Calculate Taggings with the options --partition-number K, --partition-prefix <prefix>, --ignore-weights YES and --power -1. Note that SNPs not present in <prefix>k will get akj=0, while if <prefix>k has only one column, then all SNPs within the file get akj=1 (this means that if you have a binary annotation, the file needs only contain the names of the SNPs within the category).

We often recommend using annotations of the form akj= bkj [fj(1-fj)](1+alpha), where fj is the MAF of SNP j. In this case, it is equivalent (and easier) to instead calculate taggings with the options --partition-number K, --partition-prefix <prefix>, --ignore-weights YES and --power alpha, where the file <prefix>k now provides the values of bkj for each SNP. Finally, should you wish to use annotations of the form akj= ckj wj [fj(1-fj)](1+alpha), where wj is the weighting of SNP j, you should use the options --partition-number K, --partition-prefix <prefix>, --weights <weightsfile> and --power alpha, where <weightsfile> contains the weightings, and the file <prefix>k now provides ckj for each SNP.

Note that using the options --annotation-number K-1 and --annotation-prefix <prefix> is the same as using --partition-number K and --partition-prefix <prefix>, except that in the former, the final annotation is the base category with values aKj= wj [fj(1-fj)](1+alpha) (so if using --ignore-weights YES and --power -1, then aKj=1).
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

The authors of LD Score Regression (LDSC) have developed a series of Baseline LD Models; the most recent is version 2.2, first used by Marquez-Luna et al, which has 97 parameters and takes the form

E[h2j] = tau1 a1j + tau2 a2j + ... + tau96 a96j + tau97

where a1, a2, ..., a96 comprise 73 binary annotations (e.g., indicating which SNPs are in coding regions), 13 continuous annotations (e.g., estimated allele age), and 10 MAF bins (e.g., indicating which SNPs have MAF between 0.1 and 0.15). To implement this model in LDAK, you should first download and extract the file BaselineLD.zip from Resources. You will now have 96 SNP annotations, with the names BaselineLD1, BaselineLD2, ..., BaselineLD96. When Calculating Taggings or running MegaPRS you can provide these annotations using the options --annotation-number 96, --annotation-prefix BaselineLD and --power -1. Note that it would be equivalent to make an extra file called baselineLD97 that contains the names of all SNPs, then replace --partition-number 97, --partition-prefix BaselineLD and --power -1.

Note that below we use a Modified BLD Model, which excludes the final ten SNP annotations (the MAF bins), then either sets alpha=-0.25 or estimates its value from the data.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Previously, we developed the 66-parameter BLD-LDAK Model, which takes the form

E[h2j] = [fj(1-fj)]0.75 x (tau1 b1j + tau2 b2j + ... + tau64 b64j + tau65 wj + tau66)

where b1, b2, ..., b64 are the non-MAF annotations from the original Baseline LD Model and wj is the LDAK weighting.

We also developed the BLD-LDAK-Lite+Alpha Model, which takes the form

E[h2j] = [fj(1-fj)]1+alpha x (tau1 c1j + tau2 c2j + ... + tau7 c5j + tau6 wj + tau7)

were c1, c2, ..., c7 are the seven most informative annotations from the BLD-LDAK Model, and alpha is estimated from the data.

Although valid, we no longer actively recommend using either of these two models. Nonetheless, they are still mentioned on some parts of this website (most notably, they were used when making the Pre-Computed Taggings).
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Our recommendations for different analyses:

By default, LDAK-KVIK assumes the Alpha Model, which is what we recommend.

By default, MegaPRS assumes the Alpha Model, and this is what we recommend when using non-human or non-SNP data. When using human SNP data, we recommend assuming a Modified BLD Model. Specifically, you should first download and extract the file BaselineLD.zip from Resources, then add the options --annotation-number 86 and --annotation-prefix BaselineLD.

When performing REML, Haseman Elston Regression or PCGC, we recommend assuming the Human Default Model. Specifically, you should add the options --ignore-weights YES and --power -0.25 when Calculating Kinships.

When running SumHer, we generally recommend assuming the Human Default Model. Specifically, you should add the options --ignore-weights YES and --power -0.25 when Calculating Taggings. However, if your aim is to estimate Heritability Enrichments, we recommend using a Modified BLD Model. Specifically, you should first download and extract the file BaselineLD.zip from Resources, then add the options --annotation-number 86, --annotation-prefix BaselineLD and --power -0.25 when Calculating Taggings.