Skip to content
/ parPE Public

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

License

Notifications You must be signed in to change notification settings

ICB-DCM/parPE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

40432be · Jan 28, 2020
Nov 20, 2019
Dec 2, 2019
Apr 5, 2019
Dec 1, 2019
Dec 2, 2019
Jan 8, 2020
Jan 27, 2020
Dec 14, 2019
Jan 18, 2020
Jan 18, 2020
Dec 13, 2019
Oct 8, 2019
Jan 27, 2020
Dec 18, 2019
Apr 10, 2019
Apr 10, 2019
Dec 1, 2018
Jun 27, 2018
May 31, 2019
Dec 14, 2019
Mar 12, 2019
Mar 7, 2019
Dec 13, 2019
May 10, 2019
Feb 14, 2018
Jun 19, 2019
May 3, 2019
Dec 2, 2019

Repository files navigation

Run Status Coverage Badge Codacy Badge 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 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.6)
  • MPI (OpenMPI, MPICH, ...)
  • PTHREADS
  • IPOPT (>= 1.2.7) (requires coinhsl)
  • CERES (>=1.13) (requires Eigen)
  • HDF5 (>= 1.10)
  • CBLAS compatible BLAS (libcblas, Intel MKL, ...)
  • AMICI (included in this repository) (uses SuiteSparse, Sundials)
  • C++14 compiler
  • Python >= 3.6, including header files

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

sudo apt-get install build-essential gfortran libmpich-dev libblas-dev \
    libhdf5-dev cmake libceres-dev coinor-libipopt-dev libcpputest-dev \
    libboost-serialization-dev libpython-dev

Scripts to fetch and build the remaining dependencies are provided in /ThirdParty/:

cd ThirdParty
./downloadPackages.sh
./installDeps.sh

NOTE: When using ThirdParty/installIpopt.sh to build Ipopt, follow the instructions in ThirdParty/Ipopt-3.12.12/ThirdParty/HSL/INSTALL.HSL for obtaining the hsl library before continuing, otherwise IpOpt will not be usable. Afterwards, (re)run ThirdParty/installIpopt.sh.

Building

After having taken care of the dependencies listed above, parPE can be built:

./build.sh

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

Recently tested compilers

  • GCC 8.3.0
  • Intel icpc (ICC) 17.0.6

Documentation & further information

Some high-level documentation is provided in doc/ 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).

  • Paul Stapor, Leonard Schmiester, Christoph Wierling, Bodo Lange, Daniel Weindl, and Jan Hasenauer. 2019. Mini-Batch Optimization Enables Training of Ode Models on Large-Scale Datasets. bioRxiv. Cold Spring Harbor Laboratory. preprint: doi:10.1101/859884.

  • CanPathPro

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.