fabian-sp / GGLasso

A Python package for General Graphical Lasso computation
MIT License
30 stars 14 forks source link
graphical-lasso graphical-models latent-variable-models network-inference optimization

GGLasso

PyPI version fury.io PyPI license Documentation Status DOI arXiv

This package contains algorithms for solving General Graphical Lasso (GGLasso) problems, including single, multiple, as well as latent Graphical Lasso problems.

Docs | Examples

Getting started

Install via pip/conda

The package is available on pip and conda and can be installed with

pip install gglasso

or

conda install -c conda-forge gglasso

Install from source

Alternatively, you can install the package from source using the following commands:

git clone https://github.com/fabian-sp/GGLasso.git
pip install -r requirements.txt
python setup.py

Test your installation with

pytest gglasso/ -v

Advanced options

If you want to create a conda environment with full development dependencies (for building docs, testing etc), run:

conda env create -f environment.yml

If you wish to install gglasso in developer mode, i.e. not having to reinstall gglasso everytime the source code changes (either by remote or local changes), run

python setup.py clean --all develop clean --all

The glasso_problem class

GGLasso can solve multiple problem forumulations, e.g. single and multiple Graphical Lasso problems as well as with and without latent factors. Therefore, the main entry point for the user is the glasso_problem class which chooses automatically the correct solver and model selection functionality. See our documentation for all the details.

Algorithms

GGLasso contains algorithms for solving a multitude of Graphical Lasso problem formulations. For all the details, we refer to the solver overview in our documentation.

The package includes solvers for the following problems:

Moreover, for all problem formulation the package allows to model latent variables (Latent variable Graphical Lasso) in order to estimate a precision matrix of type sparse - low rank.

Citation

If you use GGLasso, please consider the following citation

@article{Schaipp2021,
  doi = {10.21105/joss.03865},
  url = {https://doi.org/10.21105/joss.03865},
  year = {2021},
  publisher = {The Open Journal},
  volume = {6},
  number = {68},
  pages = {3865},
  author = {Fabian Schaipp and Oleg Vlasovets and Christian L. Müller},
  title = {GGLasso - a Python package for General Graphical Lasso computation},
  journal = {Journal of Open Source Software}
}

Community Guidelines

1) Contributions and suggestions to the software are always welcome. Please, consult our contribution guidelines prior to submitting a pull request. 2) Report issues or problems with the software using github’s issue tracker. 3) Contributors must adhere to the Code of Conduct.

References