All Projects → ICB-DCM → parPE

ICB-DCM / parPE

Licence: MIT license
Parameter estimation for dynamical models using high-performance computing, batch and mini-batch optimizers, and dynamic load balancing.

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
shell
77523 projects
r
7636 projects
SWIG
194 projects

Projects that are alternatives of or similar to parPE

AMICI
Advanced Multilanguage Interface to CVODES and IDAS
Stars: ✭ 80 (+400%)
Mutual labels:  ode, parameter-estimation, sbml, petab
sbml-test-suite
The SBML Test Suite is a conformance testing system. It allows developers and users to test the degree and correctness of the SBML support provided in a software package.
Stars: ✭ 21 (+31.25%)
Mutual labels:  systems-biology, ode, sbml
SBMLToolkit.jl
SBML differential equation and chemical reaction model (Gillespie simulations) for Julia's SciML ModelingToolkit
Stars: ✭ 25 (+56.25%)
Mutual labels:  systems-biology, ode, sbml
newt
A web application to visualize and edit pathway models
Stars: ✭ 46 (+187.5%)
Mutual labels:  systems-biology, sbml
CNApy
An integrated visual environment for metabolic modeling with common methods such as FBA, FVA and Elementary Flux Modes, and advanced features such as thermodynamic methods, extended Minimal Cut Sets, OptKnock, RobustKnock, OptCouple and more!
Stars: ✭ 27 (+68.75%)
Mutual labels:  systems-biology, sbml
DiffEqParamEstim.jl
Easy scientific machine learning (SciML) parameter estimation with pre-built loss functions
Stars: ✭ 36 (+125%)
Mutual labels:  ode, parameter-estimation
EscherConverter
A standalone program that reads files created with the graphical network editor Escher and converts them to files in community standard formats.
Stars: ✭ 14 (-12.5%)
Mutual labels:  systems-biology, sbml
pyPESTO
python Parameter EStimation TOolbox
Stars: ✭ 93 (+481.25%)
Mutual labels:  systems-biology, parameter-estimation
smfsb
Documentation, models and code relating to the 3rd edition of the textbook Stochastic Modelling for Systems Biology
Stars: ✭ 27 (+68.75%)
Mutual labels:  systems-biology, sbml
CellMLToolkit.jl
CellMLToolkit.jl is a Julia library that connects CellML models to the Scientific Julia ecosystem.
Stars: ✭ 50 (+212.5%)
Mutual labels:  systems-biology, ode
MultiScaleArrays.jl
A framework for developing multi-scale arrays for use in scientific machine learning (SciML) simulations
Stars: ✭ 63 (+293.75%)
Mutual labels:  ode
pysces
The official PySCeS project source code repository.
Stars: ✭ 25 (+56.25%)
Mutual labels:  sbml
diffeqr
Solving differential equations in R using DifferentialEquations.jl and the SciML Scientific Machine Learning ecosystem
Stars: ✭ 118 (+637.5%)
Mutual labels:  ode
QUB DW HighPerformancePython
Code and more for the QUB Development Weeks event 'High Performance Python'
Stars: ✭ 79 (+393.75%)
Mutual labels:  high-performance-computing
Nonlinear-Systems-and-Control
Files for my Nonlinear Systems and Controls class.
Stars: ✭ 16 (+0%)
Mutual labels:  ode
PKPDsim
Simulate PK-PD models defined as ODE systems
Stars: ✭ 24 (+50%)
Mutual labels:  ode
stochpy
StochPy is a versatile stochastic modeling package which is designed for stochastic simulation of molecular control networks
Stars: ✭ 36 (+125%)
Mutual labels:  systems-biology
pestpp
tools for scalable and non-intrusive parameter estimation, uncertainty analysis and sensitivity analysis
Stars: ✭ 90 (+462.5%)
Mutual labels:  parameter-estimation
linnea
Linnea is an experimental tool for the automatic generation of optimized code for linear algebra problems.
Stars: ✭ 60 (+275%)
Mutual labels:  high-performance-computing
odex-js
Bulirsch-Stoer integration of systems of ordinary differential equations in JavaScript
Stars: ✭ 52 (+225%)
Mutual labels:  ode
parPE tests Coverage PEtab test suite Deploy to dockerhub DOI

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
  • improved load balancing by intermingling multiple optimization runs (multi-start local optimization)
  • simple integration with SBML models via AMICI and PEtab
  • 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)

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/petab_model_import.md.

Dependencies

For full functionality, parPE requires the following libraries:

  • CMAKE (>=3.10)
  • MPI (OpenMPI, MPICH, ...)
  • PTHREADS
  • 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.7, including header files

On Debian-based systems, dependencies can be installed via:

sudo apt-get install \
  build-essential \
  cmake \
  cmake-curses-gui \
  coinor-libipopt-dev \
  curl \
  gfortran \
  libblas-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/:

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:

./buildAll.sh

Other sample build scripts are provided as /build*.sh.

Recently tested compilers

  • GCC 10.2.0
  • Intel icpc (ICC) 17.0.6

Docker

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:

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].