This repo is the development version of the Sparse Marginal Epistasis test. The supported and published version can be found here: https://github.com/lcrawlab/sme
The mmer
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: multimodal 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 MME.
- Parallelization: Utilizes OpenMP for multi-threaded processing.
You can install the development version of mmer from GitHub with:
install.packages("devtools")
devtools::install_github("lcrawlab/mmer")
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 |
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 (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