henhaobio
Sign in

BioinformaticsGenetic & Genomic MedicinePeer-reviewed journal article

GROMTools: scalable individual-level GReX imputation for mega-biobank-scale cohorts

Marios AnyfantakisiD, Sanan VenkateshiD, Jamie J. R. BennettiD, Chenyu LiuiD, Gabriel E. HoffmaniD, Panos RoussosiD, Georgios VoloudakisiD

PDFDOIPreprintCode

Abstract

MotivationThe computational burden of individual-level genetically regulated gene expression (GReX) imputation has risen sharply with the growth of human mega-biobanks and the rapid expansion of transcriptomic imputation models across tissues and single-cell hierarchies. Existing tools were not designed for this setting and require complex, memory-intensive workflows that are poorly matched to shared and cloud-based compute environments, where runtime, memory, and I/O directly determine cost and throughput. GROMTools is an open-source C++ engine with an R interface that exploits sparse prediction weights, streams PLINK2 genotypes, and writes compact binary outputs for scalable individual-level GReX imputation. ResultsIn UK Biobank (UKBB), benchmarks on chromosome 1 across 50,000-450,000 individuals, 388,017 variants, and 11,724 gene-tissue pairs from 32 single-cell models, GROMTools produced near-identical predictions to PrediXcan and PLINK2, with minimum Pearson correlation >0.999 and maximum RMSE <0.001 across all of the imputed genes, while reducing CPU time by about 100-fold and peak memory by about 33-fold. These gains make routine biobank-scale individual-level GReX imputation practical and cost-efficient on standard CPU infrastructure. AvailabilityGROMTools is freely available at https://github.com/voloudakislab/gromtools under the GPL v3 license. Documentation available at https://voloudakislab.github.io/gromtools/. All of our coding scripts used for quality control of data and benchmarking pipelines and all of our log files are archived at DOI: https://doi.org/10.5281/zenodo.19547333.

In-depth summary

Claude Opus 5.5 · xhigh effort · 8 Nov 2026 · from the full text of version 1 (28 Apr 2026) · CC BY 4.0

GROMTools, a sparse-weight C++/R engine streaming PLINK2 genotypes, reproduces PrediXcan and PLINK2 GReX imputations with about 100-fold less CPU time and 33-fold less peak memory.

Individual-level imputation of genetically regulated gene expression (GReX) now spans millions of biobank participants and many tissue and single-cell models, but existing tools need memory-hungry, I/O-heavy workflows that raise cost on shared or cloud compute. GROMTools keeps the standard linear GReX model and reimplements it as a streamed sparse computation with compact binary output, which removes chunk-and-merge pipelines.

Key results

  1. ShownGROMTools output is numerically near-identical to both comparator tools for every imputed gene-tissue pair; the authors attribute residual differences to floating-point rounding, since all methods are deterministic.

    Min Pearson r >0.999 and max RMSE <0.001 against both PrediXcan and PLINK2 --score. Concordance was computed on sampled sets of 10,000 individuals per gene-tissue pair, across 11,724 gene-tissue pairs on UK Biobank chromosome 1. · Benchmark design; Benchmark evaluation metrics; GROMTools preserves GReX estimates

  2. ShownTotal CPU time is lower than both comparators at every tested cohort size from 50,000 to 450,000 individuals, by 69.02- to 208.75-fold depending on comparator and sample size, with all jobs run on a single core.

    Average CPU-time reduction ~99%: 107-fold vs PrediXcan and 165-fold vs PLINK2. Per-sample-size reductions ranged from 108.93- to 208.75-fold vs PLINK2 and from 69.02- to 121.39-fold vs PrediXcan (chromosome 1, 388,017 variants, 1 CPU core per job). · Benchmark design; CPU-hours and peak memory usage decrease…; Figure legends

  3. ShownPeak RAM is much smaller in the benchmarks; by design, peak memory depends mainly on the number of simultaneously active output columns plus the current genotype chunk, rather than on the whole cohort-by-gene output matrix.

    Peak memory fell ~96% (~33-fold) on average vs either comparator. Ranges: 15.46- to 48.82-fold vs PLINK2 and 15.13- to 48.63-fold vs PrediXcan across 50,000-450,000 individuals; peak RAM was taken from LSF scheduler reports. · Output and streaming; Benchmark evaluation metrics; CPU-hours and peak memory usage decrease…; Figure legends

  4. ShownStreaming genotypes directly from PLINK2 files and writing one binary .grom matrix lowers I/O compared with the text-based score files the comparators write.

    Mean read characters (rchar) cut ~32-fold vs PLINK2 and ~13-fold vs PrediXcan. Mean write characters (wchar) cut ~6-fold and ~3-fold, respectively, across benchmark sample sizes (Supplementary Table 2). · Reduced memory and I/O burden enables practical…

  5. ClaimedThe package produces a single unified output across all models, can import PrediXcan SQLite .db weight databases, and lets users load chosen models, genes, or individuals through grom_read.

    These features are described in the implementation and conclusions sections. No benchmark of SQLite import or selective reading is reported, and the claim that comparator outputs reach hundreds of gigabytes is stated without a measurement. · Software implementation; Reduced memory and I/O burden enables practical…; Conclusions

Methods, data and reproducibility

GReX is computed as Y = G × B with sparse variant weights B. A C++17 engine with an Rcpp interface streams PLINK2 pgen genotypes in SNP chunks and, for each variant, updates only the gene-model pairs with nonzero weights, using BLAS over row chunks. Completed output columns are flushed to a column-major binary .grom file.

  • UK Biobank genotypes for chromosome 1, subsampled at 50,000, 100,000, 150,000, 250,000, 350,000 and 450,000 individuals for scalability benchmarks · human (UK Biobank) · n = 50,000-450,000 individuals; 388,017 variants
  • Transcriptomic prediction weight panel from the authors' prior publication: models spanning 32 tissue and single-cell types (listed in the Supplement Data) · human (applied to UK Biobank genotypes) · n = 11,724 gene-tissue pairs on chromosome 1
  • Archived QC and benchmarking scripts plus job log files · 10.5281/zenodo.19547333
Methods & tools
GROMTools (C++17 engine, R interface), PrediXcan, PLINK2 --score, pgenlib (vendored PLINK2 genotype reader), BLAS (C interface), Intel MKL (optional backend, disabled in benchmarks), Rcpp, gromtools_QC_helper (CPRA variant-weight matching), IBM Spectrum LSF, Docker image marvany/ubuntu-r422-PLINK2:1.1
Software & environment
C++17 with an Rcpp R interface; vendored PLINK2 pgenlib; standard non-MKL BLAS used for benchmarks; built with configure/Makevars; Docker image marvany/ubuntu-r422-PLINK2:1.1; released under GPL v3.
Assay conditions & compute
Mount Sinai Minerva HPC under IBM Spectrum LSF, CPU-only, with 1 CPU core per job. CPU hours and peak RAM come from LSF reports. The current version has no parallel execution.
Reproducibility gaps
UK Biobank genotypes need approved access through the UK Biobank Access Management System. The benchmark weight models are only in the Supplement Data. Variant QC and allele matching depend on a separate companion repository, for which no URL is given.
Limitations (4)
  • The engine does not align alleles explicitly across model identifiers. It assumes that overlapping variants have the same effect-allele orientation in every loaded model after the provided QC scripts have been run. · stated by the authors
  • The current version runs single-threaded and lacks the parallel execution offered by other implementations, so any wall-clock gains beyond the CPU-hour savings depend on planned multithreading. · stated by the authors
  • Benchmarks cover only UK Biobank chromosome 1, one weight panel and single-core jobs. Genome-wide runs, other cohorts or ancestries, and multithreaded comparator settings were not tested. · noted in this summary
  • A separate CPRA matching QC step must run before imputation, and the paper reports no runtime or memory for it; comparator pre- and post-processing steps were also excluded from timing, so end-to-end pipeline cost is not reported. · noted in this summary

Read this if you run individual-level TWAS or GReX imputation across many tissue or cell-type models in large biobanks and need a lower-memory, CPU-efficient alternative to PrediXcan or PLINK2 scoring.

Citations
0
FWCI
0.00
Field percentile
top 26%

Reproducibility ledger

Nobody has reported trying to reproduce this paper yet. Did you replicate an experiment or run the code? Your report saves the next lab a week.

Sign in to file a reproducibility report.

Similarity Map
SelectedSame fieldCross-field
THISViñas '21Gu '25Cai '20Dokmai '21DeHaas '26Band '18
54% semantic matchBioinformatics
Ramón Viñas, Tiago Azevedo, Eric R. Gamazon+1 more·Frontiers in Genetics·Apr 13, 2021· 16 citations