The smer package implements a computationally and statistically
efficient method for detecting marginal epistasis in genome-wide
association studies (GWAS). Find the full package documentation
including examples and articles here: Sparse Marginal Epistasis test
Documentation.
- Hutchinson’s stochastic trace estimator: efficient and scalable computation
- Mailman algorithm: fast vector-by-matrix operation
- Linear mixed model: controls for population structure
- Multimodal Input: incorporates additional data from HDF5 files to improve power in detecting gene-by-gene interactions.
- Optimize for Memory Constraints: Highly configurable block wise processing of the data allows to make the most of available resources. See also How To Optimize the Memory Requirements of SME.
- Parallelization: Utilizes OpenMP for multi-threaded processing.
You can install the latest release from CRAN
install.packages("smer")
You can install the development version of smer from
GitHub with:
install.packages("devtools")
devtools::install_github("lcrawlab/sme")System requirements of the package:
- GNU make
- R (>= 4.4)
- Rhdf5lib (from BioConductor)
- OpenMP (optional)
To install Rhdf5lib, first install the tool BiocManager from CRAN,
then install the library using this tool.
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("Rhdf5lib")The full list of R dependencies can be found in the DESCRIPTION file.
For OS X and Linux, the OpenMP library can be installed via one of the (shell) commands specified below:
| System | Command |
|---|---|
| OS X (using Homebrew) | brew install libomp |
| Debian-based systems (including Ubuntu) | sudo apt-get install libomp-dev |
To enable openMP, it may be necessary to configure the compiler flags
SHLIB_OPENMP_CXXFLAGS and LDFLAGS in the ~/.R/Makevars file.
| System | Required Flags |
|---|---|
| OS X | -Xclang -fopenmp -lomp |
| Linux | -fopenmp -lomp |
If the error is ld: library "crypto" not found, install openssl (e.g. brew install openssl).
Compiling the package requires the compiler to find the libraries for
the dependencies. For unix systems, the libraries are typically
installed at /usr/local/lib and /usr/local/include. For users using
OS X and homebrew, the libraries are typically installed at
/opt/homebrew/lib and /opt/homebrew/include.
Non-standard library paths need to be configured. The src/Makevars
file configures the compiler flags and considers the LDFLAGS and
CPPFLAGS from the ~/.R/Makevars file.
- Stamp J, Crawford L (2025). smer: The Sparse Marginal Epistasis Test. R package version 0.0.1, https://lcrawlab.github.io/sme/, https://github.com/lcrawlab/sme.
- Stamp J, Smith Pattillo S, Weinreich D, Crawford L (2025). Sparse modeling of interactions enables fast detection of genome-wide epistasis in biobank-scale studies. biorxiv, https://doi.org/10.1101/2025.01.11.632557
- Stamp J, Crawford L (2024). mvMAPIT: Multivariate Genome Wide Marginal Epistasis Test. R package version 2.0.3, https://lcrawlab.github.io/mvMAPIT/, https://github.com/lcrawlab/mvMAPIT.
- Stamp et al. (2023): Leveraging genetic correlation between traits for epistasis detection in GWAS. G3: Genes, Genomes, Genetics.
- Fu, B., Pazokitoroudi, A., Xue, A., Anand, A., Anand, P., Zaitlen, N., & Sankararaman, S. (2023). A biobank-scale test of marginal epistasis reveals genome-wide signals of polygenic epistasis. bioRxiv.
- Crawford et al. (2017): Detecting epistasis with the marginal epistasis test. PLoS Genetics.
- Devresse et al. (2024): HighFive - Header-only C++ HDF5 interface. https://zenodo.org/records/13120799
