Center for Quantitative Genetics and Genomics, Aarhus University, Denmark
Genomic Medicine, Department of Health Science and Technology, Aalborg University, Denmark
A GWAS association usually identifies an associated region, not a unique causal variant.
Because nearby SNPs are correlated through linkage disequilibrium (LD), several SNPs can show strong association even when only one is causal.
Fine-mapping moves from
\[ \text{associated region} \quad\longrightarrow\quad \text{small set of plausible causal variants}. \]
The goal is to quantify which variants remain plausible causal explanations after accounting for LD.
In a standard genome-wide association study (GWAS), each SNP is tested separately for association with the phenotype.
For SNP \(j\), fit a separate regression:
\[ y_i = \mu + x_{ij}\beta_j + e_i, \qquad e_i \sim \mathcal{N}(0,\sigma^2). \]
Test whether the SNP is associated with the phenotype:
\[ H_0:\beta_j=0 \qquad\text{versus}\qquad H_1:\beta_j\neq0. \]
Each SNP is tested one at a time.
For every SNP, GWAS typically reports:
The result is a marker-by-marker summary of marginal association evidence.
Important: GWAS identifies associated SNPs, not necessarily the causal SNP.
Nearby SNPs are often correlated because of linkage disequilibrium (LD). If SNP \(j^\ast\) is causal,
\[ y=x_{j^\ast}\beta_{j^\ast}+e. \]
Another SNP \(j\) can still show strong marginal association when
\[ \operatorname{Cor}(x_j,x_{j^\ast})\neq0 \qquad\text{but}\qquad \beta_j=0. \]
A GWAS peak can therefore represent an associated region, not a unique causal variant.
The same simulated 30-SNP region is shown in both panels. The causal SNP is marked in red.
Fine-mapping aims to identify which SNPs within a GWAS-associated region remain plausible causal variants after accounting for LD.
Marker-level association evidence: e.g. marginal effect estimates \(\hat{\beta}_j\) and their standard errors \(\mathrm{SE}(\hat{\beta}_j)\).
LD between candidate SNPs: represented by the LD correlation matrix, e.g. \(R=\operatorname{cor}(X)\).
A sparse joint model for genetic effects: e.g. BayesC / spike-and-slab.
Here we use individual-level genotypes and phenotypes. Summary-statistic methods instead combine compatible GWAS evidence with external LD.
Posterior inclusion probabilities (PIPs): probability that each SNP has a non-zero effect.
Posterior effect estimates: model-averaged SNP effects.
Prioritized variant sets: small sets of plausible causal variants.
Fine-mapping uncertainty: one leading SNP or several LD-linked alternatives.
All SNPs are fitted jointly, allowing correlated SNPs to compete to explain the same association signal:
\[ y_i = \mu + \sum_{j=1}^{m}x_{ij}b_j + e_i, \qquad e_i\sim\mathcal{N}(0,\sigma_e^2). \]
BayesC assumes that each SNP is either inactive or active. The point mass at zero creates a sparse model in which many SNP effects are exactly zero.
Introduce an inclusion indicator:
\[ d_j \in \{0,1\}, \qquad d_j \sim \operatorname{Bernoulli}(\pi). \]
Conditional on the indicator:
\[ b_j\mid(d_j=0)=0, \]
\[ b_j\mid(d_j=1) \sim \mathcal{N}(0,\sigma_b^2). \]
Equivalently,
\[ b_j \sim (1-\pi)\delta_0 + \pi\mathcal{N}(0,\sigma_b^2). \]
\(\pi\) controls how often SNPs are active; \(\sigma_b^2\) controls the variance of non-zero effects.
The sampler repeatedly explores possible explanations of the association signal.
\[ b_j^{(t)}= \begin{cases} 0, & d_j^{(t)}=0,\\ \text{non-zero draw}, & d_j^{(t)}=1. \end{cases} \]
The sampler updates \(d_j\) and \(b_j\) conditional on the current states of the other SNPs.
\[ \begin{aligned} \operatorname{PIP}_j &=\Pr(d_j=1\mid\mathcal D), \\ \widehat{\operatorname{PIP}}_j &=\frac{1}{T}\sum_{t=1}^{T}d_j^{(t)}. \end{aligned} \]
PIP: how often SNP \(j\) is needed in posterior models.
\[ \begin{aligned} \widehat b_j &=E(b_j\mid\mathcal D), \\ \widehat b_j &=\frac{1}{T}\sum_{t=1}^{T}b_j^{(t)}. \end{aligned} \]
Posterior mean: the effect after averaging across posterior models.
The marginal GWAS signal is compared with support from the joint BayesC model.
\[ \operatorname{PIP}_j = \Pr(b_j\neq0\mid\mathcal D). \]
Measures how often SNP \(j\) is included in posterior models.
A SNP can have a high PIP but a moderate effect if it is frequently active with a relatively small effect.
\[ E(b_j\mid\mathcal D). \]
Measures the model-averaged effect of SNP \(j\), including iterations in which its effect is zero.
A SNP can have a lower PIP but large non-zero effects when it is selected.
A practical local credible set (LCS) summarizes the leading signal as a small set of plausible causal variants.
Identify the SNP with the highest PIP.
Select its LD neighborhood, for example \(r^2\ge0.5\).
Rank these SNPs by decreasing PIP.
Add their PIPs until
\[ \sum_{j\in\mathcal C}\operatorname{PIP}_j \ge 0.90. \]
Because BayesC allows multiple active SNPs, this is a practical local summary, not a formal \(90\%\) posterior coverage set.
| marker | SNP | PIP | r2_with_focal | cumulative_PIP | causal |
|---|---|---|---|---|---|
| 11 | rs200766023_G | 1 | 1 | 1 | TRUE |
The LCS contains 1 SNPs and includes the simulated causal SNP: yes.
When LD leaves several plausible SNPs, functional information can refine their prior support.
Examples include:
Bayesian updating combines:
It changes a SNP’s prior plausibility. It does not declare that SNP to be causal.
Standard BayesC gives every SNP the same prior probability of being active:
\[ d_j \sim \operatorname{Bernoulli}(\pi). \]
Annotations can make that probability SNP-specific:
\[ P(d_j=1)=\pi_j. \]
A relevant annotation may therefore raise a SNP’s prior probability of having a non-zero effect.
Standard BayesC uses a common variance for active effects:
\[ b_j\mid d_j=1 \sim \mathcal{N}(0,\sigma_b^2). \]
Annotations can make the active-effect variance SNP-specific:
\[ b_j\mid d_j=1 \sim \mathcal{N}(0,\sigma_{b,j}^2). \]
An annotated SNP may therefore be assigned a larger prior variance for its non-zero effect.
Suppose two SNPs have similar statistical evidence because they are in strong LD.
\[ \begin{aligned} P(d_1=1)=P(d_2=1)&=\pi &&\text{(equal priors)}, \\ P(d_1=1)=\pi_1,\quad P(d_2=1)&=\pi_2 &&\text{(annotation-informed)}. \end{aligned} \]
where a relevant annotation can imply \(\pi_1>\pi_2\).
Both approaches report PIPs, ranked candidates, posterior effects, and local credible sets.
Only the prior assigned to each SNP changes—through its inclusion probability, non-zero effect variance, or both.
Companion tutorial: Bayesian Fine-Mapping with BayesC
Genome-wide fine-mapping — SBayesRC: Wu Y, Zheng Z, Thibaut L, Lin T, Feng Q, Cheng H, Yengo L, Goddard ME, Wray NR, Visscher PM, Zeng J. Genome-wide fine-mapping improves identification of causal variants. Nature Genetics 58, 940–951 (2026). DOI: 10.1038/s41588-026-02549-3
BayesC and BayesR for fine-mapping: Shrestha M, Bai Z, Gholipourshahraki T, Hjelholt A, Rohde P, Fuglsang MK, Sørensen P. Enhanced genetic fine mapping accuracy with Bayesian Linear Regression models in diverse genetic architectures. PLOS Genetics 21(7), e1011783 (2025). DOI: 10.1371/journal.pgen.1011783
Original SBayesRC method and prediction study: Zheng Z et al. Leveraging functional genomic annotations and genome coverage to improve polygenic prediction of complex traits within and between ancestries. Nature Genetics 56, 767–777 (2024). DOI: 10.1038/s41588-024-01704-y