Fine-mapping GWAS summary statistics with SuSiE RSS#
This vignette shows how to combine GWAS summary statistics with an ancestry-matched LD reference to fine-map a genomic region.
Learning goals#
After completing this vignette, you will be able to prepare GWAS and LD metadata, run the RSS workflow, inspect variant PIPs and credible sets, and recognize LD or allele-alignment problems that can invalidate the result.
Background and method#
SuSiE RSS performs Bayesian fine-mapping from marginal association statistics and an external linkage-disequilibrium matrix. The workflow standardizes each GWAS, aligns its variants and alleles to the selected LD block, optionally performs summary-statistic QC or imputation, and fits SuSiE RSS within each study-region pair.
The LD reference should match the GWAS ancestry and genome build. A mismatch can produce distorted z-score/LD relationships, unstable credible sets or apparently strong signals that are alignment artifacts. This vignette covers fine-mapping; it does not train individual-level TWAS weights.
Worked example#
The example analyzes one chromosome 22 LD block from the Bellenguez 2022 Alzheimer disease GWAS.
Role |
Example path |
Required contents |
|---|---|---|
GWAS metadata |
|
Study identifier, summary-statistics path and optional column mapping |
GWAS summary statistics |
|
Variant alleles, effect estimate or z score, sample size and frequency fields |
Column mapping |
|
Maps study-specific columns to the protocol schema |
LD metadata |
|
Region coordinates and the corresponding LD-reference prefix |
The requested region is chr22:49355984-50799822. GWAS and LD variants must use compatible coordinates, alleles and ancestry.
Run summary-statistics fine-mapping#
The four chained workflows generate the analysis manifest, harmonize GWAS statistics, fit SuSiE RSS and draw the PIP plot.
Timing: TBD
sos run pipeline/rss_analysis.ipynb \
generate_manifest+generate_gwas_sumstats+gwas_fine_mapping+gwas_rss_plot \
--cwd output/rss_analysis \
--modular-script-dir code/script \
--gwas-meta input/rss_analysis/protocol_example.rss_mwe.gwas_meta.tsv \
--regions chr22:49355984-50799822 \
--ld-meta input/ld_reference/protocol_example.ld_meta_file.tsv
The command creates:
output/rss_analysis/sumstats/AD_Bellenguez_2022.chr22_49355984_50799822.gwas_sumstats.rds— the harmonizedGwasSumStatsobject.output/rss_analysis/fine_mapping/AD_Bellenguez_2022.chr22_49355984_50799822.gwas_finemap.rds— theGwasFineMappingResult.output/rss_analysis/plots/AD_Bellenguez_2022.chr22_49355984_50799822.pip_plot.png— the regional PIP plot.
Optional QC settings include --qc-method (none, slalom or dentist), --impute, JSON --qc-args, and the credible-set purity threshold. Use these settings only after confirming their assumptions for the available GWAS and LD reference.
Command reference#
Check the current interface before adapting the example.
sos run pipeline/rss_analysis.ipynb -h
Results and interpretation#
Fine-mapping result#
The GwasFineMappingResult records the study, region and method. Its entry contains the SuSiE fit and a topLoci table with one row per aligned variant.
Component |
Interpretation |
|---|---|
|
Posterior probability that a variant contributes to a modeled effect |
|
95% credible-set assignment |
|
LD-based purity of the assigned credible set |
Marginal columns |
Harmonized GWAS effect, uncertainty, z score and p-value |
|
Model fit, credible sets and diagnostics |
suppressPackageStartupMessages(library(pecotmr))
result_file <- "output/rss_analysis/fine_mapping/AD_Bellenguez_2022.chr22_49355984_50799822.gwas_finemap.rds"
result <- readRDS(result_file)
ld <- attr(result, "listData")
cat("Class:", class(result), "\n")
print(ld[c("study", "method", "region_id")])
entry <- ld$entry[[1]]
top_loci <- attr(entry, "topLoci")
top_loci <- top_loci[order(top_loci$pip, decreasing = TRUE), ]
head(top_loci[, c("variant_id", "af", "marginal_z", "pip", "cs_95", "cs_95_purity")], 8)
The toy result ranks variants by PIP but does not retain a high-purity credible set. That means the example demonstrates the object and workflow without localizing a causal variant. In a substantive analysis, prioritize high-PIP variants only after checking credible-set purity, allele alignment, GWAS/LD ancestry matching and sensitivity to QC. Several variants in one credible set represent unresolved alternatives, not multiple confirmed causal variants.
Limitations and common pitfalls#
External LD must match the GWAS ancestry, build and allele coding.
Summary statistics and the LD panel should cover the same variants; extensive missingness can change the fit.
Imputed summary statistics add model-based information and should be labeled as imputed.
Credible sets depend on LD quality and the assumed maximum number of effects.
Low purity means the set should not be interpreted as localized.
The example block is intentionally small and is not a biological benchmark.
Next steps#
Annotate well-supported variants, compare credible sets across relevant populations or studies, and integrate the result with QTL fine-mapping or colocalization. Preserve the GWAS and LD provenance so downstream users can evaluate compatibility.