parpe
Parameter estimation for dynamical models using high-performance computing, batch and mini-batch optimizers, and dynamic load balancing.
Science Score: 85.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 19 DOI reference(s) in README -
✓Academic publication links
Links to: biorxiv.org, zenodo.org -
✓Committers with academic emails
5 of 9 committers (55.6%) from academic institutions -
✓Institutional organization owner
Organization icb-dcm has institutional domain (www.mathematics-and-life-sciences.uni-bonn.de) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.8%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Parameter estimation for dynamical models using high-performance computing, batch and mini-batch optimizers, and dynamic load balancing.
Basic Info
Statistics
- Stars: 22
- Watchers: 6
- Forks: 4
- Open Issues: 61
- Releases: 18
Topics
Metadata Files
README.md
parPE
The parPE library provides functionality for solving large-scale parameter optimization problems requiring up to thousands of simulations per objective function evaluation on high performance computing (HPC) systems.
parPE offers easy integration with AMICI-generated ordinary differential equation (ODE) models.
Features
parPE offers the following features:
- MPI-based load-balancing of individual simulations (if you don't need this, and don't require a C++ library, consider using the pypesto Python package which is more mature and user-friendly)
- improved load balancing by intermingling multiple optimization runs (multi-start local optimization)
- integration with SBML models via
AMICI and
PEtab
- hierarchical optimization (https://doi.org/10.1093/bioinformatics/btz581)
- interfaces to Ipopt, Ceres, FFSQP and SUMSL (CALGO/TOMS 611) optimizers
- HDF5 I/O compatible with a wide variety of programming languages
- Good parallel scaling to up to several thousand cores (highly problem dependent)
Note that this library has been developed for specific research questions and certain assumptions may not always hold. Use with caution. In particular, certain default settings may need adaptation (in particular, parallelization settings and AMICI settings such as the sensitivity method). PEtab support is patchy. Always verify your simulation results.
Getting started
Although various modules of parPE can be used independently, the most meaningful and convenient use case is parameter optimization for an SBML model specified in the PEtab format. This is described in doc/petabmodelimport.md.
Dependencies
For full functionality, parPE requires the following libraries:
- CMAKE (>=3.22)
- MPI (OpenMPI, MPICH, ...)
- IPOPT (>= 1.2.7) (requires coinhsl)
- CERES (>=1.13) (requires Eigen)
- Boost (serialization, thread)
- HDF5 (>= 1.10)
- CBLAS compatible BLAS (libcblas, Intel MKL, ...)
- AMICI (included in this repository) (uses SuiteSparse, Sundials)
- C++17 compiler
- Python >= 3.10, including header files
On Debian-based systems, dependencies can be installed via:
shell
sudo apt-get install \
build-essential \
cmake \
cmake-curses-gui \
coinor-libipopt-dev \
curl \
gfortran \
libblas-dev \
libboost-chrono-dev \
libboost-serialization-dev \
libboost-thread-dev \
libceres-dev \
libmpich-dev \
libhdf5-dev \
libpython3-dev \
python3-pip
Scripts to fetch and build the remaining dependencies are provided in
/ThirdParty/:
shell
ThirdParty/installDeps.sh
NOTE: When using ThirdParty/installIpopt.sh to build Ipopt, you may have to
download the HSL library separately as described at
https://coin-or.github.io/Ipopt/INSTALL.html#DOWNLOAD_HSL. Place the HSL
archive into ThirdParty before running ThirdParty/installIpopt.sh. If asked
type in your coinhsl version (e.g. 2019.05.21 if you
have coinhsl-2019.05.21.tar.gz).
Building
After having taken care of the dependencies listed above, parPE can be built:
shell
./buildAll.sh
Other sample build scripts are provided as /build*.sh.
Recently tested compilers
- GCC 14.2.0
- Clang 18.1.3
Containers
There is a Dockerfile available in container/charliecloud/ and images
can be found on dockerhub.
Documentation & further information
Some high-level documentation is available at
https://parpe.readthedocs.io/en/latest/
and among GitHub issues. No extensive
full-text documentation is available for the C++ interface yet. For usage of
the C++ interface see examples/ and */tests.
References
parPE is being used or has been used in the following projects:
Leonard Schmiester, Yannik Schälte, Fabian Fröhlich, Jan Hasenauer, Daniel Weindl. Efficient parameterization of large-scale dynamic models based on relative measurements. Bioinformatics, btz581, doi:10.1093/bioinformatics/btz581 (preprint: doi:10.1101/579045).
Stapor, P., Schmiester, L., Wierling, C. et al. Mini-batch optimization enables training of ODE models on large-scale datasets. Nat Commun 13, 34 (2022). doi:10.1038/s41467-021-27374-6 (preprint: doi:10.1101/859884).
Paul F. Lang, David R. Penas, Julio R. Banga, Daniel Weindl, Bela Novak. Reusable rule-based cell cycle model explains compartment-resolved dynamics of 16 observables in RPE-1 cells. bioRxiv (2023). doi:10.1101/2023.05.04.539349
Funding
parPE has been developed within research projects receiving external funding:
Through the European Union's Horizon 2020 research and innovation programme under grant agreement no. 686282 (CanPathPro).
Computer resources for testing parPE have been provided among others by the Gauss Centre for Supercomputing / Leibniz Supercomputing Centre under grant pr62li and pn72go.
Owner
- Name: Data-driven Computational Modelling
- Login: ICB-DCM
- Kind: organization
- Website: https://www.mathematics-and-life-sciences.uni-bonn.de/de?setlanguage=en
- Repositories: 13
- Profile: https://github.com/ICB-DCM
Hasenauer Lab @ University of Bonn / Helmholtz Munich
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: parPE
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Daniel
family-names: Weindl
email: sci@danielweindl.de
orcid: 'https://orcid.org/0000-0001-9963-6057'
-
family-names: "Stapor"
given-names: "Paul"
orcid: "https://orcid.org/0000-0002-7567-3985"
-
family-names: "Schmiester"
given-names: "Leonard"
orcid: "https://orcid.org/0000-0001-7946-3232"
repository-code: 'https://github.com/ICB-DCM/parPE/'
license: MIT
doi: 10.5281/zenodo.3478612
preferred-citation:
type: article
title: "Efficient parameterization of large-scale dynamic models based on relative measurements"
doi: 10.1093/bioinformatics/btz581
journal: "Bioinformatics"
year: 2020
month: 1
start: 594
end: 602
issue: 2
volume: 36
authors:
-
family-names: "Schmiester"
given-names: "Leonard"
orcid: "https://orcid.org/0000-0001-7946-3232"
-
family-names: "Schälte"
given-names: "Yannik"
orcid: "https://orcid.org/0000-0003-1293-820X"
-
family-names: "Fröhlich"
given-names: "Fabian"
orcid: "https://orcid.org/0000-0002-5360-4292"
-
family-names: "Hasenauer"
given-names: "Jan"
orcid: "https://orcid.org/0000-0002-4935-3312"
-
family-names: "Weindl"
given-names: "Daniel"
orcid: "https://orcid.org/0000-0001-9963-6057"
GitHub Events
Total
- Create event: 25
- Release event: 3
- Issues event: 5
- Watch event: 2
- Delete event: 24
- Issue comment event: 73
- Push event: 84
- Pull request event: 48
Last Year
- Create event: 25
- Release event: 3
- Issues event: 5
- Watch event: 2
- Delete event: 24
- Issue comment event: 73
- Push event: 84
- Pull request event: 48
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Daniel Weindl | d****l@h****e | 1,574 |
| Paul Stapor | p****r@h****e | 15 |
| leonard | l****r@h****e | 5 |
| Simon Merkt | s****t@u****e | 2 |
| PaulJonasJost | 7****t | 2 |
| dependabot[bot] | 4****] | 1 |
| Lars Gohr | e****r | 1 |
| Katrin Leinweber | k****i@p****e | 1 |
| fabian.froehlich | f****h@h****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 14
- Total pull requests: 90
- Average time to close issues: 7 months
- Average time to close pull requests: 11 days
- Total issue authors: 3
- Total pull request authors: 7
- Average comments per issue: 0.29
- Average comments per pull request: 1.12
- Merged pull requests: 82
- Bot issues: 0
- Bot pull requests: 1
Past Year
- Issues: 5
- Pull requests: 38
- Average time to close issues: 26 days
- Average time to close pull requests: 1 day
- Issue authors: 2
- Pull request authors: 3
- Average comments per issue: 0.2
- Average comments per pull request: 1.0
- Merged pull requests: 35
- Bot issues: 0
- Bot pull requests: 1
Top Authors
Issue Authors
- dweindl (13)
- MerktSimon (1)
- scheney-do (1)
Pull Request Authors
- dweindl (108)
- paulstapor (4)
- dependabot[bot] (2)
- PaulJonasJost (2)
- MerktSimon (1)
- elgohr (1)
- stephanmg (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- breathe ==4.31.0
- exhale ea77a313777c1382a7830ce9ee6c405ce47f5f3b
- ipython >=7.28.0
- matplotlib >=3.4.3
- mock >=4.0.1
- nbsphinx >=0.8.7
- petab >=0.1.20
- pkgconfig >=1.5.5
- pygments ==2.10.0
- pysb >=1.11.0
- recommonmark >=0.6.0
- setuptools >=45.2.0
- sphinx ==4.2.0
- sphinx-autodoc-typehints ==1.13.0
- sphinx_rtd_theme >=1.0.0
- sphinxcontrib-matlabdomain >=0.12.0
- sphinxcontrib-napoleon *
- IPython >=7.19.0
- Sphinx ==4.0.3
- breathe >=4.26.1
- colorama *
- coloredlogs *
- exhale >=0.2.3
- h5py *
- m2r2 >=0.2.7
- matplotlib *
- nbsphinx >=0.8.1
- numpy *
- pandas *
- petab *
- sphinx-autodoc-typehints >=1.10.3
- sphinx_rtd_theme >=0.5.1
- sympy *
- termcolor *
- amici >=0.11.15
- colorama >=0.4.3
- coloredlogs >=15.0
- h5py >=3.0.0
- numpy >=1.18.1
- petab >=0.1.18
- python-libsbml >=5.17.0
- snakemake >=5.10.0
- termcolor >=1.1.0
- actions/checkout master composite
- actions/checkout master composite
- elgohr/Publish-Docker-Github-Action 2.8 composite
- actions/cache v1 composite
- actions/checkout master composite
- actions/checkout master composite
- ubuntu 20.04 build
- ubuntu 20.04 build