rsfgsea
High-performance Rust implementation of preranked Gene Set Enrichment Analysis (GSEA), designed as a drop-in, optimized alternative to the R fgsea package.
What it focuses on:
- fgsea-compatible simple and multilevel workflows
- library and CLI use from one Rust crate
- deterministic parity-focused CPU path
- optional hybrid GPU acceleration for large simple-stage screening
Headline results from the main project benchmarks:
- local representative Criterion benchmark, simple:
2.282 sfor 10k genes, 1k pathways, 10k permutations - local representative Criterion benchmark, multilevel:
3.438 sfor 10k genes, 1k pathways,nPermSimple=1000 - multilevel, small workload, 1 worker:
2 msvs R42 ms(21.0xfaster) - multilevel, large workload, 16 workers:
105 msvs R977 ms(9.3xfaster) - simple, small workload, 1 worker:
720 msvs R2597 ms(3.6xfaster) - simple, large workload, 16 workers:
674 msvs R798 ms(1.18xfaster) - real muscle-comparison validation workload:
81 MBpeak RSS vs R329 MBpeak RSS (4.1xlower)
Run the local optimization benchmark with:
Current CPU multilevel parity vs R is near floating-point noise in this repo's validation setup:
- max
|ES|diff:4.988e-09 - max
|NES|diff:4.983e-09 - max
|pval|diff:4.975e-09 - max
|padj|diff:4.965e-09
Install
Library:
[]
= "0.3.4"
CLI:
Minimal Rust Example
use *;
let ranks = new;
let pathways = vec!;
let results = fgsea;
println!;
CLI
For deeper usage, benchmarks, parity notes, and reproducibility details, see the main repository: https://github.com/deminden/rsfgsea