Choosing an estimator¶
Eight estimators, selected with --formula. They answer different questions,
and three of them are not bounded by 1, so it is worth knowing which you asked
for before reading the numbers.
Throughout, \(p_i\) and \(q_i\) are the frequencies of allele \(i\) in the two samples at one locus, \(l\) indexes loci, \(L\) is the number of loci, \(H_S\) is the mean within-sample heterozygosity and \(H_T\) the heterozygosity of the pooled pair.
At a glance¶
--formula |
Range | Scales with L | --normalize |
Good for |
|---|---|---|---|---|
gst |
[0, 1] | no | no effect | overall differentiation, the safe default if you want a bounded number |
fst |
[0, L] | yes | divides by L | per-locus differentiation, summed |
jost_d |
[0, L] | yes | divides by L | allelic differentiation, insensitive to within-sample diversity |
reynolds |
[0, inf) | no | no effect | drift time between recently diverged populations |
nei |
[0, inf) | ratio over all loci | no effect | long time scales |
chord |
[0, L·√2] | yes | divides by L | tree building; satisfies the triangle inequality |
rogers |
[0, 1] | mean over all loci | no effect | Euclidean distance, already per-locus |
bray-curtis |
[0, L] | yes | divides by L | comparing frequency profiles directly |
Differentiation¶
GST¶
Nei's (1973) coefficient as a ratio of sums, so informative loci carry more
weight than near-monomorphic ones. Bounded in [0, 1] without any flags, which
makes it the estimator to reach for when you want a number you can compare
across datasets. --normalize does not apply.
FST¶
The same quantity computed per locus and summed, which is the default. Note the
consequence: this grows with the number of loci and is not itself an
\(F_{ST}\) in the bounded sense. Two samples over 40 000 sites can easily give
9150. Pass --normalize for the mean per locus, which is bounded.
Not Weir & Cockerham
This is the Nei formulation. It is not the Weir & Cockerham (1984) \(\theta\) estimator, which corrects for sample size and unequal sampling. If a reviewer asks for "Weir and Cockerham FST", this is not it.
Summing per-locus ratios weights every locus equally, including ones with a
tiny \(H_T\) where the ratio is noisy. gst avoids that by construction. If the
two disagree sharply on your data, that is usually why.
Jost's D¶
Measures the fraction of allelic diversity partitioned between the two
samples. Unlike \(G_{ST}\) it does not shrink when within-sample diversity is
high, which matters for deeply mixed samples where \(G_{ST}\) can look small
simply because both samples are individually diverse. Summed per locus, so
--normalize applies.
Divergence¶
Reynolds¶
The Reynolds, Weir & Cockerham (1983) coancestry coefficient, transformed so that it is linear in drift time for recently diverged populations. This is the estimator that adegenet, Arlequin and GenAlEx publish under the same name.
Returns infinity, written as NA, when \(\theta \ge 1\).
Changed in 1.0.1
Earlier versions substituted Nei's \(G_{ST}\) for \(\theta\). The two agree only at completely fixed loci, so Reynolds values from before 1.0.1 are not comparable with these. For \(p = \{T: 0.5, A: 0.5\}\) against \(q = \{T: 1.0\}\) the estimator gives 0.6931 where the substitution gave 0.4055.
Nei's standard genetic distance¶
Genetic identity turned into a distance. Effective over long time scales, where it is roughly linear in divergence time under a drift-mutation model.
\(J\) is summed over all loci, including those where both samples are
reference, so shared monomorphic sites pull the distance down. That means Nei's
D depends on the size of the locus set, which is the definition working as
intended rather than a quirk. Returns NA for a completely fixed difference.
Cavalli-Sforza chord¶
A geometric distance on the hypersphere of allele frequencies. It satisfies the triangle inequality, which is what makes it a reasonable input to neighbour-joining and other tree builders. Assumes drift without mutation.
Summed over loci, so --normalize applies. Per locus it is bounded by √2.
Rogers¶
Euclidean distance in frequency space, already divided by the locus count, so
it lands in [0, 1] and --normalize does not apply. Being a mean over L, it
moves when the locus set grows, the same way Nei's D does.
Profile comparison¶
Bray-Curtis¶
A straightforward dissimilarity between frequency profiles, summed over loci. Per locus it is bounded by 1 and equals the total variation distance.
Not a metric
Bray-Curtis does not satisfy the triangle inequality, so it should not be
fed to methods that assume one. Use chord for tree building.
Which to pick¶
- A bounded number to compare across datasets:
gst, orfst --normalize. - Building a tree:
chord, orreynoldsfor recently diverged samples. - Deeply mixed within-host samples:
jost_d, since it does not deflate when both samples are individually diverse. - Deep divergence:
nei. - Just how different are these frequency vectors:
bray-curtisorrogers.
Running several is cheap, and disagreement between them is informative rather
than a problem. gst far below jost_d says within-sample diversity is high;
fst far from gst says the low-\(H_T\) loci are pulling their weight.