Methodology¶
Allele frequency¶
For each biallelic SNP passing filters, the alternate allele frequency is computed from
allelic depth (AD):
For multi-sample bulks, allelic depths are summed across samples before computing AF (pooling read information).
Delta allele frequency¶
For a recessive causal mutation, the mutant bulk approaches AF ~ 1.0 and the wild-type bulk approaches AF ~ 0.0, so delta_AF ~ 1.0 at the causal locus.
Sliding windows and tricube smoothing¶
The genome is scanned in overlapping windows (default 1 Mb wide, 250 kb step). Within a window, delta_AF is smoothed with a tricube kernel that weights variants by distance from the window center:
G-statistic¶
Each window is tested for allele-frequency divergence between bulks:
where O_i and E_i are observed and expected allele counts under the null of equal
frequencies.
Z-score and region calling¶
Window statistics are standardized genome-wide:
Windows exceeding the threshold (default Z > 3.0) are significant. Adjacent significant
windows on the same chromosome within 500 kb are merged into a single candidate region.
Candidate variant filtering¶
Within candidate regions, variants are filtered by inheritance mode:
| Mode | min delta_AF | min AF_high | max AF_low |
|---|---|---|---|
| Recessive | 0.8 | 0.9 | 0.1 |
| Dominant | 0.3 | 0.4 | 0.1 |
Annotation and gene ranking¶
With --annotate, candidate variants are written to VCF, annotated by snpEff, and ranked
by: variant impact (HIGH > MODERATE > LOW > MODIFIER), loss-of-function status, distance
from the region peak, and region rank (by Z-score).