diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml
index 95005e3..8e3aa8d 100644
--- a/.github/workflows/unit-tests.yaml
+++ b/.github/workflows/unit-tests.yaml
@@ -21,7 +21,7 @@ jobs:
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
- python3 -m pip install pytest-cov openpyxl pytest-httpx pysces lmfit seaborn numexpr python-libcombine deepdiff deprecation
+ python3 -m pip install pytest-cov openpyxl pytest-httpx pysces copasi-basico lmfit seaborn numexpr python-libcombine deepdiff deprecation
pip3 install -e .
- name: Test with pytest
diff --git a/examples/KineticModellingCOPASI.ipynb b/examples/KineticModellingCOPASI.ipynb
new file mode 100644
index 0000000..8010b6f
--- /dev/null
+++ b/examples/KineticModellingCOPASI.ipynb
@@ -0,0 +1,546 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "9b9be722",
+ "metadata": {},
+ "source": [
+ "# Kinetic Modelling with COPASI\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "This notebook demonstrates how to utilize the [COPASI](https://basico.rtfd.io/) library to model kinetic data.\n",
+ "\n",
+ "We will use the [abts_reaction.json](./data/abts_reaction.json) EnzymeML document as an example, which describes the oxidation of [ABTS](https://en.wikipedia.org/wiki/ABTS) catalyzed by a [Small Laccase](https://pmc.ncbi.nlm.nih.gov/articles/PMC2280001/).\n",
+ "\n",
+ "## What is a Thin Layer?\n",
+ "\n",
+ "PyEnzyme provides interfaces to integrate with other kinetic modelling libraries, such as [PySCeS](https://pysces.sourceforge.io/), [COPASI](https://copasi.org/), and [Catalax](https://github.com/JR-1991/catalax).\n",
+ "\n",
+ "The thin layer can be understood as a tiny wrapper around the kinetic modelling library, which provides a common interface to PyEnzyme. Hence, every thin layer exposes the same methods, making it easy to switch between different kinetic modelling libraries.\n",
+ "\n",
+ "Lets explore the COPASI thin layer in more detail!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "5debd1d7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#%pip install copasi-basico"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "b70d7dd9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pyenzyme as pe\n",
+ "import matplotlib\n",
+ "\n",
+ "matplotlib.use(\"svg\")\n",
+ "\n",
+ "# Import the PySCeS thin layer\n",
+ "from pyenzyme.thinlayers import ThinLayerCopasi"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "f1d7108e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
๐ EnzymeML Document Summary\n",
+ "\n"
+ ],
+ "text/plain": [
+ "๐ \u001b[1;34mEnzymeML Document Summary\u001b[0m\n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "โญโ ๐ Document Overview โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ\n", + "โ Name: ABTS measurement โ\n", + "โ Version: 2 โ\n", + "โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ\n", + "\n", + " ๐ Component Counts \n", + "โโโโโโโโโโโโโโโโโโโณโโโโโโโโ \n", + "โ Component โ Count โ \n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโฉ \n", + "โ Vessels โ 1 โ \n", + "โ Proteins โ 2 โ \n", + "โ Complexes โ 0 โ \n", + "โ Small Molecules โ 3 โ \n", + "โ Reactions โ 2 โ \n", + "โ Measurements โ 24 โ \n", + "โ Equations โ 0 โ \n", + "โ Parameters โ 3 โ \n", + "โโโโโโโโโโโโโโโโโโโดโโโโโโโโ \n", + " ๐งฌ Species Details \n", + "โโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโ\n", + "โ Type โ ID โ Name โ Details โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ Protein โ slac โ slac โ Vessel: vessel0 โ\n", + "โ Protein โ slac_inactive โ slac_inactive โ Vessel: vessel0 โ\n", + "โ Small Molecule โ abts โ abts โ Vessel: vessel0 โ\n", + "โ Small Molecule โ buffer โ buffer โ Vessel: vessel0 โ\n", + "โ Small Molecule โ abts_radical โ abts_radical โ Vessel: vessel0 โ\n", + "โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ\n", + "\n", + " ๐งช Vessels \n", + "โโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโณโโโโโโโโโโโ\n", + "โ ID โ Name โ Volume โ Constant โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ vessel0 โ vessel0 โ 1.0 l โ โ โ\n", + "โโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโ\n", + "\n", + " โก Reactions \n", + "โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "โ ID โ Name โ Reversible โ Reaction Schema โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ reaction0 โ reaction0 โ โ โ abts โ abts_radical โ\n", + "โ reaction1 โ reaction1 โ โ โ slac โ slac_inactive โ\n", + "โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "\n", + " ๐ Measurements \n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ\n", + "โ ID โ Name โ Species Data โ Conditions โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ measurement0 โ measurement0 - A2 โ 5 โ โ โ\n", + "โ measurement1 โ measurement0 - B2 โ 5 โ โ โ\n", + "โ measurement2 โ measurement0 - C2 โ 5 โ โ โ\n", + "โ measurement3 โ measurement1 - A3 โ 5 โ โ โ\n", + "โ measurement4 โ measurement1 - B3 โ 5 โ โ โ\n", + "โ ... +19 more measurements โ โ โ โ\n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ\n", + "\n", + " ๐ข Parameters \n", + "โโโโโโโโโโณโโโโโโโโณโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโณโโโโโโโณโโโโโโโโโโโ\n", + "โ Symbol โ Name โ Value โ Initial Value โ Bounds โ Unit โ Constant โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ k_cat โ k_cat โ 1.85 โ 0.01 โ [1e-06, 2.0] โ โ โ โ โ\n", + "โ K_M โ K_M โ 20.0 โ 120.0 โ [1e-06, 150.0] โ โ โ โ โ\n", + "โ k_ie โ k_ie โ 0.001 โ 0.01 โ [1e-06, 0.05] โ โ โ โ โ\n", + "โโโโโโโโโโดโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโโโโโโ\n", + "\n" + ], + "text/plain": [ + "\u001b[34mโญโ\u001b[0m\u001b[34m ๐ Document Overview \u001b[0m\u001b[34mโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\u001b[0m\u001b[34mโโฎ\u001b[0m\n", + "\u001b[34mโ\u001b[0m \u001b[1mName:\u001b[0m ABTS measurement \u001b[34mโ\u001b[0m\n", + "\u001b[34mโ\u001b[0m \u001b[1mVersion:\u001b[0m 2 \u001b[34mโ\u001b[0m\n", + "\u001b[34mโฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ\u001b[0m\n", + "\n", + "\u001b[3m ๐ Component Counts \u001b[0m \n", + "โโโโโโโโโโโโโโโโโโโณโโโโโโโโ \n", + "โ\u001b[1;35m \u001b[0m\u001b[1;35mComponent \u001b[0m\u001b[1;35m \u001b[0mโ\u001b[1;35m \u001b[0m\u001b[1;35mCount\u001b[0m\u001b[1;35m \u001b[0mโ \n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโฉ \n", + "โ Vessels โ 1 โ \n", + "โ Proteins โ 2 โ \n", + "โ Complexes โ 0 โ \n", + "โ Small Molecules โ 3 โ \n", + "โ Reactions โ 2 โ \n", + "โ Measurements โ 24 โ \n", + "โ Equations โ 0 โ \n", + "โ Parameters โ 3 โ \n", + "โโโโโโโโโโโโโโโโโโโดโโโโโโโโ \n", + "\u001b[3m ๐งฌ Species Details \u001b[0m\n", + "โโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโ\n", + "โ\u001b[1;32m \u001b[0m\u001b[1;32mType \u001b[0m\u001b[1;32m \u001b[0mโ\u001b[1;32m \u001b[0m\u001b[1;32mID \u001b[0m\u001b[1;32m \u001b[0mโ\u001b[1;32m \u001b[0m\u001b[1;32mName \u001b[0m\u001b[1;32m \u001b[0mโ\u001b[1;32m \u001b[0m\u001b[1;32mDetails \u001b[0m\u001b[1;32m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ Protein โ\u001b[35m \u001b[0m\u001b[35mslac\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ slac โ Vessel: vessel0 โ\n", + "โ Protein โ\u001b[35m \u001b[0m\u001b[35mslac_inactive\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ slac_inactive โ Vessel: vessel0 โ\n", + "โ Small Molecule โ\u001b[35m \u001b[0m\u001b[35mabts\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ abts โ Vessel: vessel0 โ\n", + "โ Small Molecule โ\u001b[35m \u001b[0m\u001b[35mbuffer\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ buffer โ Vessel: vessel0 โ\n", + "โ Small Molecule โ\u001b[35m \u001b[0m\u001b[35mabts_radical\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ abts_radical โ Vessel: vessel0 โ\n", + "โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ\n", + "\n", + "\u001b[3m ๐งช Vessels \u001b[0m\n", + "โโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโณโโโโโโโโโโโ\n", + "โ\u001b[1;33m \u001b[0m\u001b[1;33mID \u001b[0m\u001b[1;33m \u001b[0mโ\u001b[1;33m \u001b[0m\u001b[1;33mName \u001b[0m\u001b[1;33m \u001b[0mโ\u001b[1;33m \u001b[0m\u001b[1;33mVolume\u001b[0m\u001b[1;33m \u001b[0mโ\u001b[1;33m \u001b[0m\u001b[1;33mConstant\u001b[0m\u001b[1;33m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mvessel0\u001b[0m\u001b[35m \u001b[0mโ vessel0 โ 1.0 l โ โ โ\n", + "โโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโ\n", + "\n", + "\u001b[3m โก Reactions \u001b[0m\n", + "โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "โ\u001b[1;31m \u001b[0m\u001b[1;31mID \u001b[0m\u001b[1;31m \u001b[0mโ\u001b[1;31m \u001b[0m\u001b[1;31mName \u001b[0m\u001b[1;31m \u001b[0mโ\u001b[1;31m \u001b[0m\u001b[1;31mReversible\u001b[0m\u001b[1;31m \u001b[0mโ\u001b[1;31m \u001b[0m\u001b[1;31mReaction Schema \u001b[0m\u001b[1;31m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mreaction0 \u001b[0m\u001b[35m \u001b[0mโ reaction0 โ โ โ abts โ abts_radical โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mreaction1 \u001b[0m\u001b[35m \u001b[0mโ reaction1 โ โ โ slac โ slac_inactive โ\n", + "โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "\n", + "\u001b[3m ๐ Measurements \u001b[0m\n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ\n", + "โ\u001b[1;36m \u001b[0m\u001b[1;36mID \u001b[0m\u001b[1;36m \u001b[0mโ\u001b[1;36m \u001b[0m\u001b[1;36mName \u001b[0m\u001b[1;36m \u001b[0mโ\u001b[1;36m \u001b[0m\u001b[1;36mSpecies Data\u001b[0m\u001b[1;36m \u001b[0mโ\u001b[1;36m \u001b[0m\u001b[1;36mConditions\u001b[0m\u001b[1;36m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement0 \u001b[0m\u001b[35m \u001b[0mโ measurement0 - A2 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement1 \u001b[0m\u001b[35m \u001b[0mโ measurement0 - B2 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement2 \u001b[0m\u001b[35m \u001b[0mโ measurement0 - C2 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement3 \u001b[0m\u001b[35m \u001b[0mโ measurement1 - A3 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement4 \u001b[0m\u001b[35m \u001b[0mโ measurement1 - B3 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35m... +19 more measurements\u001b[0m\u001b[35m \u001b[0mโ โ โ โ\n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ\n", + "\n", + "\u001b[3m ๐ข Parameters \u001b[0m\n", + "โโโโโโโโโโณโโโโโโโโณโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโณโโโโโโโณโโโโโโโโโโโ\n", + "โ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mSymbol\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mName \u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mValue\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mInitial Value\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mBounds \u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mUnit\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mConstant\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mk_cat \u001b[0m\u001b[35m \u001b[0mโ k_cat โ 1.85 โ 0.01 โ [1e-06, 2.0] โ โ โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mK_M \u001b[0m\u001b[35m \u001b[0mโ K_M โ 20.0 โ 120.0 โ [1e-06, 150.0] โ โ โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mk_ie \u001b[0m\u001b[35m \u001b[0mโ k_ie โ 0.001 โ 0.01 โ [1e-06, 0.05] โ โ โ โ โ\n", + "โโโโโโโโโโดโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโโโโโโ\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# First, load the EnzymeML document\n", + "enzmldoc = pe.read_enzymeml(\"./data/abts_reaction.json\")\n", + "pe.summary(enzmldoc, interactive=False)" + ] + }, + { + "cell_type": "markdown", + "id": "f902ad03", + "metadata": {}, + "source": [ + "## Thin layer workflow\n", + "\n", + "Every thin layer follows the same workflow:\n", + "\n", + "1. Initialize the thin layer with an EnzymeML document\n", + "2. Optimize the model\n", + "3. Visualize and/or write the results\n", + "\n", + "The thin layer methods expose the same methods, but the arguments can be different to allow for more flexibility. For instance, when using COPASI, we can specify the optimization method in the `optimize` method. We will use the default method, which is `Levenberg - Marquardt`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "21192bb7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \u001b[36mSBML\u001b[0m\tvalidation\t\u001b[33m\u001b[1mWARNING\u001b[0m: Parameter with id 'k_cat' should ideally have a unit defined.\n", + " \u001b[36mSBML\u001b[0m\tvalidation\t\u001b[33m\u001b[1mWARNING\u001b[0m: Parameter with id 'K_M' should ideally have a unit defined.\n", + " \u001b[36mSBML\u001b[0m\tvalidation\t\u001b[33m\u001b[1mWARNING\u001b[0m: Parameter with id 'k_ie' should ideally have a unit defined.\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'ThinLayerCopasi' object has no attribute '_convert_to_pysces_format'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[4], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# We are using a temporary directory to store the PySCeS model\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m tl_copasi \u001b[38;5;241m=\u001b[39m \u001b[43mThinLayerCopasi\u001b[49m\u001b[43m(\u001b[49m\u001b[43menzmldoc\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43menzmldoc\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# Run the optimization\u001b[39;00m\n\u001b[0;32m 5\u001b[0m tl_copasi\u001b[38;5;241m.\u001b[39moptimize()\n", + "File \u001b[1;32mC:\\Development\\PyEnzyme\\pyenzyme\\thinlayers\\basico.py:95\u001b[0m, in \u001b[0;36mThinLayerCopasi.__init__\u001b[1;34m(self, enzmldoc, model_dir, measurement_ids)\u001b[0m\n\u001b[0;32m 92\u001b[0m os\u001b[38;5;241m.\u001b[39mmakedirs(model_dir, exist_ok\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 94\u001b[0m \u001b[38;5;66;03m# Convert model to PSC\u001b[39;00m\n\u001b[1;32m---> 95\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_pysces_model\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel_dir\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mC:\\Development\\PyEnzyme\\pyenzyme\\thinlayers\\basico.py:313\u001b[0m, in \u001b[0;36mThinLayerCopasi._get_pysces_model\u001b[1;34m(self, model_dir)\u001b[0m\n\u001b[0;32m 310\u001b[0m model_dir \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prepare_model_directory(model_dir)\n\u001b[0;32m 311\u001b[0m sbmlfile_name \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_create_sbml_file(model_dir)\n\u001b[1;32m--> 313\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_convert_to_pysces_format\u001b[49m(sbmlfile_name, model_dir)\n\u001b[0;32m 314\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_load_pysces_model(sbmlfile_name, model_dir)\n\u001b[0;32m 315\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_fix_compartment_sizes()\n", + "\u001b[1;31mAttributeError\u001b[0m: 'ThinLayerCopasi' object has no attribute '_convert_to_pysces_format'" + ] + } + ], + "source": [ + "# We are using a temporary directory to store the PySCeS model\n", + "tl_copasi = ThinLayerCopasi(enzmldoc=enzmldoc)\n", + "\n", + "# Run the optimization\n", + "tl_copasi.optimize()" + ] + }, + { + "cell_type": "markdown", + "id": "43db3b0f", + "metadata": {}, + "source": [ + "## Collecting and visualizing data\n", + "\n", + "Since all thin layers expose the same interface, inherited from the `BaseThinLayer` class, we can utilize PyEnzyme's functions that accept descendants of the `BaseThinLayer` class. The `pe.plot` function is one such function, which accepts a `thinlayer` argument to integrate a fitted model and visualize the data.\n", + "\n", + "In order to export the data and write the fitted parameters back to the EnzymeML document, we can use the thin layer's `write` method, which will copy the initial document and add the fitted parameters to it. This way, we can keep the original document intact and do something different with it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4e07612", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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Fvfff7/YYfTwww/jhx9+wLXXXgsAOHToEF566aVG2e8///lPlw6jO+64A99++y1+//13rFixAsOGDXN7TY8ePbB06VL89ttvWLp0KbRaLQCguLi40epJCCGEtCftNR+KjIzE3/72N7z55pvo3Llzk+//yy+/dFu2evVqj2XHjRuH5cuXY+3atdiwYQPmzJkjrsvIyMDmzZsbrZ6EkBaMEdLApk2bxgAwAOznn39mjz/+OAsNDWUhISFsxowZzGw2s5ycHDZx4kSm0WhYZGQke/7555nNZnPZDs/z7KOPPmJDhgxhQUFBTKlUsh49erClS5e6lf3ggw/Y6NGjWXx8PFOr1UyhULBOnTqxmTNnssLCQpey2dnZ7K677mLR0dFMJpMxnU7H0tLS2H333ccOHz4slrO3ITEx0eX11113nbguOztb3KZ92XXXXce2bNnCBg0axJRKJZs2bZr42sOHD7M777yTRUVFsYCAABYTE8MeeOABdv78eZd9zJ8/X9zeBx98wBYsWMCioqJYUFAQu/POO1lpaSkrLi5m99xzD9NqtSwkJIQ98sgjzGQyub0f33//PbvhhhtYcHAwk8vlrHPnzmzBggWsqqrKa7sOHz7MZs6cySIiIphSqWRjx45lZ8+edWurp3+bN29mu3fvFp+npaUxnucZY4xdvHiRcRzHALCQkBBmtVq9fIr8U1xczAIDA8V9z5kzx2O5Y8eOiY9//fVXt/VLly51qT8hhBDiK8qHKB+63MCBA6+4vqFlZWWJ+xs6dCiLj49nAJharWZGo7FO2+jZs6e4jTVr1jRyjQkhLRF1GpEG55wkdezY0e1LdOrUqSw5Odlt+fvvv++ynXvvvdfrF/Edd9zhUnbMmDFey6alpYnJQ3V1NevcubPXss518DdJiomJYUqlUnxuT5J+/vlnplAoPO43KiqKnTlzRtyHc5LkKYZjx45lAwYMcFv+/PPPu9T1hRde8NrWa665hlksFo/t6tChg1v5oUOHurXVW5L05ptvis/vv/9+lzo5v/cHDx6s24eqjv773/+K29bpdKy8vNyv7axbt07cTr9+/Rq0joQQQtoHyocoH7pcU3cavfLKK+L+li1bxp588knx+RdffHHF11ZUVLBvv/1WfA8VCgW7cOFCo9eZENLy0OVppFHl5eXhvffewwcffACJRPi4ffbZZzCZTFi9ejUWLFggln333XfFx19//TX++9//AgC6dOmCL7/8EmvXrsWgQYMAAF999RW++uorsfwdd9yBjz76COvWrcMff/yBdevW4d577wUAHD9+HN9++y0A4MSJE8jMzAQAjBw5EuvXr8dPP/2Et956C+PGjYNCoah3my9evIi4uDisWrUKP//8M2666SZUVVVh2rRpsFgskMlkePXVV/Hrr79i7ty5Ypwee+wxj9s7e/YsXn/9dXz11VfiHEDr16/HsWPH8MEHH2DFihUeY7h37168/PLLAIDo6Gh8+OGHWL9+PcaPHw8A2LZtG/7973973GdhYSFWrlyJVatWITg4GACwfft2/PXXX4iOjsa2bdswbtw4sfzy5cuxbds2bNu2Db1793aZCDIyMtJl23q9XnycnZ19xVj66vDhw+LjHj16iJeZ+eqbb74RHzu3kxBCCPEH5UPtMx9qbvZL0ziOw6233oq//e1v4jpvl6itXLkSHMchKCgIt9xyC8xmMzp06IBvvvkGsbGxTVJvQkgL09y9VqTtcT6z9txzz4nLu3btKi7/8MMPGWPCkOugoCAGgAUHB4tlJ0+eLJZdvnw527ZtG9u2bRt7//33xeUTJkwQy587d4499NBDLDk52ePZq6eeeooxxtiJEydczvCdPn3abWi3nb2cr2fWJBIJO3HihMtrvvvuO3H9uHHjxPZs27aNJSUlMQCM4zhx6LjzmbUpU6aI2xk/fry4/IUXXvAY27KyMsYYY7NmzXJ5H+z7W7t2rbi8W7duHtv173//W1z+97//XVz+/fffe3yfLz9bNn36dHHdiy++6LLummuuEdd99tlnHmPPGGNlZWUucdq2bRvbu3ev1/KMMfbggw96PftaV++9957LGUZ7PAkhhBBfUD5E+dDl/Blp5E8+xBhjR48eFfc1ePBgxpjwOYuJiWEAmFwuZ6WlpW6vW7FihdvnJjU1lf3www91qi8hpO2RXbVXiZB6GDBggPg4NDRUfNyvXz8AwpmP0NBQVFRUoKysTFxvP/sFAE888YTHbdtvm15RUYEhQ4bgwoULXuth33ZKSgquueYabNu2DZ999hk+++wzqFQq9OzZE7fccgueeOKJep9dS0lJQZcuXVyWObfnl19+wS+//OL2OsYYTpw44TZR89ViCADh4eHi47KyMuh0Opd9vvbaa3jttdfc9nnixAmP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bO22cOFCXdvdkdgeIoC5GcHMjGFu+oVLZr4pDFrrtlIg550MxhQG4YLtochpDxkaafT444+jqqoKAPDYY4/h+uuvxx133IH8/Hy89tprHVpBIqJIFMrz5sPxaFY4yflheavPKScMX++5+JvWV3TCEcsen33apvc///zzccstt2D27NkoKirCVVddhf/5n/9BVFRUQLmtW7fivvvuw6ZNm9DQ0ID6+noMGDAAAHD06FH06tWrTe/XmvT0dO2x3W5HTU2Ntu577rkHK1euRH19PRoaGrQrcRw5cgSjR4829H5XXHEF/u///g9TpkzBhx9+qA3PPnToEJYvXx5wNZPGxkYcO9byVWTMZnOzSSz//e9/G6pTe7E9REREbeGbwuCON9dBAQLmvgzmFAZNsT0ksT10aro7jYQQSE9P146gpaenY9GiRR1eMSIiMuaM3snITIgOuGpaU8GckDscmez2kJe98847ceedd+Lw4cO49NJLMXjwYFx33XUBZe69916MGzcOH3zwAex2O2644QbtSGmPHj1w8ODBNr+fHo888ggSExOxYcMGJCQkYN68eSgsLAQA9OzZEwcOHGjxdaca9n/55Zfjqaeewr59+7Bx40ZMnToVAJCdnY2JEyfigw8+6NgN6WRsDxERkR7hMIVBU2wPnRzbQ366T08TQqBfv34Rea5+axRFgdVq5bnBOjAzY5ibfsxMP9/RLAWhnZD7RB5VYMWeUixcfwQr9pR224m4161bh7Vr18LtdiMuLg5RUVEwm83NylVVVcHhcCA6Oho//PADvvzyS+25a6+9Fk8//TS2bdsGIQR+/vlnbcRLe1VXVyMuLg5xcXHYsmUL3n33Xe25mTNn4rXXXsPKlSshhMDOnTu1I2BpaWmtNqAAoFevXhgwYABmzZqFyZMna5eJnTp1KjZs2IBPPvkEbrcbdXV1+Oqrr1BZWWl4G05Vl47A9hD5MDf9mJkxzE2/cMss1FMYhBO2hyKnPaS708hkMiE/P/+ks5JHGkVRkJycHDY7k0jAzIxhbvoxM2OmDpNHszIdgaegZTqi8eK1I4PeOFm0+RjOfvJbXP3KT5jz7npc/cpPOPvJb7Foc8tDbruyyspK3H777cjOzsaIESMwduxYXHnllc3KPfroo3j55ZeRmZmJ559/HhdddJH23JVXXolf//rXuOKKK5CZmYm7774b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SxAzMyJqD7aJJLaHOg7bRKfG9pB+bBMRBZcihBChGeNEREREREREREThqtvOaURERERERERERK1jpxERERERERERETXDTiMiIiIiIiIiImqGnUZERERERERERNQMO42IiIiIiIiIiKgZdhoREREREREREVEz7DQiIiIiIiIiIqJm2GlERERERERERETNsNOIKIzdeOONmDFjRqirQURERBQybA8REYWOJdQVIOquFEU56fMPP/wwnn32WQghglQjIiIiouBie4iIKLwpgntgopAoLCzUHr/33nuYN28eduzYoS2Li4tDXFxcKKpGREREFBRsDxERhTeenkYUIpmZmdrN4XBAUZSAZXFxcc2GY48fPx533nkn5s6di6SkJGRkZOCVV15BTU0NbrrpJsTHx6Nfv3744osvAt5r8+bNmDp1KuLi4pCRkYHrrrsOx48fD/IWExEREQVie4iIKLyx04gowvzzn/9EamoqVq1ahTvvvBN33HEHfvnLX2LcuHFYt24dJk2ahOuuuw61tbUAgIqKCkyYMAEFBQVYs2YNFi1ahKKiIvzqV78K8ZYQERERGcP2EBFRcLDTiCjCnHbaafjTn/6E/Px8PPjgg4iOjkZqaipuu+025OfnY968eSgtLcXGjRsBAM899xwKCgrw+OOPY+DAgSgoKMBrr72GJUuWYOfOnSHeGiIiIiL92B4iIgoOToRNFGGGDx+uPTabzUhJScGwYcO0ZRkZGQCA4uJiAMCGDRuwZMmSFucD2LNnD/r379/JNSYiIiLqWGwPEREFBzuNiCJMVFRUwM+KogQs812FRFVVAEB1dTWmT5+OJ598stm6srKyOrGmRERERJ2D7SEiouBgpxFRFzdy5Eh8+OGHyMvLg8XCX3kiIiLqftgeIiIyhnMaEXVxs2bNQllZGa6++mqsXr0ae/bswZdffombbroJHo8n1NUjIiIi6nRsDxERGcNOI6IuLjs7Gz/88AM8Hg8mTZqEYcOGYe7cuUhMTITJxF0AERERdX1sDxERGaMIIUSoK0FEREREREREROGF3epERERERERERNQMO42IiIiIiIiIiKgZdhoREREREREREVEz7DQiIiIiIiIiIqJm2GlERERERERERETNsNOIiIiIiIiIiIiaYacRERERERERERE1w04jIiIiIiIiIiJqhp1GRERERERERETUDDuNiIiIiIiIiIioGXYaERERERERERFRM+w0IiIiIiIiIiKiZv5/TUBvJcBBlFwAAAAASUVORK5CYII=", + "text/plain": [ + "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 120\u001b[0m\u001b[1;36m0x600\u001b[0m\u001b[39m with \u001b[0m\u001b[1;36m4\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n",
+ " EnzymeML document written to outputs\\fitted.json\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ "\n",
+ " EnzymeML document written to \u001b[1;32moutputs\\fitted.json\u001b[0m\n",
+ "\n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# And we can use the new model to visualize the data\n",
+ "f, ax = pe.plot(\n",
+ " enzmldoc,\n",
+ " thinlayer=tl_copasi,\n",
+ " show=True,\n",
+ " measurement_ids=[\n",
+ " \"measurement0\",\n",
+ " \"measurement1\",\n",
+ " \"measurement2\",\n",
+ " \"measurement3\",\n",
+ " ],\n",
+ ")\n",
+ "\n",
+ "# We can now write the fitted parameters back to the EnzymeML document\n",
+ "fitted = tl_copasi.write()\n",
+ "pe.write_enzymeml(fitted, path=\"outputs/fitted_copasi.json\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "096845ec",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "๐ EnzymeML Document Summary\n",
+ "\n"
+ ],
+ "text/plain": [
+ "๐ \u001b[1;34mEnzymeML Document Summary\u001b[0m\n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "โญโ ๐ Document Overview โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ\n", + "โ Name: ABTS measurement โ\n", + "โ Version: 2 โ\n", + "โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ\n", + "\n", + " ๐ Component Counts \n", + "โโโโโโโโโโโโโโโโโโโณโโโโโโโโ \n", + "โ Component โ Count โ \n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโฉ \n", + "โ Vessels โ 1 โ \n", + "โ Proteins โ 2 โ \n", + "โ Complexes โ 0 โ \n", + "โ Small Molecules โ 3 โ \n", + "โ Reactions โ 2 โ \n", + "โ Measurements โ 24 โ \n", + "โ Equations โ 0 โ \n", + "โ Parameters โ 3 โ \n", + "โโโโโโโโโโโโโโโโโโโดโโโโโโโโ \n", + " ๐งฌ Species Details \n", + "โโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโ\n", + "โ Type โ ID โ Name โ Details โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ Protein โ slac โ slac โ Vessel: vessel0 โ\n", + "โ Protein โ slac_inactive โ slac_inactive โ Vessel: vessel0 โ\n", + "โ Small Molecule โ abts โ abts โ Vessel: vessel0 โ\n", + "โ Small Molecule โ buffer โ buffer โ Vessel: vessel0 โ\n", + "โ Small Molecule โ abts_radical โ abts_radical โ Vessel: vessel0 โ\n", + "โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ\n", + "\n", + " ๐งช Vessels \n", + "โโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโณโโโโโโโโโโโ\n", + "โ ID โ Name โ Volume โ Constant โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ vessel0 โ vessel0 โ 1.0 l โ โ โ\n", + "โโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโ\n", + "\n", + " โก Reactions \n", + "โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "โ ID โ Name โ Reversible โ Reaction Schema โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ reaction0 โ reaction0 โ โ โ abts โ abts_radical โ\n", + "โ reaction1 โ reaction1 โ โ โ slac โ slac_inactive โ\n", + "โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "\n", + " ๐ Measurements \n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ\n", + "โ ID โ Name โ Species Data โ Conditions โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ measurement0 โ measurement0 - A2 โ 5 โ โ โ\n", + "โ measurement1 โ measurement0 - B2 โ 5 โ โ โ\n", + "โ measurement2 โ measurement0 - C2 โ 5 โ โ โ\n", + "โ measurement3 โ measurement1 - A3 โ 5 โ โ โ\n", + "โ measurement4 โ measurement1 - B3 โ 5 โ โ โ\n", + "โ ... +19 more measurements โ โ โ โ\n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ\n", + "\n", + " ๐ข Parameters \n", + "โโโโโโโโโโณโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโณโโโโโโโณโโโโโโโโโโโ\n", + "โ Symbol โ Name โ Value โ Initial Value โ Bounds โ Unit โ Constant โ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ k_cat โ k_cat โ 0.8566148829513647 โ 0.01 โ [1e-06, 2.0] โ โ โ โ โ\n", + "โ K_M โ K_M โ 82.448096549958 โ 120.0 โ [1e-06, 150.0] โ โ โ โ โ\n", + "โ k_ie โ k_ie โ 0.0012441163321251665 โ 0.01 โ [1e-06, 0.05] โ โ โ โ โ\n", + "โโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโโโโโโ\n", + "\n" + ], + "text/plain": [ + "\u001b[34mโญโ\u001b[0m\u001b[34m ๐ Document Overview \u001b[0m\u001b[34mโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\u001b[0m\u001b[34mโโฎ\u001b[0m\n", + "\u001b[34mโ\u001b[0m \u001b[1mName:\u001b[0m ABTS measurement \u001b[34mโ\u001b[0m\n", + "\u001b[34mโ\u001b[0m \u001b[1mVersion:\u001b[0m 2 \u001b[34mโ\u001b[0m\n", + "\u001b[34mโฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ\u001b[0m\n", + "\n", + "\u001b[3m ๐ Component Counts \u001b[0m \n", + "โโโโโโโโโโโโโโโโโโโณโโโโโโโโ \n", + "โ\u001b[1;35m \u001b[0m\u001b[1;35mComponent \u001b[0m\u001b[1;35m \u001b[0mโ\u001b[1;35m \u001b[0m\u001b[1;35mCount\u001b[0m\u001b[1;35m \u001b[0mโ \n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโฉ \n", + "โ Vessels โ 1 โ \n", + "โ Proteins โ 2 โ \n", + "โ Complexes โ 0 โ \n", + "โ Small Molecules โ 3 โ \n", + "โ Reactions โ 2 โ \n", + "โ Measurements โ 24 โ \n", + "โ Equations โ 0 โ \n", + "โ Parameters โ 3 โ \n", + "โโโโโโโโโโโโโโโโโโโดโโโโโโโโ \n", + "\u001b[3m ๐งฌ Species Details \u001b[0m\n", + "โโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโ\n", + "โ\u001b[1;32m \u001b[0m\u001b[1;32mType \u001b[0m\u001b[1;32m \u001b[0mโ\u001b[1;32m \u001b[0m\u001b[1;32mID \u001b[0m\u001b[1;32m \u001b[0mโ\u001b[1;32m \u001b[0m\u001b[1;32mName \u001b[0m\u001b[1;32m \u001b[0mโ\u001b[1;32m \u001b[0m\u001b[1;32mDetails \u001b[0m\u001b[1;32m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ Protein โ\u001b[35m \u001b[0m\u001b[35mslac\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ slac โ Vessel: vessel0 โ\n", + "โ Protein โ\u001b[35m \u001b[0m\u001b[35mslac_inactive\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ slac_inactive โ Vessel: vessel0 โ\n", + "โ Small Molecule โ\u001b[35m \u001b[0m\u001b[35mabts\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ abts โ Vessel: vessel0 โ\n", + "โ Small Molecule โ\u001b[35m \u001b[0m\u001b[35mbuffer\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ buffer โ Vessel: vessel0 โ\n", + "โ Small Molecule โ\u001b[35m \u001b[0m\u001b[35mabts_radical\u001b[0m\u001b[35m \u001b[0m\u001b[35m \u001b[0mโ abts_radical โ Vessel: vessel0 โ\n", + "โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ\n", + "\n", + "\u001b[3m ๐งช Vessels \u001b[0m\n", + "โโโโโโโโโโโณโโโโโโโโโโณโโโโโโโโโณโโโโโโโโโโโ\n", + "โ\u001b[1;33m \u001b[0m\u001b[1;33mID \u001b[0m\u001b[1;33m \u001b[0mโ\u001b[1;33m \u001b[0m\u001b[1;33mName \u001b[0m\u001b[1;33m \u001b[0mโ\u001b[1;33m \u001b[0m\u001b[1;33mVolume\u001b[0m\u001b[1;33m \u001b[0mโ\u001b[1;33m \u001b[0m\u001b[1;33mConstant\u001b[0m\u001b[1;33m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mvessel0\u001b[0m\u001b[35m \u001b[0mโ vessel0 โ 1.0 l โ โ โ\n", + "โโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโ\n", + "\n", + "\u001b[3m โก Reactions \u001b[0m\n", + "โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "โ\u001b[1;31m \u001b[0m\u001b[1;31mID \u001b[0m\u001b[1;31m \u001b[0mโ\u001b[1;31m \u001b[0m\u001b[1;31mName \u001b[0m\u001b[1;31m \u001b[0mโ\u001b[1;31m \u001b[0m\u001b[1;31mReversible\u001b[0m\u001b[1;31m \u001b[0mโ\u001b[1;31m \u001b[0m\u001b[1;31mReaction Schema \u001b[0m\u001b[1;31m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mreaction0 \u001b[0m\u001b[35m \u001b[0mโ reaction0 โ โ โ abts โ abts_radical โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mreaction1 \u001b[0m\u001b[35m \u001b[0mโ reaction1 โ โ โ slac โ slac_inactive โ\n", + "โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n", + "\n", + "\u001b[3m ๐ Measurements \u001b[0m\n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ\n", + "โ\u001b[1;36m \u001b[0m\u001b[1;36mID \u001b[0m\u001b[1;36m \u001b[0mโ\u001b[1;36m \u001b[0m\u001b[1;36mName \u001b[0m\u001b[1;36m \u001b[0mโ\u001b[1;36m \u001b[0m\u001b[1;36mSpecies Data\u001b[0m\u001b[1;36m \u001b[0mโ\u001b[1;36m \u001b[0m\u001b[1;36mConditions\u001b[0m\u001b[1;36m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement0 \u001b[0m\u001b[35m \u001b[0mโ measurement0 - A2 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement1 \u001b[0m\u001b[35m \u001b[0mโ measurement0 - B2 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement2 \u001b[0m\u001b[35m \u001b[0mโ measurement0 - C2 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement3 \u001b[0m\u001b[35m \u001b[0mโ measurement1 - A3 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mmeasurement4 \u001b[0m\u001b[35m \u001b[0mโ measurement1 - B3 โ 5 โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35m... +19 more measurements\u001b[0m\u001b[35m \u001b[0mโ โ โ โ\n", + "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ\n", + "\n", + "\u001b[3m ๐ข Parameters \u001b[0m\n", + "โโโโโโโโโโณโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโณโโโโโโโณโโโโโโโโโโโ\n", + "โ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mSymbol\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mName \u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mValue \u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mInitial Value\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mBounds \u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mUnit\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\u001b[1;38;5;129m \u001b[0m\u001b[1;38;5;129mConstant\u001b[0m\u001b[1;38;5;129m \u001b[0mโ\n", + "โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ\n", + "โ\u001b[35m \u001b[0m\u001b[35mk_cat \u001b[0m\u001b[35m \u001b[0mโ k_cat โ 0.8566148829513647 โ 0.01 โ [1e-06, 2.0] โ โ โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mK_M \u001b[0m\u001b[35m \u001b[0mโ K_M โ 82.448096549958 โ 120.0 โ [1e-06, 150.0] โ โ โ โ โ\n", + "โ\u001b[35m \u001b[0m\u001b[35mk_ie \u001b[0m\u001b[35m \u001b[0mโ k_ie โ 0.0012441163321251665 โ 0.01 โ [1e-06, 0.05] โ โ โ โ โ\n", + "โโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโโโโโโ\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Due to GitHub's rendering we need to disable the interactive summary\n", + "# but locally you can enable it by setting `interactive=True` to make\n", + "# use of the interactive widgets.\n", + "pe.summary(fitted, interactive=False)" + ] + }, + { + "cell_type": "markdown", + "id": "3881b55b", + "metadata": {}, + "source": [ + "## I want to write my own thin layer!\n", + "\n", + "In order to write your own thin layer, you need to implement the `BaseThinLayer` class. This class provides a common interface to PyEnzyme, which allows you to use the same functions and methods as the built-in thin layers. Once implemented, you can plug it into PyEnzyme's functions and methods.\n", + "\n", + "Your thin layer is something PyEnzyme needs? Feel free to open a pull request!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "env-pyenzyme", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pyenzyme/sbml/omex.py b/pyenzyme/sbml/omex.py index 636231d..7d32f01 100644 --- a/pyenzyme/sbml/omex.py +++ b/pyenzyme/sbml/omex.py @@ -184,4 +184,7 @@ def read_sbml_omex(path: Path | str) -> tuple[TextIO, dict[str, pd.DataFrame]]: meas_data[entry.location] = df - return open(omex.get_path(master_file.location)), meas_data + return open( + omex.get_path(master_file.location), + encoding="utf-8", + ), meas_data diff --git a/pyenzyme/thinlayers/__init__.py b/pyenzyme/thinlayers/__init__.py index e330290..190b986 100644 --- a/pyenzyme/thinlayers/__init__.py +++ b/pyenzyme/thinlayers/__init__.py @@ -5,4 +5,9 @@ except ImportError: pass -__all__ = ["BaseThinLayer", "ThinLayerPysces"] +try: + from .basico import ThinLayerCopasi +except ImportError: + pass + +__all__ = ["BaseThinLayer", "ThinLayerPysces", "ThinLayerCopasi"] diff --git a/pyenzyme/thinlayers/basico.py b/pyenzyme/thinlayers/basico.py new file mode 100644 index 0000000..c921523 --- /dev/null +++ b/pyenzyme/thinlayers/basico.py @@ -0,0 +1,468 @@ +# File: pysces.py +# Project: ThinLayers +# Authors: Frank T. Bergmann (frankbergmann@live.com), Jan Range (jan.range@simtech.uni-stuttgart.de) +# License: BSD-2 clause +# Copyright (c) 2025 Heidelberg University, University of Stuttgart + +from __future__ import annotations + +from dataclasses import dataclass +from pathlib import Path +import numpy as np +import pandas as pd +import os + +from typing import Dict, List, Optional, Tuple + +from pyenzyme.thinlayers.base import BaseThinLayer, SimResult, Time, InitCondDict +from pyenzyme.versions import v2 + +try: + import basico + import COPASI +except ModuleNotFoundError as e: + raise ModuleNotFoundError( + "ThinLayerCopasi is not available. " + "To use it, please install the following dependencies: " + f"{e}" + ) + + +class ThinLayerCopasi(BaseThinLayer): + """ + COPASI implementation of the BaseThinLayer for kinetic modeling. + + This class provides integration with the COPASI (COmplex PAthway SImulator) + for simulating and optimizing kinetic models from EnzymeML documents. + + Attributes: + model (basico.COPASI.CDataModel): The COPASI model instance. + model_dir (Path | str): Directory for storing model files. + inits (list[InitMap]): Initial conditions for each measurement. + cols (list[str]): Column names for the experimental data. + parameters (list[dict[str, float]]): Optimizable parameters for the model. + """ + + model: basico.COPASI.CDataModel + model_dir: Path | str + inits: dict[str, InitMap] + cols: list[str] + parameters: list + nu_enzmldoc: v2.EnzymeMLDocument + + def __init__( + self, + enzmldoc: v2.EnzymeMLDocument, + model_dir: Path | str = "./copasi_models", + measurement_ids: Optional[List[str]] = None, + ): + """ + Initialize the ThinLayerCopasi instance. + + Args: + enzmldoc (v2.EnzymeMLDocument): EnzymeML document containing the model. + model_dir (Path | str): Directory where COPASI model files will be stored. + measurement_ids (Optional[List[str]]): IDs of measurements to include in the analysis. + If None, all measurements will be used. + + Examples: + >>> import pyenzyme as pe + >>> import pyenzyme.thinlayers as tls + >>> doc = pe.read_enzymeml("path/to/enzmldoc.json") + >>> tl = tls.ThinLayerCopasi(doc) + """ + + # not sure this is needed, everything ought to be supported + self._check_compliance(enzmldoc) + + super().__init__( + enzmldoc=enzmldoc, + measurement_ids=measurement_ids, + df_per_measurement=False, + ) + + if not isinstance(model_dir, Path): + model_dir = Path(model_dir) + + if not model_dir.exists(): + # Create model directory if it doesn't exist + os.makedirs(model_dir, exist_ok=True) + + self.model_dir = model_dir + + # load the model into COPASI + self._get_copasi_model(model_dir) + + def _check_compliance(self, enzmldoc: v2.EnzymeMLDocument): + """ + Check if the EnzymeML document is compliant with COPASI model. + """ + has_kinetic_laws = any(m.kinetic_law is not None for m in enzmldoc.reactions) + + has_odes = any( + m.equation_type == v2.EquationType.ODE for m in enzmldoc.equations + ) + + if not has_kinetic_laws and not has_odes: + raise ValueError("EnzymeML document must contain kinetic laws or ODEs") + + def integrate( + self, + model: v2.EnzymeMLDocument, + initial_conditions: InitCondDict, + t0: float, + t1: float, + nsteps: int = 100, + ) -> Tuple[SimResult, Time]: + """ + Integrates the model from t0 to t1 with the given initial conditions. + + This method simulates the model dynamics within the specified time range + and returns trajectories for all species. + + Args: + model (v2.EnzymeMLDocument): EnzymeML document containing the model. + initial_conditions (InitCondDict): Dictionary mapping species IDs to initial concentrations. + t0 (float): Start time for integration. + t1 (float): End time for integration. + nsteps (int, optional): Number of time points to generate. Defaults to 100. + + Returns: + Tuple[SimResult, Time]: A tuple containing: + - Dict mapping species IDs to concentration trajectories. + - List of time points. + + Raises: + ValueError: If the provided model is different from the one used for initialization. + + Examples: + >>> # Get initial conditions from a measurement + >>> initial_conditions = { + ... s.species_id: s.initial for s in measurement.species_data + ... if s.initial is not None + ... } + >>> # Simulate from time 0 to 10 + >>> results, time = tl.integrate(doc, initial_conditions, 0, 10) + """ + if model != self.enzmldoc: + raise ValueError( + "Model must be the same as the one used to initialize the ThinLayerCopasi. Otherwise, rerun the Thin Layer optimization with the new model." + ) + + # Convert the initial conditions to a InitMap + time = np.linspace(t0, t1, nsteps).tolist() + init_map = InitMap( + time=time, + species=initial_conditions, + ) + + out, species_order = self._simulate_condition(init_map) + + return ( + {species: traj.tolist() for species, traj in zip(species_order, out)}, + time, + ) + + def optimize(self, method="Levenberg - Marquardt"): + """ + Optimizes model parameters to fit experimental data. + + This method performs parameter estimation to minimize the difference + between simulated and experimental data. + + Args: + method (str, optional): Optimization algorithm to use from COPASI. Defaults to "Levenberg - Marquard". + Available methods include: + - 'Levenberg - Marquardt': Levenberg-Marquardt (default) + - 'Hooke & Jeeves': Hooke & Jeeves + - 'Nelder - Mead': Nelder-Mead + - 'Steepest Descent': Steepest Descent + - 'NL2SOL': NL2SOL + - 'Praxis': Praxis + - 'Current Solution Statistics': just return the current solution + - 'Particle Swarm': Particle Swarm Optimization + - 'Evolution Strategy (SRES)': Evolution Strategy with Stochastic Ranking + - 'Genetic Algorithm SR': Genetic Algorithm with Stochastic Ranking + - 'Evolutionary Programming': Evolutionary Programming + - 'Genetic Algorithm': Genetic Algorithm + - 'Scatter Search': Scatter Search + - 'Differential Evolution': Differential Evolution + - 'Simulated Annealing': Simulated Annealing + - 'Random Search': Random Search + + Returns: + {}: Result of the optimization. + + Examples: + >>> # Optimize model parameters + >>> tl = ThinLayerCopasi(doc, ".") + >>> result = tl.optimize() + >>> print(f"Optimization success: {result.success}") + """ + # Get experimental data from the EnzymeML document + self._get_experimental_data() + + # Initialize the model parameters + parameters = self._initialize_parameters() + basico.set_fit_parameters(parameters, model=self.model) + + # Perform optimization + basico.run_parameter_estimation(method=method, update_model=True, model=self.model) + return basico.get_fit_statistic(include_parameters=True, model=self.model) + + def write(self) -> v2.EnzymeMLDocument: + """ + Creates a new EnzymeML document with optimized parameter values. + + This method updates parameter values in a copy of the original EnzymeML document + based on optimization results. + + Returns: + v2.EnzymeMLDocument: A new EnzymeML document with optimized parameters. + + Raises: + ValueError: If a parameter in the optimization results is not found in the document. + + Examples: + >>> # Optimize and save optimized document + >>> tl = ThinLayerCopasi(doc) + >>> tl.optimize() + >>> optimized_doc = tl.write() + >>> pe.write_enzymeml(optimized_doc, "optimized_model.json") + """ + nu_enzmldoc = self.enzmldoc.model_copy(deep=True) + results = basico.get_fit_statistic(include_parameters=True) # type: ignore + + # update the parameters in the enzmldoc + for parameter in nu_enzmldoc.parameters: + for fitted_param in results['parameters']: + if fitted_param['name'] == f'Values[{parameter.symbol}].InitialValue': + parameter.value = fitted_param['value'] + break + return nu_enzmldoc + + # ! Helper methods + def _initialize_parameters(self): + """ + Initializes Parameters instance with model parameters. + + Returns: + list[dict[str, float]]: Parameters object ready for optimization. + + Raises: + ValueError: If a parameter has neither an initial value nor a value attribute. + """ + # Initialize parameters + parameters = [] + + # Add global parameters + for param in self.enzmldoc.parameters: + # Build kwargs dictionary with conditional assignments + param_dict = {} + + if param.lower_bound is not None: + param_dict["lower"] = param.lower_bound + + if param.upper_bound is not None: + param_dict["upper"] = param.upper_bound + + # Determine parameter value + if param.value: + param_dict["start"] = param.value + elif param.initial_value: + param_dict["start"] = param.initial_value + else: + raise ValueError( + f"Neither initial_value nor value given for parameter {param.name} in global parameters" + ) + + param_dict["name"] = 'Values[' + param.symbol + ']' + parameters.append(param_dict) + + return parameters + + def _get_experimental_data(self): + """ + Extracts measurement data from the EnzymeML document. + + Populates the inits, experimental_data, and cols attributes. + """ + self.inits = { + measurement.id: InitMap.from_measurement(measurement, self.df_map[measurement.id]) + for measurement in self.enzmldoc.measurements + if measurement.id in self.measurement_ids + } + + # get all species + species_df = basico.get_species(model=self.model).reset_index() + + # loop over 'id' colum of self.df and create a new experiment for each id + for id in self.df['id'].unique(): + # get the dataframe for the id + df = self.df[self.df['id'] == id] + # drop id column + df = df.drop(columns=["id"]) + # initializations + inits = self.inits[id] + + # loop over remaining columns + for col in df.columns: + # if col is 'time' rename to Time and continue + if col == 'time': + df = df.rename(columns={"time": "Time"}) + continue + # otherwise find in species_df and rename to '[col]' + if col in species_df['name'].values: + df = df.rename(columns={col: f"[{col}]"}) + continue + # otherwise raise error + else: + raise ValueError(f"Column {col} not found in species_df") + + # finally add all the initial concentrations to the dataframe with the + # initial value at Time == 0 + for species in inits.species.keys(): + df.loc[df.index[0], f"[{species}]_0"] = inits.species[species] + + # now add as experiment to basico + basico.add_experiment(name=id, data=df, data_dir=self.model_dir) + + def _get_copasi_model(self, model_dir: Path | str): + """ + Converts an EnzymeML document to a COPASI model. + + Args: + model_dir (Path | str): Directory for storing model files. + """ + model_dir = self._prepare_model_directory(model_dir) + sbmlfile_name = self._create_sbml_file(model_dir) + + self._load_copasi_model(sbmlfile_name, model_dir) + # TODO: check whether this is really needed!!! + #self._fix_compartment_sizes() + + def _load_copasi_model(self, sbmlfile_name: str, model_dir: Path | str): + """ + Loads a COPASI model from an SBML file. + """ + self.model = basico.load_model(os.path.join(model_dir, sbmlfile_name)) + + def _prepare_model_directory(self, model_dir: Path | str) -> str: + """ + Ensures the model directory exists and returns it as a string. + + Args: + model_dir (Path | str): Directory path for model files. + + Returns: + str: Path to the model directory as a string. + """ + model_dir = str(model_dir) + os.makedirs(model_dir, exist_ok=True) + + return model_dir + + def _create_sbml_file(self, model_dir: str) -> str: + """ + Creates an SBML file from the EnzymeML document. + + Args: + model_dir (str): Directory to save the SBML file. + + Returns: + str: Name of the created SBML file. + """ + sbmlfile_name = f"{self.enzmldoc.name.replace(' ', '_')}.xml" + sbmlfile_path = os.path.join(model_dir, sbmlfile_name) + + with open(sbmlfile_path, "w") as file: + file.write(self.sbml_xml) + + return sbmlfile_name + + def _simulate_condition( + self, init_concs: InitMap + ) -> Tuple[List[np.ndarray], List[str]]: + """ + Simulates a single experimental condition. + + Args: + init_concs (InitMap): Initial concentrations for the simulation. + + Returns: + Tuple[List[np.ndarray], List[str]]: + - List of arrays containing trajectory data for each species + - List of species IDs + """ + + # apply initial conditions to model + init_concs.to_copasi_model(self.model) + result = basico.run_time_course_with_output(output_selection=[f'[{species}]' for species in init_concs.species.keys()], values=init_concs.time, model=self.model) + + # result is a pandas dataframe with the columns as the species and the rows as the time points + # enzymeml needs it separated by columns and converted to np.ndarray + # build a tuple of the result and the species + data = [] + ids = [] + for species in init_concs.species.keys(): + data.append(result[f'[{species}]'].values) + ids.append(species) + return (data, ids) + + +@dataclass +class InitMap: + """ + Helper class for managing species initial concentrations. + + This class provides type-safe handling of initial concentrations and + time points for COPASI model simulations. + + Attributes: + time (List[float]): List of time points for simulation. + species (Dict[str, float]): Dictionary mapping species IDs to initial concentrations. + """ + + time: List[float] + species: Dict[str, float] + + @classmethod + def from_measurement(cls, meas: v2.Measurement, df: pd.DataFrame) -> "InitMap": + """ + Create an InitMap instance from a measurement and its dataframe. + + Args: + meas (v2.Measurement): The measurement containing species data. + df (pd.DataFrame): DataFrame with time data for the measurement. + + Returns: + InitMap: Initialized instance with time points and species initial values. + """ + return cls( + time=df["time"].tolist(), + species={ + s.species_id: s.initial + for s in meas.species_data + if s.initial is not None + }, + ) + + def to_copasi_model(self, model: COPASI.CDataModel): + """ + Apply initial conditions to a COPASI model. + + This method sets the simulation time and initial species concentrations + in the COPASI model, ensuring zero values are replaced with small positive values. + + Args: + model (COPASI.CDataModel): The COPASI model to update. + + Returns: + COPASI.CDataModel: The updated model with initial conditions set. + """ + + for species_id, value in self.species.items(): + # seems odd to be doing this here, but it is the same for the PySCeS thin layer + if value == 0: + value = 1.0e-9 # is this really needed? + basico.set_species(species_id, exact=True, initial_concentration=value, model=model) diff --git a/pyenzyme/v1/thinlayers/TL_Copasi.py b/pyenzyme/v1/thinlayers/TL_Copasi.py index 22718fb..badb47a 100644 --- a/pyenzyme/v1/thinlayers/TL_Copasi.py +++ b/pyenzyme/v1/thinlayers/TL_Copasi.py @@ -178,11 +178,11 @@ def _import_experiments(self): # validate value if k in data.columns: initial_value = data[data["time"] == 0.0][k] - if not initial_value.empty and float(initial_value) != v[0]: + if not initial_value.empty and float(initial_value.iloc[0]) != v[0]: log.warning( f'The initial value of "{k}" in experiment "{measurement_id}" ' f"is inconsistent with the specified initial concentration: " - f"{float(initial_value)} != {v[0]}" + f"{float(initial_value.iloc[0])} != {v[0]}" ) exp_filename = os.path.abspath( @@ -218,10 +218,10 @@ def _import_experiments(self): obj_map.setRole(i, role) obj_map.setObjectCN( i, - self.sbml_id_map[col] + COPASI.CRegisteredCommonName(self.sbml_id_map[col] .getConcentrationReference() .getCN() - .getString(), + .getString()), ) elif col.startswith("init_") and col[5:] in self.sbml_id_map.keys(): @@ -229,10 +229,10 @@ def _import_experiments(self): obj_map.setRole(i, role) obj_map.setObjectCN( i, - self.sbml_id_map[col[5:]] + COPASI.CRegisteredCommonName(self.sbml_id_map[col[5:]] .getInitialConcentrationReference() .getCN() - .getString(), + .getString()), ) else: @@ -298,9 +298,9 @@ def set_fit_parameters(self, fit_parameters): fit_item = self.problem.addFitItem(cn) assert isinstance(fit_item, COPASI.CFitItem) if "lower" in item: - fit_item.setLowerBound(COPASI.CCommonName(str(item["lower"]))) + fit_item.setLowerBound(COPASI.CRegisteredCommonName(str(item["lower"]))) if "upper" in item: - fit_item.setUpperBound(COPASI.CCommonName(str(item["upper"]))) + fit_item.setUpperBound(COPASI.CRegisteredCommonName(str(item["upper"]))) if "start" in item: fit_item.setStartValue(float(item["start"])) @@ -399,8 +399,8 @@ def _set_default_items(self): cn = obj.getCN() fit_item = self.problem.addFitItem(cn) assert isinstance(fit_item, COPASI.CFitItem) - fit_item.setLowerBound(COPASI.CCommonName(str(1e-6))) - fit_item.setUpperBound(COPASI.CCommonName(str(1e6))) + fit_item.setLowerBound(COPASI.CRegisteredCommonName(str(1e-6))) + fit_item.setUpperBound(COPASI.CRegisteredCommonName(str(1e6))) fit_item.setStartValue(float(p.value)) def _set_default_items_from_init_file(self): @@ -439,8 +439,8 @@ def _set_default_items_from_init_file(self): cn = mv.getInitialValueReference().getCN() fit_item = self.problem.addFitItem(cn) assert isinstance(fit_item, COPASI.CFitItem) - fit_item.setLowerBound(COPASI.CCommonName(str(global_param.lower))) - fit_item.setUpperBound(COPASI.CCommonName(str(global_param.upper))) + fit_item.setLowerBound(COPASI.CRegisteredCommonName(str(global_param.lower))) + fit_item.setUpperBound(COPASI.CRegisteredCommonName(str(global_param.upper))) fit_item.setStartValue(float(value)) for reaction_id, (model, _) in self.reaction_data.items(): @@ -467,8 +467,8 @@ def _set_default_items_from_init_file(self): cn = obj.getCN() fit_item = self.problem.addFitItem(cn) assert isinstance(fit_item, COPASI.CFitItem) - fit_item.setLowerBound(COPASI.CCommonName(str(p.lower))) - fit_item.setUpperBound(COPASI.CCommonName(str(p.upper))) + fit_item.setLowerBound(COPASI.CRegisteredCommonName(str(p.lower))) + fit_item.setUpperBound(COPASI.CRegisteredCommonName(str(p.upper))) fit_item.setStartValue(float(value)) diff --git a/tests/integration/test_basico.py b/tests/integration/test_basico.py new file mode 100644 index 0000000..f6c83aa --- /dev/null +++ b/tests/integration/test_basico.py @@ -0,0 +1,105 @@ +import tempfile + +import pytest +import pyenzyme as pe +from pyenzyme.thinlayers.basico import ThinLayerCopasi +from pyenzyme.versions import v2 + + +class TestCopasiThinLayer: + def test_optimize(self): + doc = pe.read_enzymeml("tests/fixtures/modeling/enzmldoc_reaction.json") + + with tempfile.TemporaryDirectory() as tmp_dir: + layer = ThinLayerCopasi(doc, tmp_dir) + layer.optimize() + + opt_doc = layer.write() + + k_cat = self._extract_parameter(opt_doc, "k_cat") + k_ie = self._extract_parameter(opt_doc, "k_ie") + K_M = self._extract_parameter(opt_doc, "K_M") + + # Check if values are positive using a small epsilon + expected_km = 82.0 + expected_kcat = 0.85 + expected_kie = 0.0012 + + assert k_cat.value is not None, "k_cat is not set" + assert k_ie.value is not None, "k_ie is not set" + assert K_M.value is not None, "K_M is not set" + + assert expected_kcat * 0.95 < k_cat.value < expected_kcat * 1.1, ( + f"k_cat is not correct, got {k_cat.value} expected {expected_kcat}" + ) + assert expected_kie * 0.75 < k_ie.value < expected_kie * 1.1, ( + f"k_ie is not correct, got {k_ie.value} expected {expected_kie}" + ) + assert expected_km * 0.95 < K_M.value < expected_km * 1.1, ( + f"K_M is not correct, got {K_M.value} expected {expected_km}" + ) + + def test_plot(self): + doc = pe.read_enzymeml("tests/fixtures/modeling/enzmldoc_reaction.json") + + with tempfile.TemporaryDirectory() as tmp_dir: + layer = ThinLayerCopasi(doc, tmp_dir) + layer.optimize() + + fig, axs = pe.plot( + layer.enzmldoc, + thinlayer=layer, + measurement_ids=[ + "measurement0", + "measurement1", + "measurement2", + "measurement3", + ], + ) + + # Raw image + + assert fig is not None, "Figure is not created" + assert axs is not None, "Axes are not created" + + def test_plot_interactive(self): + with tempfile.TemporaryDirectory() as tmp_dir: + doc = pe.read_enzymeml("tests/fixtures/modeling/enzmldoc_reaction.json") + layer = ThinLayerCopasi(doc, tmp_dir) + layer.optimize() + + out_file = "test.html" + pe.plot_interactive( + layer.enzmldoc, + thinlayer=layer, + output_nb=False, + show=False, + out=out_file, + ) + + def test_rate_rule(self): + doc = pe.read_enzymeml("tests/fixtures/modeling/enzmldoc.json") + + with tempfile.TemporaryDirectory() as tmp_dir: + layer = ThinLayerCopasi(doc, tmp_dir) + layer.optimize() + + out_file = "test2.html" + pe.plot_interactive( + layer.enzmldoc, + thinlayer=layer, + output_nb=False, + show=False, + out=out_file, + ) + + @staticmethod + def _extract_parameter(doc: v2.EnzymeMLDocument, symbol: str) -> v2.Parameter: + param = next(p for p in doc.parameters if p.symbol == symbol) + assert param is not None, f"{symbol} is not set" + return param + + +if __name__ == "__main__": + # test current file only + pytest.main([__file__]) diff --git a/tests/integration/test_legacy.py b/tests/integration/test_legacy.py index 8e304ea..987fded 100644 --- a/tests/integration/test_legacy.py +++ b/tests/integration/test_legacy.py @@ -16,7 +16,7 @@ def test_legacy(self): consistent and expected output for legacy OMEX files. """ enzmldoc = EnzymeMLDocument.fromFile("tests/fixtures/sbml/v1_example.omex") - expected = open("tests/fixtures/sbml/v1_sbml.xml", "r").read() + expected = open("tests/fixtures/sbml/v1_sbml.xml", "r", encoding="utf-8").read() actual = enzmldoc.toXMLString() assert actual == expected