GGLasso - a Python package for General Graphical Lasso computation

GGLasso - a Python package for General Graphical Lasso computation - Published in JOSS (2021)

https://github.com/fabian-sp/gglasso

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org, joss.theoj.org
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

graphical-lasso graphical-models latent-variable-models network-inference optimization
Last synced: 4 months ago · JSON representation

Repository

A Python package for General Graphical Lasso computation

Basic Info
  • Host: GitHub
  • Owner: fabian-sp
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 122 MB
Statistics
  • Stars: 36
  • Watchers: 3
  • Forks: 15
  • Open Issues: 0
  • Releases: 6
Topics
graphical-lasso graphical-models latent-variable-models network-inference optimization
Created about 6 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

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

Developer installation

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

conda env create -f environment.yml

To install gglasso in developer mode run

python -m pip install --editable .

Test your installation with

pytest tests/ -v

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:

  • Single Graphical Lasso

  • Group and Fused Graphical Lasso
    We implemented the ADMM (see [2] and [3]) and a proximal point algorithm (see [4]).

  • Non-conforming Group Graphical Lasso
    A Group Graphical Lasso problem where not all variables exist in all instances/datasets.

  • Functional Graphical Lasso
    A variant of Graphical Lasso where each variables has a functional representation (e.g. by Fourier coefficients).

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

  • [1] Friedman, J., Hastie, T., and Tibshirani, R. (2007). Sparse inverse covariance estimation with the Graphical Lasso. Biostatistics, 9(3):432–441.
  • [2] Danaher, P., Wang, P., and Witten, D. M. (2013). The joint graphical lasso for inverse covariance estimation across multiple classes. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 76(2):373–397.
  • [3] Tomasi, F., Tozzo, V., Salzo, S., and Verri, A. (2018). Latent Variable Time-varying Network Inference. InProceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. ACM.
  • [4] Zhang, Y., Zhang, N., Sun, D., and Toh, K.-C. (2020). A proximal point dual Newton algorithm for solving group graphical Lasso problems. SIAM J. Optim., 30(3):2197–2220.

Owner

  • Login: fabian-sp
  • Kind: user
  • Location: Munich
  • Company: TUM

:bulb: Optimization :coffee: Machine Learning

JOSS Publication

GGLasso - a Python package for General Graphical Lasso computation
Published
December 10, 2021
Volume 6, Issue 68, Page 3865
Authors
Fabian Schaipp ORCID
Technische Universität München
Oleg Vlasovets
Institute of Computational Biology, Helmholtz Zentrum München, Department of Statistics, Ludwig-Maximilians-Universität München
Christian L. Müller ORCID
Institute of Computational Biology, Helmholtz Zentrum München, Department of Statistics, Ludwig-Maximilians-Universität München, Center for Computational Mathematics, Flatiron Institute, New York
Editor
George K. Thiruvathukal ORCID
Tags
graphical lasso latent graphical model structured sparsity convex optimization ADMM

Papers & Mentions

Total mentions: 3

Simultaneous SNP selection and adjustment for population structure in high dimensional prediction models
Last synced: 2 months ago
Variance Component Selection With Applications to Microbiome Taxonomic Data
Last synced: 2 months ago
Genetic Diversity and Genome-Wide Association Study of Seed Aspect Ratio Using a High-Density SNP Array in Peanut (Arachis hypogaea L.)
Last synced: 2 months ago

GitHub Events

Total
  • Release event: 1
  • Watch event: 5
  • Delete event: 2
  • Push event: 7
  • Fork event: 1
  • Create event: 2
Last Year
  • Release event: 1
  • Watch event: 5
  • Delete event: 2
  • Push event: 7
  • Fork event: 1
  • Create event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 769
  • Total Committers: 5
  • Avg Commits per committer: 153.8
  • Development Distribution Score (DDS): 0.33
Past Year
  • Commits: 9
  • Committers: 1
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
fabian-sp f****p@h****e 515
Vlasovets o****t@m****u 161
fabian-scalable f****p@s****l 55
Christian L. Müller m****n 36
Daniel S. Katz d****z@i****g 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 7
  • Total pull requests: 40
  • Average time to close issues: 26 days
  • Average time to close pull requests: 19 days
  • Total issue authors: 6
  • Total pull request authors: 3
  • Average comments per issue: 4.29
  • Average comments per pull request: 0.3
  • Merged pull requests: 36
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 months
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • papachristoumarios (2)
  • myxa (1)
  • Bpoole908 (1)
  • ikarmann (1)
  • DManowitz (1)
  • lensory (1)
Pull Request Authors
  • fabian-sp (30)
  • Vlasovets (10)
  • danielskatz (1)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels
under construction (1) enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,009 last-month
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 13
  • Total maintainers: 1
pypi.org: gglasso

Algorithms for Single and Multiple Graphical Lasso problems.

  • Versions: 12
  • Dependent Packages: 2
  • Dependent Repositories: 2
  • Downloads: 1,009 Last month
Rankings
Dependent packages count: 3.1%
Downloads: 7.4%
Average: 8.9%
Forks count: 9.8%
Dependent repos count: 11.6%
Stargazers count: 12.4%
Maintainers (1)
Last synced: 4 months ago
conda-forge.org: gglasso

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

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Average: 45.1%
Stargazers count: 45.8%
Forks count: 49.6%
Dependent packages count: 51.2%
Last synced: 4 months ago

Dependencies

requirements.txt pypi
  • decorator ==4.4.2
  • matplotlib *
  • networkx *
  • numba >=0.46.0
  • numpy >=1.17.3
  • pandas *
  • regain *
  • scikit-learn >=0.24.1
  • scipy >=0.11.0
  • seaborn *
  • sphinx ==3.5.4
  • sphinx-gallery ==0.8.2
  • sphinx_rtd_theme ==0.5.2