Home

Awesome

<a href="https://github.com/ICB-DCM/parPE/actions?query=workflow%3A%22parPE+tests%22"> <img src="https://github.com/ICB-DCM/parPE/workflows/parPE%20tests/badge.svg?branch=master" alt="parPE tests"></a> <a href="https://sonarcloud.io/dashboard?id=ICB-DCM_parPE"> <img src="https://sonarcloud.io/api/project_badges/measure?project=ICB-DCM_parPE&metric=coverage" alt="Coverage"></a> <a href="https://github.com/ICB-DCM/parPE/actions?query=workflow%3A%22PEtab+test+suite%22"> <img src="https://github.com/ICB-DCM/parPE/workflows/PEtab%20test%20suite/badge.svg" alt="PEtab test suite"></a> <a href="https://github.com/ICB-DCM/parPE/actions?query=workflow%3A%22Deploy+to+dockerhub%22"> <img src="https://github.com/ICB-DCM/parPE/workflows/Deploy%20to%20dockerhub/badge.svg" alt="Deploy to dockerhub"></a> <a href="https://doi.org/10.5281/zenodo.3478612"> <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3478612.svg" alt="DOI"></a>

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:

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:

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-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/:

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

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: