Skip to content

Commit

Permalink
Release 0.4.10
Browse files Browse the repository at this point in the history
Merge pull request #382 from ICB-DCM/develop
  • Loading branch information
dweindl authored Dec 13, 2023
2 parents a38bad5 + c33dc58 commit c64595b
Show file tree
Hide file tree
Showing 1,139 changed files with 71,876 additions and 72,401 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/benchmark_models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ jobs:
name: benchmark models
steps:
- uses: actions/checkout@master
- name: chown checkout directory
# https://github.com/actions/runner/issues/2033
run: chown -R $(id -u):$(id -g) $PWD

- run: echo "PARPE_BASE=$(pwd)" >> $GITHUB_ENV
- run: echo "PARPE_BUILD=${PARPE_BASE}/build" >> $GITHUB_ENV
Expand Down Expand Up @@ -68,6 +71,6 @@ jobs:
- name: Benchmark models --- tests
run: |
cd $PARPE_BASE/benchmark_collection \
&& AMICI_PARALLEL_COMPILE=4 \
&& AMICI_PARALLEL_COMPILE="" \
BENCHMARK_COLLECTION="$(pwd)/Benchmark-Models-PEtab/Benchmark-Models/" \
$PARPE_BASE/misc/run_in_venv.sh $PARPE_BASE/build/venv ./all.sh
2 changes: 1 addition & 1 deletion .github/workflows/deploy_dockerhub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
- uses: actions/checkout@master
- run: git archive -v -o container/charliecloud/parpe_base/parpe.tar.gz --format=tar.gz HEAD
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@2.8
uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: dweindl/parpe
username: ${{ secrets.DOCKER_USERNAME }}
Expand Down
24 changes: 19 additions & 5 deletions .github/workflows/parpe_tests.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
# https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables
name: parPE tests
on: [push, pull_request, workflow_dispatch]
on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: '48 4 * * *'

jobs:
container:
runs-on: ubuntu-latest
Expand All @@ -15,14 +21,17 @@ jobs:

steps:
- uses: actions/checkout@master
- name: chown checkout directory
# https://github.com/actions/runner/issues/2033
run: chown -R $(id -u):$(id -g) $PWD
- run: git fetch --prune --unshallow

- run: echo "PARPE_BASE=$(pwd)" >> $GITHUB_ENV
- run: echo "PARPE_BUILD=${PARPE_BASE}/build" >> $GITHUB_ENV
- run: echo "AMICI_PATH=${PARPE_BASE}/deps/AMICI/" >> $GITHUB_ENV

# sonar cloud
- run: echo "SONAR_SCANNER_VERSION=4.6.1.2450" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_VERSION=5.0.1.3006" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_HOME=/root/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_OPTS=-server" >> $GITHUB_ENV
- run: echo "${SONAR_SCANNER_HOME}/bin" >> $GITHUB_PATH
Expand Down Expand Up @@ -51,7 +60,8 @@ jobs:
- name: Install parPE Python deps
run: |
pip install -r ${PARPE_BASE}/python/requirements.txt
pip install -r ${PARPE_BASE}/python/requirements.txt \
&& sudo apt install lcov
- name: "Install parPE deps: fides"
run: |
Expand Down Expand Up @@ -97,22 +107,26 @@ jobs:
- name: Cache sonar files
id: cache-sonar
uses: actions/cache@v1
uses: actions/cache@v3
with:
path: sonar_cache
key: ${{ runner.os }}-sonar_cache

- name: Run sonar-scanner
if: ${{ env.SONAR_TOKEN != '' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
sonar-scanner \
-Dsonar.cfamily.build-wrapper-output=bw-output \
-Dsonar.projectVersion="$(git describe --abbrev=4 --dirty=-dirty --always --tags | tr -d '\n')"
- name: Run example notebooks
run: |
misc/run_notebook.sh examples/parpeamici/steadystate/parpeExampleSteadystateBasic.ipynb examples/parpeamici/steadystate/parpeExampleSteadystateHierarchical.ipynb
misc/run_notebook.sh \
examples/parpeamici/steadystate/parpeExampleSteadystateBasic.ipynb \
examples/parpeamici/steadystate/parpeExampleSteadystateHierarchical.ipynb
- name: Run valgrind
run: |
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/petab_testsuite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ jobs:
name: PEtab test suite
steps:
- uses: actions/checkout@master
- name: chown checkout directory
# https://github.com/actions/runner/issues/2033
run: chown -R $(id -u):$(id -g) $PWD

- run: echo "PARPE_BASE=$(pwd)" >> $GITHUB_ENV
- run: echo "PARPE_BUILD=${PARPE_BASE}/build" >> $GITHUB_ENV
Expand Down Expand Up @@ -63,7 +66,7 @@ jobs:
PETAB_TEST_URL: https://github.com/PEtab-dev/petab_test_suite.git
run: |
cd $PARPE_BASE/ \
&& git clone --depth 1 --branch develop $PETAB_TEST_URL \
&& git clone --depth 1 --branch main $PETAB_TEST_URL \
&& $PARPE_BASE/misc/run_in_venv.sh $PARPE_BASE/build/venv \
pip3 install -e petab_test_suite
Expand Down
9 changes: 6 additions & 3 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,12 @@ sphinx:
# - pdf

python:
version: 3.8
install:
- requirements: doc/requirements_doc.txt

build:
image: latest
os: "ubuntu-22.04"
# apt_packages:
# - libatlas-base-dev
# - swig
tools:
python: "3.11"
58 changes: 58 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# 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"
18 changes: 5 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.13) # pkg_search_module GLOBAL
cmake_policy(VERSION 3.13)
cmake_minimum_required(VERSION 3.15) # pkg_search_module GLOBAL
cmake_policy(VERSION 3.15...3.28)

if(POLICY CMP0074)
# Use package_ROOT environment variables
Expand All @@ -17,11 +17,8 @@ include(BuildType) # Ensure CMAKE_BUILD_TYPE is always set
include(CTest)

set(CMAKE_DEBUG_POSTFIX "-dbg")
# -D_GNU_SOURCE for pthread recursive mutex
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
-std=c99 -Wall -Wno-unused-function -D_GNU_SOURCE")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
-Wall -Wno-unused-function -D_GNU_SOURCE")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wno-unused-function")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-function")

if(BUILD_PYTHON_MODULE)
# Build PIC code to be used for swig/python module
Expand Down Expand Up @@ -86,11 +83,6 @@ if(${PARPE_ENABLE_DLIB})
CACHE PATH "DLIB base directory")
endif(${PARPE_ENABLE_DLIB})

# PThreads
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)


# HDF5
#set(HDF5_PREFER_PARALLEL TRUE)
find_package(HDF5 COMPONENTS CXX C HL REQUIRED)
Expand Down Expand Up @@ -207,7 +199,7 @@ endif()
if(BUILD_PYTHON_MODULE AND CMAKE_BUILD_TYPE MATCHES Debug)
# Only build swig/python module when we are in debug mode
# This requires PIC, but we don't want PIC for release build at the moment
add_subdirectory(python/swig)
add_subdirectory(swig)
endif()


Expand Down
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,9 @@ described in [doc/petab_model_import.md](doc/petab_model_import.md).

For full functionality, parPE requires the following libraries:

* CMAKE (>=3.10)
* CMAKE (>=3.15)
* MPI ([OpenMPI](https://www.open-mpi.org/),
[MPICH](https://www.mpich.org/), ...)
* PTHREADS
* IPOPT (>= 1.2.7) (requires coinhsl)
* CERES (>=1.13)
([requires Eigen](http://ceres-solver.org/installation.html#dependencies))
Expand All @@ -61,7 +60,7 @@ For full functionality, parPE requires the following libraries:
* [AMICI](https://github.com/AMICI-dev/AMICI) (included in this repository)
(uses SuiteSparse, Sundials)
* C++17 compiler
* Python >= 3.7, including header files
* Python >= 3.9, including header files

On Debian-based systems, dependencies can be installed via:
```shell
Expand All @@ -73,6 +72,7 @@ sudo apt-get install \
curl \
gfortran \
libblas-dev \
libboost-chrono-dev \
libboost-serialization-dev \
libboost-thread-dev \
libceres-dev \
Expand Down Expand Up @@ -121,7 +121,7 @@ can be found on [dockerhub](https://hub.docker.com/r/dweindl/parpe/).

Some high-level documentation is available at
[https://parpe.readthedocs.io/en/latest/](https://parpe.readthedocs.io/en/latest/)
and among [Github issues](https://github.com/ICB-DCM/parPE/issues). No extensive
and among [GitHub issues](https://github.com/ICB-DCM/parPE/issues). No extensive
full-text documentation is available for the C++ interface yet. For usage of
the C++ interface see [`examples/`](examples/) and `*/tests`.

Expand All @@ -141,6 +141,11 @@ parPE is being used or has been used in the following projects:
(2022). [doi:10.1038/s41467-021-27374-6](https://doi.org/10.1038/s41467-021-27374-6)
(preprint: [doi:10.1101/859884](https://doi.org/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](https://doi.org/10.1101/2023.05.04.539349)

- [CanPathPro](http://canpathpro.eu/)


Expand Down
12 changes: 8 additions & 4 deletions container/charliecloud/parpe_base/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
FROM ubuntu:20.04
FROM ubuntu:22.04

COPY . /u18
COPY . /container-files

RUN /u18/install.sh && rm -rf /tmp && mkdir /tmp
RUN /container-files/install.sh && rm -rf /tmp && mkdir /tmp

ENV BASH_ENV "/etc/drydock/.env"
ENV CC clang
ENV CXX clang++
ENV OMPI_CC clang
ENV OMPI_CXX clang++

RUN /u18/install_parpe.sh
RUN /container-files/install_parpe.sh

ENV PARPE_DIR "/parPE"

Expand Down
8 changes: 5 additions & 3 deletions container/charliecloud/parpe_base/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ locale-gen en_US en_US.UTF-8
dpkg-reconfigure locales

echo "HOME=$HOME"
cd /u18

echo "================= parPE requirements ============"
# using openmpi coming with libboost-all-dev instead of libmpich-dev
apt-get install -q -y \
clang \
cmake \
curl \
coinor-libipopt-dev \
Expand All @@ -28,16 +28,18 @@ apt-get install -q -y \
libboost-all-dev \
libceres-dev \
libhdf5-dev \
libomp-dev \
nano \
python3-dev \
python3-numpy \
python3-pip \
python3-venv \
libspdlog-dev \
swig3.0 \
swig \
unzip \
wget

# for setuptools to find:
ln -s /usr/bin/swig3.0 /usr/bin/swig
python3 -m pip install --upgrade pip
pip3 install -U setuptools pkgconfig wheel

Expand Down
8 changes: 4 additions & 4 deletions container/charliecloud/parpe_base/install_parpe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export PARPE_BASE="${PARPE_DIR:-/parPE}"

# unpack git archive
mkdir "$PARPE_BASE" && cd "$PARPE_BASE"
tar -xzf /u18/parpe.tar.gz
tar -xzf /container-files/parpe.tar.gz

# Build dependencies

Expand All @@ -18,10 +18,10 @@ cd "${AMICI_PATH}" \
&& scripts/buildSundials.sh
mkdir -p "${AMICI_PATH}/build" && cd "${AMICI_PATH}/build"
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_PYTHON=ON \
-DBUILD_TESTS=OFF \
.. && make -j12
.. && make -j

# install fides optimizer
cd "$PARPE_BASE/ThirdParty" && ./installFides.sh
Expand Down Expand Up @@ -55,7 +55,7 @@ CC=mpicc CXX=mpiCC cmake \
-DTESTS_MPIEXEC_COMMAND="$mpi_cmd" \
..

make -j12 VERBOSE=1
make -j VERBOSE=1

# MPI settings for python tests
export PARPE_TESTS_MPIEXEC="mpiexec -n 5 --oversubscribe --allow-run-as-root --mca btl_vader_single_copy_mechanism none --mca btl ^openib --mca oob_tcp_if_include lo --mca btl_tcp_if_include lo --mca orte_base_help_aggregate 0"
Expand Down
Loading

0 comments on commit c64595b

Please sign in to comment.