Genome-Wide Robust Analysis for Biobank Data (GRAB)

Provides a comprehensive suite of genome-wide association study (GWAS) methods specifically designed for biobank-scale data, including but not limited to, robust approaches for time-to-event traits (Li et al., 2025 ) and ordinal categorical traits (Bi et al., 2021 ). The package also offers general frameworks for GWAS of any trait type (Bi et al., 2020 ), while accounting for sample relatedness (Xu et al., 2025 ) or population structure (Ma et al., 2025 ). By accurately approximating score statistic distributions using saddlepoint approximation (SPA), these methods can effectively control type I error rates for rare variants and in the presence of unbalanced phenotype distributions. Additionally, the package includes functions for simulating genotype and phenotype data to support research and method development.


GRAB

GitHub main

GRAB is an R package that provides a comprehensive suite of GWAS methods for biobank-scale data. For detailed instructions, see the GRAB manual page.

Version 0.1.2 (the last version before v0.2.0 and prior to June 2025) is archived in branch release/v0.1.2.

Installation

GRAB is an R package, with part of its code written in C++ for improved performance. GRAB can be installed on Linux, Windows, or macOS via CRAN, Conda, or from source code.

Install via CRAN

CRAN Status

Install GRAB from CRAN in your R console:

install.packages("GRAB", dependencies = TRUE)

Install via Conda

Conda-Forge

Install GRAB in a new Conda environment named grab_env from the conda-forge channel:

conda create -n grab_env -c conda-forge r-grab r-skat r-dbplyr r-tidyr r-r.utils

Quick tutorial

Here is a quick tutorial for GWAS of a time-to-event trait using SPAmix.

Step 1: fit a null model

library(GRAB)
PhenoFile <- system.file("extdata", "simuPHENO.txt", package = "GRAB")
PhenoData <- data.table::fread(PhenoFile, header = TRUE)

obj.SPAmix <- GRAB.NullModel(
  survival::Surv(SurvTime, SurvEvent) ~ AGE + GENDER + PC1 + PC2,
  data = PhenoData,
  subjIDcol = "IID",
  method = "SPAmix",
  traitType = "time-to-event",
  control = list(PC_columns = "PC1,PC2")
)

Step 2: conduct score test

GenoFile <- system.file("extdata", "simuPLINK.bed", package = "GRAB")
OutputFile <- file.path(tempdir(), "Results_SPAmix.txt")

GRAB.Marker(obj.SPAmix, GenoFile = GenoFile, OutputFile = OutputFile)
data.table::fread(OutputFile)

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("GRAB")

0.2.5 by Woody Miao, 3 months ago


Browse source code at https://github.com/cran/GRAB


Authors: Wenjian Bi [aut] , Wei Zhou [aut] , Rounak Dey [aut] , Zhangchen Zhao [aut] , Seunggeun Lee [aut] , Woody Miao [cre]


Documentation:   PDF Manual  


GPL (>= 2) license


Imports dplyr, data.table, mvtnorm, Matrix, RSQLite, lme4, ordinal, survival, Rcpp, RcppParallel, igraph, rlang

Suggests SKAT, dbplyr, tidyr, R.utils

Linking to Rcpp, RcppArmadillo, RcppParallel, BH


See at CRAN