Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.4.10 #382

Merged
merged 17 commits into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
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: [email protected]
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