Anhui Huang | Ph.D. Electrical and Computer Engineering
https://scholar.google.com/citations?user=WhDMZEIAAAAJ&hl=en
Provides elastic net penalized maximum likelihood for structural equation models (SEM). The package implements
lasso and elastic net (l1/l2) penalized SEM and
estimates the model parameters with an efficient block coordinate ascent algorithm that maximizes the penalized
likelihood of the SEM. Hyperparameters are inferred from cross-validation (CV). A Stability Selection (STS) function
is also available to provide accurate causal effect selection.
The experimental study and vignettes are also available in the doc/ folder in the package.
sparseSEM is available on PyPI: https://pypi.org/project/sparseSEM/. Run command pip install sparseSEM to install
from PyPI.
test/ folder contains examples using data packed along with this package in data/ folder.
To run test/ examples, clone this repo, and run from test/ directory.
This package was originally developed to leverage high performance computer clusters to enable parallel computation through openMPI. Users who have access to large scale computational resources can explore the functionality and checkout the openMPI module in this package.
Current package utilizes blas/lapack for high speed computation. To build the C/C++ code, the intel OneMKL library is specified in the package setup.
- Install the free OneMKL package (https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2023-0/intel-oneapi-math-kernel-library-onemkl.html)
- Check if your package is the same as in the setup.py file ('/opt/intel/oneapi/mkl/2023.1.0/include'). Update the file accordingly if it was installed in a different path.
- V2.0: add more output information include CV results, hyperparameter, and details of model fit. V2.0 is a major release with stability selection added.
- V1: initial release with corresponding to R package v2.
An R package for sparseSEM is also available at CRAN: https://cran.r-project.org/web/packages/sparseSEM/index.html
C/C++ implementation of sparseSEM with openMPI for parallel computation is available in openMPI branch (https://github.com/anhuihng/pySparseSEM/tree/openMPI).
The following network was a Yeast Gene Regulatory Network (GRN) inferred by sparseSEM.
Fig.1 Sparse budding yeast GRN inferred by sparseSEM
Fig.2 Budding yeast gene interaction pattern with link edges identified by sparseSEM
Network visualized via circos and cytoscope packages. See openMPI/readme.md as well as doc/* for more details.
- Huang A. (2014) Sparse Model Learning for Inferring Genotype and Phenotype Associations. Ph.D Dissertation,
University of Miami, Coral Gables, FL, USA.
- Huang A. (2014) sparseSEM: Sparse-Aware Maximum Likelihood for Structural Equation Models. Rpackage
(https://cran.r-project.org/web/packages/sparseSEM/index.html)