Package: gglasso
GGLassoThis package contains algorithms for solving General Graphical Lasso (GGLasso) problems, including single, multiple, as well as latent
Graphical Lasso problems.Docs|ExamplesGetting startedInstall via pip/condaThe package is available on pip and conda and can be installed withpip install gglassoorconda install -c conda-forge gglassoInstall from sourceAlternatively, 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.pyTest your installation withpytest gglasso/ -vAdvanced optionsIf you want to create a conda environment with full development dependencies (for building docs, testing etc), run:conda env create -f environment.ymlIf you wish to installgglassoin developer mode, i.e. not having to reinstallgglassoeverytime the source code changes (either by remote or local changes), runpython setup.py clean --all develop clean --allTheglasso_problemclassGGLassocan 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 theglasso_problemclass which chooses automatically the correct solver and model selection functionality. Seeour documentationfor all the details.AlgorithmsGGLassocontains algorithms for solving a multitude of Graphical Lasso problem formulations. For all the details, we refer to thesolver overview in our documentation.The package includes solvers for the following problems:Single Graphical LassoGroup and Fused Graphical LassoWe implemented the ADMM (see [2] and [3]) and a proximal point algorithm (see [4]).Non-conforming Group Graphical LassoA Group Graphical Lasso problem where not all variables exist in all instances/datasets.Functional Graphical LassoA 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 typesparse - low rank.CitationIf you useGGLasso, 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 GuidelinesContributions and suggestions to the software are always welcome.
Please, consult ourcontribution guidelinesprior
to submitting a pull request.Report issues or problems with the software using github’sissue
tracker.Contributors must adhere to theCode 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.