MyNixOS website logo
Description

Sparse Marginal Epistasis Test.

The Sparse Marginal Epistasis Test is a computationally efficient genetics method which detects statistical epistasis in complex traits; see Stamp et al. (2025, <doi:10.1101/2025.01.11.632557>) for details.

The Sparse Marginal Epistasis test

R-CMD-check.yaml CRANdownloads CRAN_Status_Badge

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.

Key Features

  • 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.

Installation

You can install the development version of smer from GitHub with:

install.packages("devtools")
devtools::install_github("lcrawlab/sme")

Dependencies

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.

OpenMP

For OS X and Linux, the OpenMP library can be installed via one of the (shell) commands specified below:

SystemCommand
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.

SystemRequired Flags
OS X-Xclang -fopenmp -lomp
Linux-fopenmp -lomp

Known Issues

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.

References

  • Stamp J, Crawford L (2025). smer: The Sparse Marginal Epistasis Test. R package version 0.0.1, <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://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
Metadata

Version

0.0.1

License

Unknown

Platforms (76)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows