How zhilizheng/sbayesrc works
SBayesRC is an R package for annotation-aware polygenic prediction from GWAS summary statistics and block-LD references. Its user workflow optionally tidies and imputes summary data, runs the SBayesRC inference model to estimate SNP effects and functional architecture, and can calculate PRS or tune multi-ancestry PRS weights. LD preparation is a separate capability. The README documents these stages; sampled C++ shows the model, annotation, and LD internals, while the R workflow implementations were not sampled, so their detailed wiring is represented only where documented.
Main entry points: sbr_eigen.r SBayesRC runner · sbr_eigen_c.cpp Rcpp interface · tidy_ma.R Tidy summary · imp_eig.r Impute SNPs
Components 22
Summary preparation
- Tidy summary
R/tidy_ma.R - Impute SNPs
R/imp_eig.r
Inference model
- SBayesRC runner
R/sbr_eigen.r - Rcpp interface
src/sbr_eigen_c.cpp - MCMC sampler
src/SBayesRC.cpp - Annotation model
src/AnnoProb.cpp
Risk scoring
- PRS calculator
R/prs.R - Multi-ancestry tuner
R/multi.R
LD support
- Block LD reader
src/BlockLDeig.cpp - Cut LD blocks
R/cutLDs.R - LD cutter
src/cutLD.cpp
Other components
- Analyst
- GWAS summary
- Block LD reference
- Functional annotations
- Prepared summary
- SNP weights
- Architecture estimates
- Genotypes
- PRS scores
- Tuning IDs and phenotype
- Weighted PRS
Connections 30
- Analyst → Tidy summary: optionally tidies
- GWAS summary → Tidy summary: reads summary
- Block LD reference → Tidy summary: matches SNPs
- Tidy summary → Prepared summary: writes cleaned data
- Analyst → Impute SNPs: optionally imputes
- Prepared summary → Impute SNPs: reads summary
- Block LD reference → Impute SNPs: supplies LD
- Impute SNPs → Prepared summary: writes imputed data
- Analyst → SBayesRC runner: runs model
- Prepared summary → SBayesRC runner: supplies summary
- Block LD reference → SBayesRC runner: supplies LD
- Functional annotations → SBayesRC runner: supplies annotations
- SBayesRC runner → Rcpp interface: calls native model
- Rcpp interface → MCMC sampler: constructs and runs
- MCMC sampler → Block LD reader: reads block LD
- MCMC sampler → Annotation model: samples annotation effects
- Rcpp interface → SNP weights: returns effects
- Rcpp interface → Architecture estimates: returns estimates
- Analyst → PRS calculator: calculates scores
- SNP weights → PRS calculator: provides SNP effects
- Genotypes → PRS calculator: provides genotypes
- PRS calculator → PRS scores: writes scores
- Analyst → Multi-ancestry tuner: tunes ancestries
- PRS scores → Multi-ancestry tuner: provides ancestry scores
- Tuning IDs and phenotype → Multi-ancestry tuner: provides tuning data
- Multi-ancestry tuner → Weighted PRS: writes combined score
- Analyst → Cut LD blocks: prepares LD
- Block LD reference → Cut LD blocks: reads LD blocks
- Cut LD blocks → LD cutter: calls native cutter
- LD cutter → Block LD reference: writes eigen blocks