From 1a0d2a6d55d46bad475431569e8e55d2a7394cb3 Mon Sep 17 00:00:00 2001 From: SED-ML bot Date: Sun, 10 Oct 2021 02:09:00 +0000 Subject: [PATCH 01/36] Updated compiled documentation [Skip CI] --- libkisao/python/docs/_static/documentation_options.js | 2 +- libkisao/python/docs/about.html | 2 +- libkisao/python/docs/genindex.html | 2 +- libkisao/python/docs/index.html | 2 +- libkisao/python/docs/py-modindex.html | 2 +- libkisao/python/docs/search.html | 2 +- libkisao/python/docs/source/kisao.html | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libkisao/python/docs/_static/documentation_options.js b/libkisao/python/docs/_static/documentation_options.js index cbf3a6e..d4201e4 100644 --- a/libkisao/python/docs/_static/documentation_options.js +++ b/libkisao/python/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '2.29', + VERSION: '2.30', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/libkisao/python/docs/about.html b/libkisao/python/docs/about.html index 1e5d5cb..6977b28 100644 --- a/libkisao/python/docs/about.html +++ b/libkisao/python/docs/about.html @@ -6,7 +6,7 @@ - 2. About KiSAO — KiSAO 2.29 documentation + 2. About KiSAO — KiSAO 2.30 documentation diff --git a/libkisao/python/docs/genindex.html b/libkisao/python/docs/genindex.html index 2e0caca..e5d8e5c 100644 --- a/libkisao/python/docs/genindex.html +++ b/libkisao/python/docs/genindex.html @@ -5,7 +5,7 @@ - Index — KiSAO 2.29 documentation + Index — KiSAO 2.30 documentation diff --git a/libkisao/python/docs/index.html b/libkisao/python/docs/index.html index 30d0ad9..5eaf391 100644 --- a/libkisao/python/docs/index.html +++ b/libkisao/python/docs/index.html @@ -6,7 +6,7 @@ - KiSAO — KiSAO 2.29 documentation + KiSAO — KiSAO 2.30 documentation diff --git a/libkisao/python/docs/py-modindex.html b/libkisao/python/docs/py-modindex.html index 1177981..4f0e968 100644 --- a/libkisao/python/docs/py-modindex.html +++ b/libkisao/python/docs/py-modindex.html @@ -5,7 +5,7 @@ - Python Module Index — KiSAO 2.29 documentation + Python Module Index — KiSAO 2.30 documentation diff --git a/libkisao/python/docs/search.html b/libkisao/python/docs/search.html index bb098b2..6f9adc9 100644 --- a/libkisao/python/docs/search.html +++ b/libkisao/python/docs/search.html @@ -5,7 +5,7 @@ - Search — KiSAO 2.29 documentation + Search — KiSAO 2.30 documentation diff --git a/libkisao/python/docs/source/kisao.html b/libkisao/python/docs/source/kisao.html index 5cd32ee..312a8e3 100644 --- a/libkisao/python/docs/source/kisao.html +++ b/libkisao/python/docs/source/kisao.html @@ -6,7 +6,7 @@ - 1. kisao package — KiSAO 2.29 documentation + 1. kisao package — KiSAO 2.30 documentation From a3d906a47f83a692a9ae005bc513194b2d6b08c6 Mon Sep 17 00:00:00 2001 From: Jonathan Karr Date: Sun, 27 Mar 2022 15:58:35 -0400 Subject: [PATCH 02/36] feat: started new minor version --- CHANGELOG.md | 3 +++ kisao.owl | 2 +- kisao_full.owl | 2 +- libkisao/python/kisao/_version.py | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b60651..5b83f47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2.31 (OWL 2) +Added concepts for eQuilibrator + ## 2.30 (OWL 2) - Added and unified aggregation functions for SED-ML L1V4 - maximum ignoring NaN (`KISAO_0000828`) diff --git a/kisao.owl b/kisao.owl index 52bc176..c537150 100644 --- a/kisao.owl +++ b/kisao.owl @@ -16,7 +16,7 @@ Artistic License 2.0 http://identifiers.org/pubmed/22027554 Kinetic Simulation Algorithm Ontology (KiSAO) - 2.30 + 2.31 http://co.mbine.org/standards/kisao en The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. diff --git a/kisao_full.owl b/kisao_full.owl index 19526ba..b56de40 100644 --- a/kisao_full.owl +++ b/kisao_full.owl @@ -19,7 +19,7 @@ Kinetic Simulation Algorithm Ontology (full version, containing deprecated classes) http://co.mbine.org/standards/kisao http://identifiers.org/pubmed/22027554 - 2.30 + 2.31 The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. diff --git a/libkisao/python/kisao/_version.py b/libkisao/python/kisao/_version.py index 728f998..f0d1069 100644 --- a/libkisao/python/kisao/_version.py +++ b/libkisao/python/kisao/_version.py @@ -1 +1 @@ -__version__ = '2.30' +__version__ = '2.31' From bc5d0283b94efce2745e58975870e546639110d7 Mon Sep 17 00:00:00 2001 From: Jonathan Karr Date: Sun, 27 Mar 2022 16:32:26 -0400 Subject: [PATCH 03/36] feat: added algorithm concepts for eQuilibrator --- CHANGELOG.md | 3 +- kisao.owl | 402 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 255 insertions(+), 150 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b83f47..d3090c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ # Changelog ## 2.31 (OWL 2) -Added concepts for eQuilibrator +- Added concepts for eQuilibrator +- Added top-level algorithm concept for network optimization methods and nested the eQuilibrator methods, flux balance methods, and resource balance analysis under this ## 2.30 (OWL 2) - Added and unified aggregation functions for SED-ML L1V4 diff --git a/kisao.owl b/kisao.owl index c537150..e7d2b28 100644 --- a/kisao.owl +++ b/kisao.owl @@ -1,26 +1,26 @@ + xmlns:skos="http://www.w3.org/2004/02/skos/core#" + xmlns:kisao="http://www.biomodels.net/kisao/KISAO#" + xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"> + en Artistic License 2.0 - http://identifiers.org/pubmed/22027554 + This is a core version which contains all but deprecated classes. Kinetic Simulation Algorithm Ontology (KiSAO) - 2.31 http://co.mbine.org/standards/kisao - en + http://identifiers.org/pubmed/22027554 + 2.31 The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. - This is a core version which contains all but deprecated classes. @@ -8073,7 +8073,6 @@ DASPK is written in Fortran. - @@ -12593,6 +12592,7 @@ Min sum(|fluxAi - fluxBi|) + 2020-10-29 JRK true @@ -13457,7 +13457,7 @@ CVODE is used for ordinary differential equation (ODE) systems. IDA is used for - + 2021--04-27 JRK true @@ -14232,6 +14232,7 @@ This method only involves evaluations of f. This method is suitable for non-stif + 2021-08-12 JRK http://identifiers.org/biosimulators/rbapy @@ -14540,6 +14541,67 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + 2022-03-27 + EN + JRK + WL + true + network optimization method + A method for computing the optimal configuration of a network accordion to a particular objective. + + + + + + + + + 2022-03-27 + EN + JRK + WL + Enzyme Cost Minimization + http://identifiers.org/doi:10.1371/journal.pcbi.1005167 + ECM + Enzyme Cost Minimization (ECM) is a scalable method for computing enzyme amounts that support a given metabolic flux at a minimal protein cost. ECM is a convex optimization problem that can be solved with local optimizers. + + + + + http://identifiers.org/doi:10.1371/journal.pcbi.1005167 + Elad Noor, Avi Flamholz, Arren Bar-Even, Dan Davidi, Ron Milo & Wolfram Liebermeister. The Protein Cost of Metabolic Fluxes: Prediction from Enzymatic Rate Laws and Cost Minimization. PLoS Comput Biol 12 (11): e1005167 (2016). + + + + + + + + + 2022-03-27 + EN + JRK + WL + Max-min Driving Force method + http://identifiers.org/doi:10.1371/journal.pcbi.1003483 + MDF + The Max-min Driving Force (MDF) is a single thermodynamically-derived metric which enables objective ranking of pathways by the degree to which their flux is constrained by low thermodynamic driving force. + +The MDF method chooses metabolic concentration profiles that ensure sufficient driving forces, thus keeping reactions distant from chemical equilibrium. + + + + + http://identifiers.org/doi:10.1371/journal.pcbi.1003483 + Elad Noor, Arren Bar-Even, Avi Flamholz, Ed Reznik, Wolfram Liebermeister & Ron Milo. Pathway thermodynamics highlights kinetic obstacles in central metabolism. PLOS Computational Biology 10(2): e1003483 (2014). + + + + @@ -14960,6 +15022,147 @@ This method only involves evaluations of f. This method is suitable for non-stif The maximum of a set of values. If the values contain NaN the maximum is NaN. + + + + + + 06-03-2021 + LPS + true + model and simulation property + A variable of a model or simulation. + + + + + + + + + 06-03-2021 + LPS + time + The implied time variable of the model state. + + + + + + + + + + + + + + + + + + + + + 06-03-2021 + LPS + rate of change + rate + The rate of change of one variable with respect to a second variable. + + + + + + + + + + + + + + + 06-03-2021 + LPS + concentration control coefficient matrix (scaled) + The scaled concentration control coefficient matrix. The dimensions are species by reactions. + + + + + + + + + + + + + + + 06-03-2021 + LPS + amount + The extensive quantity amount. + + + + + + + + + + + + + + + 06-03-2021 + LPS + particle number + The extensive quantity particle number, or, the molar amount of the entity multiplied by Avogadro's number. + + + + + + + + + + + + + + + 06-03-2021 + LPS + concentration + The intensive quantity concentration, or, the amount of the entity with respect to the entity in which it resides. + + + + + + + + + + + + + + + 06-03-2021 + LPS + temperature + The intensive quantity temperature. + + + + @@ -14970,6 +15173,8 @@ This method only involves evaluations of f. This method is suitable for non-stif The minimum of a set of values. If the values contain NaN the minimum is NaN. + + @@ -14980,6 +15185,8 @@ This method only involves evaluations of f. This method is suitable for non-stif The mean of a set of values. If the values contain NaN the mean is NaN. + + @@ -14990,6 +15197,8 @@ This method only involves evaluations of f. This method is suitable for non-stif The standard deviation of a set of values. If the values contain NaN the standard deviation is NaN. + + @@ -15000,6 +15209,8 @@ This method only involves evaluations of f. This method is suitable for non-stif The standard error of a set of values. If the values contain NaN the standard deviation is NaN. + + @@ -15010,6 +15221,8 @@ This method only involves evaluations of f. This method is suitable for non-stif The sum of a set of values, ignoring Nan entries. + + @@ -15019,6 +15232,7 @@ This method only involves evaluations of f. This method is suitable for non-stif sum The sum of a set of values. If the values contain NaN the sum is NaN. + @@ -15030,6 +15244,8 @@ This method only involves evaluations of f. This method is suitable for non-stif product ignoring NaN The product of a set of values, ignoring Nan entries. + + @@ -15040,6 +15256,8 @@ This method only involves evaluations of f. This method is suitable for non-stif product The product of a set of values. If the values contain NaN the product is NaN. + + @@ -15050,6 +15268,8 @@ This method only involves evaluations of f. This method is suitable for non-stif cumulative sum ignoring NaN The cumulative sum of a set of values, ignoring Nan entries. + + @@ -15060,6 +15280,8 @@ This method only involves evaluations of f. This method is suitable for non-stif cumulative sum The cumulative sum of a set of values. If the values contain NaN the cumulative sum is NaN. + + @@ -15070,6 +15292,8 @@ This method only involves evaluations of f. This method is suitable for non-stif cumulative product ignoring NaN The cumulative product of a set of values, ignoring Nan entries. + + @@ -15081,6 +15305,8 @@ This method only involves evaluations of f. This method is suitable for non-stif The cumulative product of a set of values. If the values contain NaN the cumulative product is NaN. + + @@ -15090,6 +15316,8 @@ This method only involves evaluations of f. This method is suitable for non-stif count ignoring NaN The number of non-zero elements of a set of values, ignoring Nan entries. + + @@ -15100,6 +15328,8 @@ This method only involves evaluations of f. This method is suitable for non-stif count The number of non-zero elements of a set of values. If the values contain NaN the count is NaN. + + @@ -15110,6 +15340,8 @@ This method only involves evaluations of f. This method is suitable for non-stif length ignoring NaN The number of elements of a set of values, ignoring Nan entries. + + @@ -15120,6 +15352,8 @@ This method only involves evaluations of f. This method is suitable for non-stif length The number of elements of a set of values. + + @@ -15130,6 +15364,8 @@ This method only involves evaluations of f. This method is suitable for non-stif median ignoring NaN The median of a set of values, ignoring Nan entries. + + @@ -15141,6 +15377,8 @@ This method only involves evaluations of f. This method is suitable for non-stif The median of a set of values. If the values contain NaN the median is NaN. + + @@ -15150,6 +15388,8 @@ This method only involves evaluations of f. This method is suitable for non-stif variance ignoring NaN The variance of a set of values, ignoring Nan entries. + + @@ -15160,145 +15400,9 @@ This method only involves evaluations of f. This method is suitable for non-stif variance The variance of a set of values. If the values contain NaN the variance is NaN. - - - - - - 06-03-2021 - LPS - true - model and simulation property - A variable of a model or simulation. - - - - - - - - 06-03-2021 - LPS - time - The implied time variable of the model state. - - - - - - - - - - - - - - - - - - - - - 06-03-2021 - LPS - rate of change - rate - The rate of change of one variable with respect to a second variable. - - - - - - - - - - - - - - - 06-03-2021 - LPS - concentration control coefficient matrix (scaled) - The scaled concentration control coefficient matrix. The dimensions are species by reactions. - - - - - - - - - - - - - - - 06-03-2021 - LPS - amount - The extensive quantity amount. - - - - - - - - - - - - - - - 06-03-2021 - LPS - particle number - The extensive quantity particle number, or, the molar amount of the entity multiplied by Avogadro's number. - - - - - - - - - - - - 06-03-2021 - LPS - concentration - The intensive quantity concentration, or, the amount of the entity with respect to the entity in which it resides. - - - - - - - - - - - - - - - 06-03-2021 - LPS - temperature - The intensive quantity temperature. - - - + From 75e7c301d3afcb889a26a6d46f6c7c10925842f2 Mon Sep 17 00:00:00 2001 From: Jonathan Karr Date: Sun, 27 Mar 2022 17:40:08 -0400 Subject: [PATCH 04/36] feat: copied descriptions of ECM and MDF from the Metabolic Pathway Analysis software --- CHANGELOG.md | 4 ++-- kisao.owl | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3090c4..978b407 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # Changelog ## 2.31 (OWL 2) -- Added concepts for eQuilibrator -- Added top-level algorithm concept for network optimization methods and nested the eQuilibrator methods, flux balance methods, and resource balance analysis under this +- Added concepts for Metabolic Pathway Analysis +- Added top-level algorithm concept for network optimization methods and nested the Metabolic Pathway Analysis methods, flux balance methods, and resource balance analysis under this ## 2.30 (OWL 2) - Added and unified aggregation functions for SED-ML L1V4 diff --git a/kisao.owl b/kisao.owl index e7d2b28..d0d10d8 100644 --- a/kisao.owl +++ b/kisao.owl @@ -14564,11 +14564,18 @@ This method only involves evaluations of f. This method is suitable for non-stif EN JRK WL + https://gitlab.com/equilibrator/metabolic-pathway-analysis Enzyme Cost Minimization http://identifiers.org/doi:10.1371/journal.pcbi.1005167 ECM - Enzyme Cost Minimization (ECM) is a scalable method for computing enzyme amounts that support a given metabolic flux at a minimal protein cost. ECM is a convex optimization problem that can be solved with local optimizers. + For a given metabolic network model, the Enzyme Cost Minimization method determines plausible metabolite and enzyme concentrations (which determine thermodynamic forces and enzyme catalytic rates). Fluxes, enzyme kinetic constants, admissible metabolite concentration ranges, and enzyme cost weights (e.g. enzyme molecular masses) are given as input data. The method applies the principle that high enzyme (or enzyme plus metabolite) concentrations must be avoided, and maximizes a weighted sum of enzyme and metabolite concentrations. + + + + https://gitlab.com/equilibrator/metabolic-pathway-analysis + Metabolic Pathway Analysis + @@ -14586,13 +14593,18 @@ This method only involves evaluations of f. This method is suitable for non-stif EN JRK WL + https://gitlab.com/equilibrator/metabolic-pathway-analysis Max-min Driving Force method http://identifiers.org/doi:10.1371/journal.pcbi.1003483 MDF - The Max-min Driving Force (MDF) is a single thermodynamically-derived metric which enables objective ranking of pathways by the degree to which their flux is constrained by low thermodynamic driving force. - -The MDF method chooses metabolic concentration profiles that ensure sufficient driving forces, thus keeping reactions distant from chemical equilibrium. + For a given metabolic network model, the MDF method determines plausible metabolite concentrations and thermodynamic forces. Flux directions, equilibrium constants (or equivalently, standard Gibbs free energies of reactions) and admissible metabolite concentration ranges are given as input data. The method applies the principle that low thermodynamic forces must be avoided, and maximizes the minimum thermodynamic force across the entire network. + + + + https://gitlab.com/equilibrator/metabolic-pathway-analysis + Metabolic Pathway Analysis + From eed03f1022438c798999bb50d419f3e3c1472126 Mon Sep 17 00:00:00 2001 From: Jonathan Karr Date: Tue, 29 Mar 2022 09:39:32 -0400 Subject: [PATCH 05/36] feat: refined categorization of MPA methods --- kisao.owl | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 128 insertions(+), 2 deletions(-) diff --git a/kisao.owl b/kisao.owl index d0d10d8..0b772fe 100644 --- a/kisao.owl +++ b/kisao.owl @@ -9307,6 +9307,12 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- + + + + + + 2015-04-23 AZ true @@ -13458,6 +13464,12 @@ CVODE is used for ordinary differential equation (ODE) systems. IDA is used for + + + + + + 2021--04-27 JRK true @@ -14233,6 +14245,12 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + 2021-08-12 JRK http://identifiers.org/biosimulators/rbapy @@ -14545,13 +14563,19 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + 2022-03-27 EN JRK WL true - network optimization method - A method for computing the optimal configuration of a network accordion to a particular objective. + biological state optimization method + A method for computing the optimal state of a biological system accordion to a particular objective. @@ -14560,6 +14584,18 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + + + + + + + 2022-03-27 EN JRK @@ -14589,6 +14625,18 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + + + + + + + 2022-03-27 EN JRK @@ -14614,6 +14662,84 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + 2022-03-29 + EN + JRK + WL + type of system described + + + + + + + + + 2022-03-29 + EN + JRK + WL + mathematical system + + + + + + + + + 2022-03-29 + EN + JRK + WL + biological system + + + + + + + + + 2022-03-29 + EN + JRK + WL + metabolic system + + + + + + + + + 2022-03-29 + EN + JRK + WL + cellular system + + + + + + + + + 2022-03-29 + EN + JRK + WL + biochemical system + + + + From 6aff1ba7577b31a74883176ed174f4bd537aca0e Mon Sep 17 00:00:00 2001 From: Jonathan Karr Date: Thu, 20 Jan 2022 19:02:49 -0500 Subject: [PATCH 06/36] chore: updated CodeCov action to v2 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8fbb422..26afa9e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -82,7 +82,7 @@ jobs: - name: Upload the coverage report to Codecov if: false - uses: codecov/codecov-action@v1.0.3 + uses: codecov/codecov-action@v2 with: token: ${{ secrets.CODECOV_TOKEN }} flags: unittests From 5020002c6e1dcf1f29a8cd548d6fe5bbdbf27fb6 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 19 May 2023 16:00:48 -0700 Subject: [PATCH 07/36] Add two new terms, change organization. * Add 'ODE Solver', and move 'CVODE Solver' and 'Livermore solver' to be children of it. * Add 'parameters for' for specifying more-specific parameters for more-specific algorithms. --- kisao.owl | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 131 insertions(+), 2 deletions(-) diff --git a/kisao.owl b/kisao.owl index 0b772fe..39ed091 100644 --- a/kisao.owl +++ b/kisao.owl @@ -2547,7 +2547,7 @@ It is an 'embedded Runge-Kutta method' [http://identifiers.org/biomode - + @@ -8753,7 +8753,7 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- - + @@ -14740,6 +14740,135 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + 2023-05-19 + lps + true + ODE Solver + ordinary differential equation solver + An ODE solver is the general category of packages such as CVODE-like methods [http://identifiers.org/biomodels.kisao/KISAO_0000433] or Livermore solvers [http://identifiers.org/biomodels.kisao/KISAO_0000094] that solve systems of ordinary differential equations. + + + + + ordinary differential equation solver + EXACT + + + + + + + + + + + + + + + 2023/05/19 + lps + parameters for + The children parameters of this term are applied when the parent general term is implented as the more-specific value of this term. For example: a 'parameters for' term might be used as a child of an 'ODE Solver' ([http://identifiers.org/biomodels.kisao/KISAO_0000694]), have a value of 'KISAO_0000019' (CVODE)', and have a child term 'use stiff method' of 'true' ([http://identifiers.org/biomodels.kisao/KISAO_0000671]) + + + + From 7eec3ff8381f7830df40c8e4bdb6b8f70e90d0d9 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 19 May 2023 16:04:55 -0700 Subject: [PATCH 08/36] Fix pip at 23.0.1 We use setup.py in an incompatible way with 23.1; fix pip at 23.0.1 for now. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 26afa9e..e33a555 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: - name: Install pip and setuptools run: | - python -m pip install --upgrade pip + python -m pip install --upgrade pip==23.0.1 python -m pip install --upgrade setuptools - name: Install the Python KiSAO package From f017d25224aef53105f15a8874db7472b9f3009c Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 19 May 2023 16:16:57 -0700 Subject: [PATCH 09/36] sphinxprettysearchresults is broken; remove for now. --- libkisao/python/docs-src/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libkisao/python/docs-src/requirements.txt b/libkisao/python/docs-src/requirements.txt index d9b8975..9b4c13f 100644 --- a/libkisao/python/docs-src/requirements.txt +++ b/libkisao/python/docs-src/requirements.txt @@ -1,2 +1,2 @@ sphinx >= 1.8 -sphinxprettysearchresults +#sphinxprettysearchresults From f18615a02204ab8eca967d0be8759329a0c3c2da Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 19 May 2023 16:19:48 -0700 Subject: [PATCH 10/36] sphinxprettysearchresults is broken; remove for now. --- libkisao/python/docs-src/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libkisao/python/docs-src/conf.py b/libkisao/python/docs-src/conf.py index 4b8b387..5dc1b1f 100644 --- a/libkisao/python/docs-src/conf.py +++ b/libkisao/python/docs-src/conf.py @@ -42,7 +42,7 @@ 'sphinx.ext.autodoc', 'sphinx.ext.linkcode', 'sphinx.ext.napoleon', - 'sphinxprettysearchresults', +# 'sphinxprettysearchresults', ] # Add any paths that contain templates here, relative to this directory. From b9fc656e70a0005ae2b59299576dfbcd458acc56 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 22 May 2023 09:22:43 -0700 Subject: [PATCH 11/36] Changes from Matthias * ODE Solver -> ODE solver * added 'lang' * Moved one-step solvers to be children of new ODE solver. --- kisao.owl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kisao.owl b/kisao.owl index 39ed091..cef6c26 100644 --- a/kisao.owl +++ b/kisao.owl @@ -7433,7 +7433,7 @@ DASPK is written in Fortran. - + @@ -14838,7 +14838,7 @@ This method only involves evaluations of f. This method is suitable for non-stif 2023-05-19 lps true - ODE Solver + ODE solver ordinary differential equation solver An ODE solver is the general category of packages such as CVODE-like methods [http://identifiers.org/biomodels.kisao/KISAO_0000433] or Livermore solvers [http://identifiers.org/biomodels.kisao/KISAO_0000094] that solve systems of ordinary differential equations. From f19d9c01b9680e832d8a61c7156e54f1b5cbc91d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 24 May 2023 11:47:27 -0700 Subject: [PATCH 12/36] Update for release Also, switch 'ODE solver' to not be 'organizational' since it is indeed intended for use in SED-ML files. --- .github/workflows/BioPortal-submission.json | 6 +++--- CHANGELOG.md | 5 +++++ kisao.owl | 4 ++-- kisao_full.owl | 2 +- libkisao/python/kisao/_version.py | 2 +- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/BioPortal-submission.json b/.github/workflows/BioPortal-submission.json index 4bc042b..c35ebdf 100644 --- a/.github/workflows/BioPortal-submission.json +++ b/.github/workflows/BioPortal-submission.json @@ -1,10 +1,10 @@ { "ontology": "https://data.bioontology.org/ontologies/KISAO", - "pullLocation": "https://raw.githubusercontent.com/SED-ML/KiSAO/2.14/kisao.owl", + "pullLocation": "https://raw.githubusercontent.com/SED-ML/KiSAO/2.32/kisao.owl", "hasOntologyLanguage": "OWL", "description": "The Kinetic Simulation Algorithm Ontology (KiSAO) is an ontology of algorithms for simulating and analyzing biological models, as well as the characteristics of these algorithms, their input parameters, and their outputs. In addition, KiSAO captures relationships among algorithms, their parameters, and their outputs.", - "version": "2.14", - "released": "2021-04-29T02:54:00-00:00", + "version": "2.32", + "released": "2023-05-24T02:54:00-00:00", "status": "production", "homepage": "http://biomodels.net/kisao/", "documentation": "http://biomodels.net/kisao/", diff --git a/CHANGELOG.md b/CHANGELOG.md index 978b407..673f6cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.32 (OWL 2) +- Added algorithm concepts for eQuilibrator. +- Added organizational 'ODE solver' (`KISAO_0000694`) for noting in SED-ML that some solver should be used, but which is not important. +- Added 'parameters for' (`KISAO_0000695`) to indicate that the children parameters of this term are applied when the parent general term is implented as the more-specific value of this term. + ## 2.31 (OWL 2) - Added concepts for Metabolic Pathway Analysis - Added top-level algorithm concept for network optimization methods and nested the Metabolic Pathway Analysis methods, flux balance methods, and resource balance analysis under this diff --git a/kisao.owl b/kisao.owl index cef6c26..48e1082 100644 --- a/kisao.owl +++ b/kisao.owl @@ -19,7 +19,7 @@ Kinetic Simulation Algorithm Ontology (KiSAO) http://co.mbine.org/standards/kisao http://identifiers.org/pubmed/22027554 - 2.31 + 2.32 The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. @@ -14837,7 +14837,7 @@ This method only involves evaluations of f. This method is suitable for non-stif 2023-05-19 lps - true + false ODE solver ordinary differential equation solver An ODE solver is the general category of packages such as CVODE-like methods [http://identifiers.org/biomodels.kisao/KISAO_0000433] or Livermore solvers [http://identifiers.org/biomodels.kisao/KISAO_0000094] that solve systems of ordinary differential equations. diff --git a/kisao_full.owl b/kisao_full.owl index b56de40..c8ff256 100644 --- a/kisao_full.owl +++ b/kisao_full.owl @@ -19,7 +19,7 @@ Kinetic Simulation Algorithm Ontology (full version, containing deprecated classes) http://co.mbine.org/standards/kisao http://identifiers.org/pubmed/22027554 - 2.31 + 2.32 The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. diff --git a/libkisao/python/kisao/_version.py b/libkisao/python/kisao/_version.py index f0d1069..81440c8 100644 --- a/libkisao/python/kisao/_version.py +++ b/libkisao/python/kisao/_version.py @@ -1 +1 @@ -__version__ = '2.31' +__version__ = '2.32' From 31229dfb8b047f08f55db30689be7717d6518887 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 6 Jun 2023 14:30:28 -0700 Subject: [PATCH 13/36] A handful of changes: * Organize steady-state solvers and give them their own solver category, so solvers that do (say) NLEQ1 can be allowed to also tackle NLEQ2. * Move some SDE solvers out of the ODE branch; give them new SDE branch. * New tests for steadystate group * Let tests be run separately. --- kisao.owl | 135 ++++++++++++++++++----- kisao_full.owl | 2 +- libkisao/python/kisao/data_model.py | 2 + libkisao/python/kisao/utils.py | 27 +++++ libkisao/python/tests/test_core.py | 3 + libkisao/python/tests/test_data_model.py | 3 + libkisao/python/tests/test_ontology.py | 3 + libkisao/python/tests/test_utils.py | 28 +++-- 8 files changed, 166 insertions(+), 37 deletions(-) diff --git a/kisao.owl b/kisao.owl index 48e1082..8a8faf5 100644 --- a/kisao.owl +++ b/kisao.owl @@ -2713,6 +2713,12 @@ It is an 'embedded Runge-Kutta method' [http://identifiers.org/biomode + + + + + + 2008-07-08 NLN continuous variable @@ -4395,25 +4401,13 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - - - - - - - + - - - - - - @@ -4422,8 +4416,8 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - - + + @@ -4457,11 +4451,11 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - + - + @@ -4470,12 +4464,6 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - - - - - - 2011-05-10 AZ Milstein method @@ -8153,7 +8141,7 @@ The solution of the system F(x)=0 can be interpreted as a steady state of a dyna 2012-01-18 AZ - simlified Newton method + simplified Newton method http://identifiers.org/isbn/9783540210993 A 'Newton-type method' [http://identifiers.org/biomodels.kisao/KISAO_0000408] which is characterized by keeping the initial derivative throughout the whole iteration: F'(x[0])deltax[k]=-F(x[k]), x[k+1]=x[k]+deltax[k], k=0,1,... @@ -11865,17 +11853,23 @@ Levenberg first suggested an improvement to the Newton method in order to make i - + - - + + - - + + + + + + + + 2020-10-29 @@ -13599,6 +13593,12 @@ Example system of equations: + + + + + + 2021-06-01 JRK true @@ -14744,6 +14744,12 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + @@ -14869,6 +14875,77 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + LPS + steady state root-finding problem + steady state problem + + + + + steady state problem + EXACT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2023-06-06 + lps + false + SDE solver + stochastic differential equation solver + An SDE solver is the general category of packages that provide stochastic solutions to a system of differential equations with propensities. + + + + + stochastic differential equation solver + EXACT + + + + diff --git a/kisao_full.owl b/kisao_full.owl index c8ff256..86e0a16 100644 --- a/kisao_full.owl +++ b/kisao_full.owl @@ -19,7 +19,7 @@ Kinetic Simulation Algorithm Ontology (full version, containing deprecated classes) http://co.mbine.org/standards/kisao http://identifiers.org/pubmed/22027554 - 2.32 + 2.33 The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. diff --git a/libkisao/python/kisao/data_model.py b/libkisao/python/kisao/data_model.py index 272e1be..43f3157 100644 --- a/libkisao/python/kisao/data_model.py +++ b/libkisao/python/kisao/data_model.py @@ -13,6 +13,7 @@ 'ID_HAS_CHARACTERISTIC_RELATIONSHIP', 'ID_ODE_PROBLEM_CHARACTERISTIC', 'ID_SDE_PROBLEM_CHARACTERISTIC', + 'ID_STEADYSTATE_PROBLEM_CHARACTERISTIC', 'ID_PDE_PROBLEM_CHARACTERISTIC', 'ID_EXACT_SOLUTION_CHARACTERISTIC', 'ID_APPROXIMATE_SOLUTION_CHARACTERISTIC', @@ -36,6 +37,7 @@ ID_ODE_PROBLEM_CHARACTERISTIC = 'KISAO_0000374' # ordinary differential equation problem ID_SDE_PROBLEM_CHARACTERISTIC = 'KISAO_0000371' # stochastic differential equation problem +ID_STEADYSTATE_PROBLEM_CHARACTERISTIC = 'KISAO_0000696' # steady state root-finding problem ID_PDE_PROBLEM_CHARACTERISTIC = 'KISAO_0000372' # partial differential equation problem ID_EXACT_SOLUTION_CHARACTERISTIC = 'KISAO_0000236' # exact solution ID_APPROXIMATE_SOLUTION_CHARACTERISTIC = 'KISAO_0000237' # approximate solution diff --git a/libkisao/python/kisao/utils.py b/libkisao/python/kisao/utils.py index a065d22..a20b3f3 100644 --- a/libkisao/python/kisao/utils.py +++ b/libkisao/python/kisao/utils.py @@ -11,6 +11,7 @@ ID_HAS_CHARACTERISTIC_RELATIONSHIP, ID_ODE_PROBLEM_CHARACTERISTIC, ID_SDE_PROBLEM_CHARACTERISTIC, + ID_STEADYSTATE_PROBLEM_CHARACTERISTIC, ID_PDE_PROBLEM_CHARACTERISTIC, ID_EXACT_SOLUTION_CHARACTERISTIC, ID_APPROXIMATE_SOLUTION_CHARACTERISTIC, @@ -210,6 +211,18 @@ def get_sde_algorithms(): return get_terms_with_characteristics([ID_ALGORITHM], [ID_SDE_PROBLEM_CHARACTERISTIC]) +@ functools.lru_cache(maxsize=None) +def get_steadystate_algorithms(): + """ Get the terms for rule-based simulation algorithms (KISAO_0000363).:: + + 'rule-based simulation method' + + Returns: + :obj:`set` of :obj:`pronto.Term`: terms + """ + return get_terms_with_characteristics([ID_ALGORITHM], [ID_STEADYSTATE_PROBLEM_CHARACTERISTIC]) + + @ functools.lru_cache(maxsize=None) def get_pde_algorithms(): """ Get the terms for rule-based simulation algorithms (KISAO_0000363).:: @@ -282,6 +295,16 @@ def get_hybrid_algorithms(): return get_terms_with_characteristics([ID_HYBRID_ALGORITHM]) +@ functools.lru_cache(maxsize=None) +def get_parents_and_children_of(term): + """ Get the parents and children of the given term.:: + + Returns: + :obj:`set` of :obj:`pronto.Term`: terms + """ + return get_terms_with_characteristics([ID_HYBRID_ALGORITHM]) + + def get_substitutable_algorithms_for_policy(algorithm, substitution_policy=AlgorithmSubstitutionPolicy.SIMILAR_VARIABLES): """ Get a set of algorithms that an algorithm can be substituted for a given substitution policy. @@ -307,6 +330,7 @@ def get_substitutable_algorithms_for_policy(algorithm, substitution_policy=Algor (True, functools.partial(get_gillespie_like_algorithms, exact=True, approximate=False)), (False, get_tau_leaping_algorithms), (False, get_sde_algorithms), + (False, get_steadystate_algorithms), (False, get_pde_algorithms), (False, get_logical_simulation_algorithms), (True, get_logical_stable_state_search_algorithms), @@ -321,6 +345,7 @@ def get_substitutable_algorithms_for_policy(algorithm, substitution_policy=Algor (True, functools.partial(get_gillespie_like_algorithms, exact=True, approximate=False)), (True, get_tau_leaping_algorithms), (True, get_sde_algorithms), + (True, get_steadystate_algorithms), (True, get_pde_algorithms), (False, get_logical_simulation_algorithms), (True, get_logical_stable_state_search_algorithms), @@ -338,6 +363,7 @@ def get_substitutable_algorithms_for_policy(algorithm, substitution_policy=Algor (True, lambda: get_gillespie_like_algorithms( exact=True, approximate=False) | get_tau_leaping_algorithms()), (True, get_sde_algorithms), + (True, get_steadystate_algorithms), (True, get_pde_algorithms), (True, get_logical_simulation_algorithms), (True, get_logical_stable_state_search_algorithms), @@ -352,6 +378,7 @@ def get_substitutable_algorithms_for_policy(algorithm, substitution_policy=Algor (True, lambda: get_gillespie_like_algorithms( exact=True, approximate=False) | get_tau_leaping_algorithms()), (True, get_sde_algorithms), + (True, get_steadystate_algorithms), (True, get_pde_algorithms), (True, get_flux_balance_algorithms), (True, get_logical_simulation_algorithms), diff --git a/libkisao/python/tests/test_core.py b/libkisao/python/tests/test_core.py index 4e3192c..df2678a 100644 --- a/libkisao/python/tests/test_core.py +++ b/libkisao/python/tests/test_core.py @@ -67,3 +67,6 @@ def test_get_term_ids(self): self.assertIn('KISAO_0000450', term_ids) self.assertIn('KISAO_0000581', term_ids) self.assertIn('KISAO_0000449', term_ids) + +if __name__ == "__main__": + unittest.main() diff --git a/libkisao/python/tests/test_data_model.py b/libkisao/python/tests/test_data_model.py index 661042e..53b11a4 100644 --- a/libkisao/python/tests/test_data_model.py +++ b/libkisao/python/tests/test_data_model.py @@ -16,3 +16,6 @@ def test(self): ALGORITHM_SUBSTITUTION_POLICY_LEVELS[AlgorithmSubstitutionPolicy.SAME_MATH], ALGORITHM_SUBSTITUTION_POLICY_LEVELS[AlgorithmSubstitutionPolicy.DISTINCT_APPROXIMATIONS], ) + +if __name__ == "__main__": + unittest.main() diff --git a/libkisao/python/tests/test_ontology.py b/libkisao/python/tests/test_ontology.py index fe780fc..22f2120 100644 --- a/libkisao/python/tests/test_ontology.py +++ b/libkisao/python/tests/test_ontology.py @@ -76,3 +76,6 @@ def test_term_names_are_lowercased(self): 'The following terms may have invalid names:\n {}' ).format('\n '.join(sorted(invalid_terms))) warnings.warn(msg) + +if __name__ == "__main__": + unittest.main() diff --git a/libkisao/python/tests/test_utils.py b/libkisao/python/tests/test_utils.py index 7f362f9..060329e 100644 --- a/libkisao/python/tests/test_utils.py +++ b/libkisao/python/tests/test_utils.py @@ -44,6 +44,7 @@ def test_sets_of_algorithms_disjoint(self): alg_sets = [ utils.get_ode_algorithms(), utils.get_sde_algorithms(), + utils.get_steadystate_algorithms(), utils.get_pde_algorithms(), utils.get_gillespie_like_algorithms(exact=True, approximate=False), utils.get_gillespie_like_algorithms(exact=False, approximate=True), @@ -131,13 +132,6 @@ def test_gillespie_like_algorithms(self): (exact_terms | approx_terms).difference(all_terms), set()) - def test_rule_based_algorithms(self): - kisao = Kisao() - terms = utils.get_rule_based_algorithms() - - self.assertIn(kisao.get_term('KISAO_0000263'), terms) # NFSim agent-based simulation method - self.assertIn(kisao.get_term('KISAO_0000362'), terms) # implicit-state Doob-Gillespie algorithm - def test_sde_algorithms(self): kisao = Kisao() odes = utils.get_ode_algorithms() @@ -151,6 +145,23 @@ def test_sde_algorithms(self): self.assertEqual(sdes.intersection(odes), set()) self.assertEqual(sdes.intersection(pdes), set()) + def test_steadystate_algorithms(self): + kisao = Kisao() + terms = utils.get_steadystate_algorithms() + + self.assertIn(kisao.get_term('KISAO_0000630'), terms) # root-finding algorithm + self.assertIn(kisao.get_term('KISAO_0000568'), terms) # NLEQ1 + self.assertIn(kisao.get_term('KISAO_0000569'), terms) # NLEQ2 + self.assertIn(kisao.get_term('KISAO_0000355'), terms) # DASPK + self.assertIn(kisao.get_term('KISAO_0000413'), terms) # Exact Newton Method + + self.assertNotIn(kisao.get_term('KISAO_0000499'), terms) # DFBA + + self.assertEqual(terms.intersection(utils.get_hybrid_algorithms()), set()) # disjoint from hybrid terms + self.assertEqual(terms.intersection(utils.get_gillespie_like_algorithms( + exact=True, approximate=False)), set()) # disjoint from Gillespie-like terms + self.assertEqual(terms.intersection(utils.get_ode_algorithms()), set()) # disjoint from ODE terms + def test_pde_algorithms(self): kisao = Kisao() odes = utils.get_ode_algorithms() @@ -398,3 +409,6 @@ def test_get_algorithm_substitution_matrix(self): 'SAME_METHOD') os.remove(filename) + +if __name__ == "__main__": + unittest.main() From 5346c9f4e3e6ee644b4b3a3dfd467949f188b4a0 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 6 Jun 2023 14:34:16 -0700 Subject: [PATCH 14/36] Remove extra '. --- libkisao/python/kisao/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libkisao/python/kisao/utils.py b/libkisao/python/kisao/utils.py index a20b3f3..d98e89b 100644 --- a/libkisao/python/kisao/utils.py +++ b/libkisao/python/kisao/utils.py @@ -497,7 +497,7 @@ def get_preferred_substitute_algorithm(algorithm, alt_algorithms, substitution_p )) if alt_algorithm != algorithm: - msg = "'{}' ({}) will be substituted for '{}'' ({}) at substitution policy '{}'.".format( + msg = "'{}' ({}) will be substituted for '{}' ({}) at substitution policy '{}'.".format( alt_algorithm.name, alt_algorithm.id.partition('#')[2], algorithm.name, algorithm.id.partition('#')[2], substitution_policy.name) From 2b80d841f4085e1d6ee353661e80cf3016711d6b Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 20 Jun 2023 14:23:07 -0700 Subject: [PATCH 15/36] Update getting pandoc. --- .github/workflows/ci.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e33a555..35aa96b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -352,12 +352,8 @@ jobs: # Install pandoc sudo apt-get update -y sudo apt-get install -y --no-install-recommends wget - - wget https://github.com/jgm/pandoc/releases -O /tmp/pandocVersions.html - urlPart=`grep "\.deb" /tmp/pandocVersions.html | head -n 1 | cut -d'/' -f2-7 | cut -d'"' -f1` - wget "https://github.com/$urlPart" -O /tmp/pandoc.deb + wget "https://github.com/jgm/pandoc/releases/download/3.1.3/pandoc-3.1.3-1-amd64.deb" -O /tmp/pandoc.deb sudo dpkg -i /tmp/pandoc.deb - rm /tmp/pandocVersions.html rm /tmp/pandoc.deb # Copy OWL file and LICENSE so it can be bundled into the Python package From e283e0b553551316c61a5895bbcb53d36ce62882 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 20 Jun 2023 14:28:52 -0700 Subject: [PATCH 16/36] Authentication was broken; try without. --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35aa96b..e4f9eca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -148,8 +148,8 @@ jobs: uses: actions/checkout@master with: fetch-depth: 1 - ref: dev - token: ${{ secrets.ADMIN_GITHUB_TOKEN }} +# ref: dev +# token: ${{ secrets.ADMIN_GITHUB_TOKEN }} # Install the requirements for the tests - name: Install Python @@ -240,8 +240,9 @@ jobs: - name: Checkout repo uses: actions/checkout@master with: - ref: dev - token: ${{ secrets.ADMIN_GITHUB_TOKEN }} + fetch-depth: 1 +# ref: dev +# token: ${{ secrets.ADMIN_GITHUB_TOKEN }} - name: Merge dev branch into deploy branch uses: devmasx/merge-branch@v1.3.1 From 4bf4834f9e13785d6efebe8031e095cdfa12c002 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 20 Jun 2023 14:31:20 -0700 Subject: [PATCH 17/36] Pin pip to 23.0.1 --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e4f9eca..ffa6c14 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: - name: Install pip and setuptools run: | python -m pip install --upgrade pip==23.0.1 - python -m pip install --upgrade setuptools + python -m pip install --upgrade pip==23.0.1 - name: Install the Python KiSAO package working-directory: libkisao/python @@ -167,8 +167,8 @@ jobs: - name: Install pip and setuptools run: | - python -m pip install --upgrade pip - python -m pip install --upgrade setuptools + python -m pip install --upgrade pip==23.0.1 + python -m pip install --upgrade pip==23.0.1 - name: Install the Python KiSAO package working-directory: libkisao/python @@ -338,10 +338,10 @@ jobs: restore-keys: | ${{ runner.os }}-pip- - - name: Install pip and setuptools + - name: Install pip run: | - python -m pip install --upgrade pip - python -m pip install --upgrade setuptools + python -m pip install --upgrade pip==23.0.1 + python -m pip install --upgrade pip==23.0.1 # Create PyPI release - name: Create PyPI release From fa84fe672fe65c9cbf465902a011e45f694845f3 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 20 Jun 2023 14:33:26 -0700 Subject: [PATCH 18/36] Pin pip to 23.0.0 --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ffa6c14..de20979 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,8 +31,8 @@ jobs: - name: Install pip and setuptools run: | - python -m pip install --upgrade pip==23.0.1 - python -m pip install --upgrade pip==23.0.1 + python -m pip install --upgrade pip==23.0.0 + python -m pip install --upgrade pip==23.0.0 - name: Install the Python KiSAO package working-directory: libkisao/python @@ -167,8 +167,8 @@ jobs: - name: Install pip and setuptools run: | - python -m pip install --upgrade pip==23.0.1 - python -m pip install --upgrade pip==23.0.1 + python -m pip install --upgrade pip==23.0.0 + python -m pip install --upgrade pip==23.0.0 - name: Install the Python KiSAO package working-directory: libkisao/python @@ -340,8 +340,8 @@ jobs: - name: Install pip run: | - python -m pip install --upgrade pip==23.0.1 - python -m pip install --upgrade pip==23.0.1 + python -m pip install --upgrade pip==23.0.0 + python -m pip install --upgrade pip==23.0.0 # Create PyPI release - name: Create PyPI release From eb261ff3c8f445da7feb68e2e0c59b6f1e8fc0b7 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 20 Jun 2023 14:53:17 -0700 Subject: [PATCH 19/36] Update to use $GITHUB_OUTPUT --- .github/workflows/ci.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index de20979..a15e7d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,7 +104,7 @@ jobs: run: | mainBranch=$(git symbolic-ref refs/remotes/origin/HEAD | cut -d '/' -f 4) mainBranchHeadRevision=$(git rev-parse refs/remotes/origin/${mainBranch}) - echo "::set-output name=mainBranchHeadRevision::$mainBranchHeadRevision" + echo "mainBranchHeadRevision=$mainBranchHeadRevision" >> $GITHUB_OUTPUT determineIfReleaseNeeded: name: Determine if the package should be released @@ -127,13 +127,16 @@ jobs: release="0" if [[ "${{ github.ref }}" =~ ^refs/tags/ ]]; then + echo "First check passed" tag_hash=$(git rev-parse "${{ github.ref }}") if [ "$tag_hash" == "${{ needs.getMainBranchHeadRevision.outputs.mainBranchHeadRevision }}" ]; then + echo "Second check passed" release="1" fi fi - echo "::set-output name=release::$release" + echo "release=$release" >> $GITHUB_OUTPUT + echo "release=$release" commitCompiledDocumentation: name: Commit and push compiled documentation to GitHub @@ -220,7 +223,7 @@ jobs: else docsChanged=0 fi - echo "::set-output name=docsChanged::$docsChanged" + echo "docsChanged=$docsChanged" >> $GITHUB_OUTPUT - name: Push the compiled documentation if: startsWith(github.ref, 'refs/tags/') && steps.commit-docs.outputs.docsChanged == '1' @@ -257,7 +260,7 @@ jobs: TAG: ${{ github.ref }} run: | version="${TAG/refs\/tags\//}" - echo "::set-output name=version::$version" + echo "version=$version" >> $GITHUB_OUTPUT - name: Create GitHub release uses: "marvinpinto/action-automatic-releases@latest" From ae0dcaf345988cbfe8c0463b3bbd44626cf818d5 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 20 Jun 2023 14:57:35 -0700 Subject: [PATCH 20/36] Print the tag_hash. --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a15e7d0..ee10671 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -129,6 +129,7 @@ jobs: if [[ "${{ github.ref }}" =~ ^refs/tags/ ]]; then echo "First check passed" tag_hash=$(git rev-parse "${{ github.ref }}") + echo "tag_hash: $tag_hash" if [ "$tag_hash" == "${{ needs.getMainBranchHeadRevision.outputs.mainBranchHeadRevision }}" ]; then echo "Second check passed" release="1" From 09f3d1d165ccccc671569d9b3858d05b46ba3128 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 28 Jun 2023 14:13:21 -0700 Subject: [PATCH 21/36] Make 407 the root-finding steady state algorithm. And make 630 the generic one. The reason is because many existing SED-ML models (and COPASI output) uses 407 to mean 'steady state', not 630. --- kisao.owl | 39 +++++++++++++++-------------- libkisao/python/tests/test_utils.py | 2 +- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/kisao.owl b/kisao.owl index 8a8faf5..b6d453c 100644 --- a/kisao.owl +++ b/kisao.owl @@ -8060,19 +8060,25 @@ DASPK is written in Fortran. - + + + + + + + 2012-01-17 AZ - true + false Requested by Frank T. Bergmann on Sunday, November 27, 2011 4:45:30 PM. - steady state method - A method looking for a steady state of a dynamic system. + steady state root-finding method + Method for finding the root of a function (f(x) = 0). @@ -8950,8 +8956,8 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- - + 2012-11-29 AZ Requested by Frank T. Bergmann on Thursday, November 29, 2012 9:51:58 AM. @@ -10644,8 +10650,8 @@ Levenberg first suggested an improvement to the Newton method in order to make i - + @@ -12349,8 +12355,8 @@ Min sum(|fluxAi - fluxBi|) - + 2020-10-29 JRK http://identifiers.org/biosimulators/cobratoolbox @@ -12591,8 +12597,8 @@ Min sum(|fluxAi - fluxBi|) - + 2020-10-29 JRK true @@ -12734,8 +12740,8 @@ Min sum(|fluxAi - fluxBi|) - + 2020-10-29 JRK true @@ -13593,17 +13599,12 @@ Example system of equations: - - - - - - 2021-06-01 JRK true - root-finding method - Method for finding the root of a function (f(x) = 0). + general steady state method + root-finding method + A method looking for a steady state of a dynamic system. @@ -13611,7 +13612,7 @@ Example system of equations: - + 2021-06-01 JRK true @@ -14243,7 +14244,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - + diff --git a/libkisao/python/tests/test_utils.py b/libkisao/python/tests/test_utils.py index 060329e..58a3c14 100644 --- a/libkisao/python/tests/test_utils.py +++ b/libkisao/python/tests/test_utils.py @@ -149,7 +149,7 @@ def test_steadystate_algorithms(self): kisao = Kisao() terms = utils.get_steadystate_algorithms() - self.assertIn(kisao.get_term('KISAO_0000630'), terms) # root-finding algorithm + self.assertIn(kisao.get_term('KISAO_0000407'), terms) # steady state root-finding algorithm self.assertIn(kisao.get_term('KISAO_0000568'), terms) # NLEQ1 self.assertIn(kisao.get_term('KISAO_0000569'), terms) # NLEQ2 self.assertIn(kisao.get_term('KISAO_0000355'), terms) # DASPK From 71384fefa230e339c2fe6cb61f9540395e1bd0b6 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 28 Jun 2023 14:15:17 -0700 Subject: [PATCH 22/36] Update version number. --- libkisao/python/kisao/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libkisao/python/kisao/_version.py b/libkisao/python/kisao/_version.py index 81440c8..3d1d4f4 100644 --- a/libkisao/python/kisao/_version.py +++ b/libkisao/python/kisao/_version.py @@ -1 +1 @@ -__version__ = '2.32' +__version__ = '2.33' From 8e6817c25e0735991ccf9dc2beaf12860067e90d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 8 Dec 2023 12:13:54 -0800 Subject: [PATCH 23/36] Add 698, 'particle coordinates'. Should be used for spatial output. --- kisao.owl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/kisao.owl b/kisao.owl index b6d453c..58b196b 100644 --- a/kisao.owl +++ b/kisao.owl @@ -14947,6 +14947,24 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + + + + + + 12-08-2023 + LPS + particle coordinates + The set of coordinates for all particles of these entities. + + + + From de6dd6d175a9ac40169c61c48859b6c092fda1be Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 13 Mar 2024 16:41:00 -0700 Subject: [PATCH 24/36] Create new 'DAE Solver' category; put IDA-like things in it. IDA solvers are ODE solvers plus algebraic rules, not steady state solvers. --- kisao.owl | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 130 insertions(+), 8 deletions(-) diff --git a/kisao.owl b/kisao.owl index 58b196b..9e4c0e3 100644 --- a/kisao.owl +++ b/kisao.owl @@ -544,13 +544,13 @@ dk SBML-SAT SUNDIALS + libRoadRunner http://identifiers.org/biosimulators/bionetgen http://identifiers.org/biosimulators/jsim http://identifiers.org/biosimulators/opencor http://identifiers.org/biosimulators/pysces http://identifiers.org/biosimulators/tellurium http://identifiers.org/biosimulators/vcell - libRoadRunner CVODE citeulike:1832863 http://identifiers.org/doi/10.1145/1089014.1089020 @@ -8720,7 +8720,7 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- - + @@ -11588,10 +11588,10 @@ Levenberg first suggested an improvement to the Newton method in order to make i JRK SUNDIALS SciPy + libRoadRunner http://identifiers.org/biosimulators/copasi http://identifiers.org/biosimulators/gillespy2 http://identifiers.org/biosimulators/tellurium - libRoadRunner initial step size Initial time step size. @@ -13568,8 +13568,8 @@ Example system of equations: - 2012-06-01 JRK + 2012-06-01 true modelling and simulation algorithm parameter value A value of a parameter of an algorithm @@ -13613,8 +13613,8 @@ Example system of equations: - 2021-06-01 JRK + 2021-06-01 true iterative root-finding method Iterative method for finding the root of a function (f(x) = 0). @@ -13662,8 +13662,8 @@ This method only involves evaluations of f. This method is suitable for non-stif - 2021-06-04 JRK + 2021-06-04 scaled property @@ -14965,6 +14965,129 @@ This method only involves evaluations of f. This method is suitable for non-stif + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + 2024-03-13 + lps + false + DAE Solver + differential algebraic equation solver + A DAE solver is the general category of packages such as IDA-like methods [http://identifiers.org/biomodels.kisao/KISAO_0000432] that solve systems of differential algebraic equations (DAEs). DAEs are a superset of ODEs that may additionally contain algebraic equations or 'fast' reactions. + + + + + differential algebraic equation solver + EXACT + + + + @@ -16457,7 +16580,6 @@ This method only involves evaluations of f. This method is suitable for non-stif - @@ -16558,5 +16680,5 @@ This method only involves evaluations of f. This method is suitable for non-stif - + From 1e855b88e47dea4036e0fa8cf3396dd0f36b5326 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 13 Mar 2024 16:58:13 -0700 Subject: [PATCH 25/36] Add functionality in libkisao for DAE solvers. --- libkisao/python/kisao/data_model.py | 5 +++-- libkisao/python/kisao/utils.py | 14 ++++++++++++++ libkisao/python/tests/test_utils.py | 21 ++++++++++++++++++++- 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/libkisao/python/kisao/data_model.py b/libkisao/python/kisao/data_model.py index 43f3157..a9ebe44 100644 --- a/libkisao/python/kisao/data_model.py +++ b/libkisao/python/kisao/data_model.py @@ -35,10 +35,11 @@ ID_HAS_CHARACTERISTIC_RELATIONSHIP = 'KISAO_0000245' # has characteristic -ID_ODE_PROBLEM_CHARACTERISTIC = 'KISAO_0000374' # ordinary differential equation problem ID_SDE_PROBLEM_CHARACTERISTIC = 'KISAO_0000371' # stochastic differential equation problem -ID_STEADYSTATE_PROBLEM_CHARACTERISTIC = 'KISAO_0000696' # steady state root-finding problem ID_PDE_PROBLEM_CHARACTERISTIC = 'KISAO_0000372' # partial differential equation problem +ID_DAE_PROBLEM_CHARACTERISTIC = 'KISAO_0000373' # differential algebraic equation problem +ID_ODE_PROBLEM_CHARACTERISTIC = 'KISAO_0000374' # ordinary differential equation problem +ID_STEADYSTATE_PROBLEM_CHARACTERISTIC = 'KISAO_0000696' # steady state root-finding problem ID_EXACT_SOLUTION_CHARACTERISTIC = 'KISAO_0000236' # exact solution ID_APPROXIMATE_SOLUTION_CHARACTERISTIC = 'KISAO_0000237' # approximate solution diff --git a/libkisao/python/kisao/utils.py b/libkisao/python/kisao/utils.py index d98e89b..ad738db 100644 --- a/libkisao/python/kisao/utils.py +++ b/libkisao/python/kisao/utils.py @@ -13,6 +13,7 @@ ID_SDE_PROBLEM_CHARACTERISTIC, ID_STEADYSTATE_PROBLEM_CHARACTERISTIC, ID_PDE_PROBLEM_CHARACTERISTIC, + ID_DAE_PROBLEM_CHARACTERISTIC, ID_EXACT_SOLUTION_CHARACTERISTIC, ID_APPROXIMATE_SOLUTION_CHARACTERISTIC, ID_ALGORITHM, @@ -45,6 +46,7 @@ 'get_rule_based_algorithms', 'get_sde_algorithms', 'get_pde_algorithms', + 'get_dae_algorithms', 'get_flux_balance_algorithms', 'get_logical_simulation_algorithms', 'get_logical_stable_state_search_algorithms', @@ -140,6 +142,18 @@ def get_ode_algorithms(): return get_terms_with_characteristics([ID_ALGORITHM], [ID_ODE_PROBLEM_CHARACTERISTIC]) +@ functools.lru_cache(maxsize=None) +def get_dae_algorithms(): + """ Get the terms for DAE integration algorithms:: + + 'modelling simulation algorithm' and 'has characteristic' some 'differential algebraic equation problem' + + Returns: + :obj:`set` of :obj:`pronto.Term`: terms + """ + return get_terms_with_characteristics([ID_ALGORITHM], [ID_DAE_PROBLEM_CHARACTERISTIC]) + + @ functools.lru_cache(maxsize=None) def get_gillespie_like_algorithms(exact=True, approximate=False): """ Get the terms for algorithms that execute similar simulations to Gillespie's diff --git a/libkisao/python/tests/test_utils.py b/libkisao/python/tests/test_utils.py index 58a3c14..1e488ca 100644 --- a/libkisao/python/tests/test_utils.py +++ b/libkisao/python/tests/test_utils.py @@ -73,6 +73,8 @@ def test_ode_algorithms(self): self.assertIn(kisao.get_term('KISAO_0000086'), terms) # Fehlberg method self.assertIn(kisao.get_term('KISAO_0000088'), terms) # LSODA self.assertIn(kisao.get_term('KISAO_0000560'), terms) # LSODA/LSODAR hybrid method + self.assertIn(kisao.get_term('KISAO_0000355'), terms) # DASPK + self.assertIn(kisao.get_term('KISAO_0000283'), terms) # IDA self.assertNotIn(kisao.get_term('KISAO_0000499'), terms) # DFBA @@ -145,6 +147,24 @@ def test_sde_algorithms(self): self.assertEqual(sdes.intersection(odes), set()) self.assertEqual(sdes.intersection(pdes), set()) + def test_dae_algorithms(self): + kisao = Kisao() + daes = utils.get_dae_algorithms() + odes = utils.get_ode_algorithms() + + self.assertNotIn(kisao.get_term('KISAO_0000019'), daes) # CVODE + self.assertNotIn(kisao.get_term('KISAO_0000030'), daes) # Euler forward + self.assertIn(kisao.get_term('KISAO_0000355'), daes) # DASPK + self.assertIn(kisao.get_term('KISAO_0000283'), daes) # IDA + + self.assertNotIn(kisao.get_term('KISAO_0000499'), daes) # DFBA + + self.assertEqual(daes.intersection(odes), daes) # subset of ODE algorithms + self.assertEqual(daes.intersection(utils.get_gillespie_like_algorithms( + exact=True, approximate=False)), set()) # disjoint from Gillespie-like terms + self.assertEqual(daes.intersection(utils.get_gillespie_like_algorithms( + exact=False, approximate=True)), set()) # disjoint from Gillespie-like terms + def test_steadystate_algorithms(self): kisao = Kisao() terms = utils.get_steadystate_algorithms() @@ -152,7 +172,6 @@ def test_steadystate_algorithms(self): self.assertIn(kisao.get_term('KISAO_0000407'), terms) # steady state root-finding algorithm self.assertIn(kisao.get_term('KISAO_0000568'), terms) # NLEQ1 self.assertIn(kisao.get_term('KISAO_0000569'), terms) # NLEQ2 - self.assertIn(kisao.get_term('KISAO_0000355'), terms) # DASPK self.assertIn(kisao.get_term('KISAO_0000413'), terms) # Exact Newton Method self.assertNotIn(kisao.get_term('KISAO_0000499'), terms) # DFBA From 55216c2d88d50be4037a0e04e243d7ffaaf34f31 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 13 Mar 2024 17:04:30 -0700 Subject: [PATCH 26/36] KINSOL isn't a DAE solver. --- kisao.owl | 6 ------ 1 file changed, 6 deletions(-) diff --git a/kisao.owl b/kisao.owl index 9e4c0e3..9317840 100644 --- a/kisao.owl +++ b/kisao.owl @@ -4159,12 +4159,6 @@ Reduced models can be determined in many ways such as using mass conservation la - - - - - - From 939c58b9764f90b21bca21b3f8cfa2df952b48b5 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 13 Mar 2024 17:21:15 -0700 Subject: [PATCH 27/36] Tag everything that's DAE as additionally being ODE. --- kisao.owl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/kisao.owl b/kisao.owl index 9317840..9b20597 100644 --- a/kisao.owl +++ b/kisao.owl @@ -4159,6 +4159,12 @@ Reduced models can be determined in many ways such as using mass conservation la + + + + + + @@ -7359,6 +7365,12 @@ DASPK is written in Fortran. + + + + + + AZ differential-algebraic equation problem DAE @@ -13493,6 +13505,12 @@ CVODE is used for ordinary differential equation (ODE) systems. IDA is used for + + + + + + From 8176bbbca67852b50f70b59196dc5659f34bb9bc Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 13 Mar 2024 17:23:10 -0700 Subject: [PATCH 28/36] Tag KINSOL as ODE solver again. --- kisao.owl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kisao.owl b/kisao.owl index 9b20597..59d15a8 100644 --- a/kisao.owl +++ b/kisao.owl @@ -4165,6 +4165,12 @@ Reduced models can be determined in many ways such as using mass conservation la + + + + + + From a075c95f70a49320c66793090e0ca13cebbc7fde Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 13 Mar 2024 17:36:24 -0700 Subject: [PATCH 29/36] Dropping DAE/ODE labels from many things. KINSOL and the 'method for solving a system of linear equations'. It may be that some of the children of this are actually DAE solvers, but if so, someone with more knowledge than I is going to have to tell us. --- kisao.owl | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/kisao.owl b/kisao.owl index 59d15a8..bf0c02d 100644 --- a/kisao.owl +++ b/kisao.owl @@ -4159,18 +4159,6 @@ Reduced models can be determined in many ways such as using mass conservation la - - - - - - - - - - - - @@ -13505,18 +13493,6 @@ CVODE is used for ordinary differential equation (ODE) systems. IDA is used for - - - - - - - - - - - - From ba189f1910c426879e1d3e80f29d72dfc1bd8ff0 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 14 Mar 2024 12:19:37 -0700 Subject: [PATCH 30/36] Update version numbers and changelog. --- .github/workflows/BioPortal-submission.json | 4 ++-- CHANGELOG.md | 8 ++++++++ kisao.owl | 2 +- kisao_full.owl | 2 +- libkisao/python/kisao/_version.py | 2 +- updating.md | 10 ++++++++++ 6 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 updating.md diff --git a/.github/workflows/BioPortal-submission.json b/.github/workflows/BioPortal-submission.json index c35ebdf..5df24a1 100644 --- a/.github/workflows/BioPortal-submission.json +++ b/.github/workflows/BioPortal-submission.json @@ -1,9 +1,9 @@ { "ontology": "https://data.bioontology.org/ontologies/KISAO", - "pullLocation": "https://raw.githubusercontent.com/SED-ML/KiSAO/2.32/kisao.owl", + "pullLocation": "https://raw.githubusercontent.com/SED-ML/KiSAO/2.34/kisao.owl", "hasOntologyLanguage": "OWL", "description": "The Kinetic Simulation Algorithm Ontology (KiSAO) is an ontology of algorithms for simulating and analyzing biological models, as well as the characteristics of these algorithms, their input parameters, and their outputs. In addition, KiSAO captures relationships among algorithms, their parameters, and their outputs.", - "version": "2.32", + "version": "2.34", "released": "2023-05-24T02:54:00-00:00", "status": "production", "homepage": "http://biomodels.net/kisao/", diff --git a/CHANGELOG.md b/CHANGELOG.md index 673f6cf..5714ef8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2.34 (OWL 2) +- Added organizational 'DAE solver' (`KISAO_0000699`) for collecting solvers that can solve DAE problems. +- Removed 'has characteristic' some 'differential-algebraic equation problem' from KINSOL and from 'method for solving a system of linear equations'. +- The characteristics 'differential-algebraic equation problem' and ''ordinary differential equation problem' are no longer disjoint (and in fact the former are a complete subset of the latter). + +## 2.33 (OWL 2) +- Reorganized the steady state algorithms: moved flux balance and steady state to 'general steady state method' (`KISAO_0000630`), and others to the 'steady state root-finding method' (`KISAO_0000407`) + ## 2.32 (OWL 2) - Added algorithm concepts for eQuilibrator. - Added organizational 'ODE solver' (`KISAO_0000694`) for noting in SED-ML that some solver should be used, but which is not important. diff --git a/kisao.owl b/kisao.owl index bf0c02d..46c662e 100644 --- a/kisao.owl +++ b/kisao.owl @@ -19,7 +19,7 @@ Kinetic Simulation Algorithm Ontology (KiSAO) http://co.mbine.org/standards/kisao http://identifiers.org/pubmed/22027554 - 2.32 + 2.34 The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. diff --git a/kisao_full.owl b/kisao_full.owl index 86e0a16..62c4a6c 100644 --- a/kisao_full.owl +++ b/kisao_full.owl @@ -19,7 +19,7 @@ Kinetic Simulation Algorithm Ontology (full version, containing deprecated classes) http://co.mbine.org/standards/kisao http://identifiers.org/pubmed/22027554 - 2.33 + 2.34 The Kinetic Simulation Algorithm Ontology (KiSAO) classifies algorithms available for the simulation and analysis of models in biology, and their characteristics and the parameters required for their use. diff --git a/libkisao/python/kisao/_version.py b/libkisao/python/kisao/_version.py index 3d1d4f4..4ed8e77 100644 --- a/libkisao/python/kisao/_version.py +++ b/libkisao/python/kisao/_version.py @@ -1 +1 @@ -__version__ = '2.33' +__version__ = '2.34' diff --git a/updating.md b/updating.md new file mode 100644 index 0000000..388ba46 --- /dev/null +++ b/updating.md @@ -0,0 +1,10 @@ +# What needs to be updated when making a new release + +Put new version into: +* libkisao/python/kisao/_version.py +* kisao.owl (i.e. 2.34) +* kisao_full.owl (i.e. 2.34) +* .github/workflows/BioPortal-submission.json + +Summarize changes in: +* CHANGELOG.md From abfce7a10a00cbe4fc21d4c26e48bae49d1bb2da Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 14 Mar 2024 13:59:58 -0700 Subject: [PATCH 31/36] Typo fix. #108 --- kisao.owl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kisao.owl b/kisao.owl index 46c662e..90afa48 100644 --- a/kisao.owl +++ b/kisao.owl @@ -14570,7 +14570,7 @@ This method only involves evaluations of f. This method is suitable for non-stif WL true biological state optimization method - A method for computing the optimal state of a biological system accordion to a particular objective. + A method for computing the optimal state of a biological system according to a particular objective. From 5c128eecd370d88345c3f6e58dcf5f8ec15d8d87 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 14 Mar 2024 15:56:35 -0700 Subject: [PATCH 32/36] Add instructions about tagging for release. --- updating.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/updating.md b/updating.md index 388ba46..d4366b2 100644 --- a/updating.md +++ b/updating.md @@ -8,3 +8,7 @@ Put new version into: Summarize changes in: * CHANGELOG.md + +Then when everything is merged and passes the tests, tag the release +git tag -a 2.34 -m "version 2.34" +git push origin --tags \ No newline at end of file From 0a36fba1c623f96b2528f126dc13b4adfc760aa1 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 10 Oct 2024 11:47:20 -0700 Subject: [PATCH 33/36] Update updating.md Format md file correctly. --- updating.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/updating.md b/updating.md index d4366b2..fd516bc 100644 --- a/updating.md +++ b/updating.md @@ -9,6 +9,8 @@ Put new version into: Summarize changes in: * CHANGELOG.md -Then when everything is merged and passes the tests, tag the release +Then when everything is merged and passes the tests, tag the release: +``` git tag -a 2.34 -m "version 2.34" -git push origin --tags \ No newline at end of file +git push origin --tags +``` From ca5604d5ee511fdef1f2b0d29247dc2d889fc063 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 10 Oct 2024 11:51:33 -0700 Subject: [PATCH 34/36] Fix lint. --- libkisao/python/kisao/utils.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/libkisao/python/kisao/utils.py b/libkisao/python/kisao/utils.py index ad738db..03b88dc 100644 --- a/libkisao/python/kisao/utils.py +++ b/libkisao/python/kisao/utils.py @@ -130,7 +130,7 @@ def get_terms_with_characteristics(parent_ids, characteristic_ids=None): return terms -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_ode_algorithms(): """ Get the terms for ODE integration algorithms:: @@ -142,7 +142,7 @@ def get_ode_algorithms(): return get_terms_with_characteristics([ID_ALGORITHM], [ID_ODE_PROBLEM_CHARACTERISTIC]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_dae_algorithms(): """ Get the terms for DAE integration algorithms:: @@ -154,7 +154,7 @@ def get_dae_algorithms(): return get_terms_with_characteristics([ID_ALGORITHM], [ID_DAE_PROBLEM_CHARACTERISTIC]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_gillespie_like_algorithms(exact=True, approximate=False): """ Get the terms for algorithms that execute similar simulations to Gillespie's algorithm (KISAO_0000029). @@ -189,7 +189,7 @@ def get_gillespie_like_algorithms(exact=True, approximate=False): return get_terms_with_characteristics([ID_GILLESPIE_LIKE_ALGORITHM], characteristics) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_tau_leaping_algorithms(): """ Get the terms for tau-leaping algorithms (KISAO_0000039).:: @@ -201,7 +201,7 @@ def get_tau_leaping_algorithms(): return get_terms_with_characteristics([ID_TAU_LEAPING_ALGORITHM]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_rule_based_algorithms(): """ Get the terms for rule-based simulation algorithms (KISAO_0000363).:: @@ -213,7 +213,7 @@ def get_rule_based_algorithms(): return get_terms_with_characteristics([ID_RULE_BASED_ALGORITHM]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_sde_algorithms(): """ Get the terms for rule-based simulation algorithms (KISAO_0000363).:: @@ -225,7 +225,7 @@ def get_sde_algorithms(): return get_terms_with_characteristics([ID_ALGORITHM], [ID_SDE_PROBLEM_CHARACTERISTIC]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_steadystate_algorithms(): """ Get the terms for rule-based simulation algorithms (KISAO_0000363).:: @@ -237,7 +237,7 @@ def get_steadystate_algorithms(): return get_terms_with_characteristics([ID_ALGORITHM], [ID_STEADYSTATE_PROBLEM_CHARACTERISTIC]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_pde_algorithms(): """ Get the terms for rule-based simulation algorithms (KISAO_0000363).:: @@ -249,7 +249,7 @@ def get_pde_algorithms(): return get_terms_with_characteristics([ID_ALGORITHM], [ID_PDE_PROBLEM_CHARACTERISTIC]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_flux_balance_algorithms(): """ Get the terms for flux balance algorithms (KISAO_0000622).:: @@ -261,7 +261,7 @@ def get_flux_balance_algorithms(): return get_terms_with_characteristics([ID_FLUX_BALANCE_ALGORITHM]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_logical_simulation_algorithms(): """ Get the terms for logical simulation algorithms (KISAO_0000448).:: @@ -273,7 +273,7 @@ def get_logical_simulation_algorithms(): return get_terms_with_characteristics([ID_LOGICAL_SIMULATION_ALGORITHM]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_logical_stable_state_search_algorithms(): """ Get the terms for algorithms for finding the stable states of logical models (KISAO_0000660).:: @@ -285,7 +285,7 @@ def get_logical_stable_state_search_algorithms(): return get_terms_with_characteristics([ID_LOGICAL_STABLE_STATE_SEARCH_ALGORITHM]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_logical_trap_space_search_algorithms(): """ Get the terms for algorithms for finding the trap spaces of logical models (KISAO_0000661).:: @@ -297,7 +297,7 @@ def get_logical_trap_space_search_algorithms(): return get_terms_with_characteristics([ID_LOGICAL_TRAP_SPACE_SEARCH_ALGORITHM]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_hybrid_algorithms(): """ Get the terms for hybrid algorithms (KISAO_0000352).:: @@ -309,7 +309,7 @@ def get_hybrid_algorithms(): return get_terms_with_characteristics([ID_HYBRID_ALGORITHM]) -@ functools.lru_cache(maxsize=None) +@functools.lru_cache(maxsize=None) def get_parents_and_children_of(term): """ Get the parents and children of the given term.:: From ad07a9788ddc6e55fcb748fe57b5064feb86f8a0 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Wed, 30 Oct 2024 16:52:54 -0700 Subject: [PATCH 35/36] Fix dates. Replace incorrectly-formatted dates, a la #116 --- kisao.owl | 70 +++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/kisao.owl b/kisao.owl index 90afa48..b9656ce 100644 --- a/kisao.owl +++ b/kisao.owl @@ -319,7 +319,7 @@ - 24JAN2009 + 2009-01-24 NLN weighted stochastic simulation algorithm http://identifiers.org/pubmed/19045316 @@ -13470,7 +13470,7 @@ CVODE is used for ordinary differential equation (ODE) systems. IDA is used for - 2021--04-27 + 2021-04-27 JRK true flux balance method @@ -13964,7 +13964,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-04-2021 + 2021-06-04 JRK rate Speed at which a process is occuring such as the temporal rate of a chemical reaction, @@ -15086,7 +15086,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS true systems property @@ -15105,7 +15105,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS concentration control coefficient matrix (unscaled) The unscaled concentration control coefficient matrix. The dimensions are species by reactions. @@ -15123,7 +15123,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS control coefficient (scaled) A scaled control coefficient of any dependent element (such as a reaction or a floating species) with respect to an independent element (such as a global parameter or boundary species). @@ -15141,7 +15141,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS control coefficient (unscaled) An unscaled control coefficient of any dependent element (such as a reaction or a floating species) with respect to an independent element (such as a global parameter or boundary species). @@ -15159,7 +15159,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS elasticity matrix (unscaled) The unscaled elasticity matrix. The dimensions are reactions by species. @@ -15177,7 +15177,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS elasticity coefficient (unscaled) An unscaled elasticity coefficient of any reaction with respect to an independent element (such as a global parameter or boundary species). @@ -15195,7 +15195,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS elasticity matrix (scaled) The scaled elasticity matrix. The dimensions are reactions by species. @@ -15213,7 +15213,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS elasticity coefficient (scaled) A scaled elasticity coefficient of any reaction with respect to an independent element (such as a global parameter or boundary species). @@ -15225,7 +15225,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS reduced stoichiometry matrix The reduced stoichiometry matrix. The dimensions are species by reactions. @@ -15237,7 +15237,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS reduced Jacobian matrix The reduced Jacobian matrix. The dimensions are species by species. @@ -15249,7 +15249,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS reduced eigenvalue matrix The reduced eigenvalue matrix of a model. The dimensions are species by two, where the first column is the real part of the eigenvalues, and the second column is the imaginary part of the eigenvalues. @@ -15261,7 +15261,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS stoichiometry matrix full stochiometry matrix @@ -15274,7 +15274,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS Jacobian matrix full Jacobian matrix @@ -15287,7 +15287,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS Eigenvalue matrix full eigenvalue matrix @@ -15306,7 +15306,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS flux control coefficient matrix (unscaled) The unscaled flux control coefficient matrix. The dimensions are reactions by reactions. @@ -15324,7 +15324,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS flux control coefficient matrix (scaled) The scaled flux control coefficient matrix. The dimensions are reactions by reactions. @@ -15336,7 +15336,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS link matrix The link matrix of a model. @@ -15348,7 +15348,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS kernel matrix The Kernel matrix of a model. @@ -15360,7 +15360,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS L0 matrix The L0 matrix of a model. @@ -15372,7 +15372,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS Nr matrix The Nr matrix of a model. @@ -15383,7 +15383,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS true model and simulation property characteristic @@ -15396,7 +15396,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS true intensive property @@ -15410,7 +15410,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS extensive property https://en.wikipedia.org/wiki/Intensive_and_extensive_properties @@ -15423,7 +15423,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS true aggregation function @@ -15507,7 +15507,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS true model and simulation property @@ -15520,7 +15520,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS time The implied time variable of the model state. @@ -15544,7 +15544,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS rate of change rate @@ -15563,7 +15563,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS concentration control coefficient matrix (scaled) The scaled concentration control coefficient matrix. The dimensions are species by reactions. @@ -15581,7 +15581,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS amount The extensive quantity amount. @@ -15599,7 +15599,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS particle number The extensive quantity particle number, or, the molar amount of the entity multiplied by Avogadro's number. @@ -15617,7 +15617,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS concentration The intensive quantity concentration, or, the amount of the entity with respect to the entity in which it resides. @@ -15635,7 +15635,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - 06-03-2021 + 2021-06-03 LPS temperature The intensive quantity temperature. From 4fc03c9e6b867143f5c997f21c4627cca3e273e4 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 22 Nov 2024 13:31:06 -0800 Subject: [PATCH 36/36] Fix for #117 * Multiple comments combined into a single comment. * Multiple labels converted to a label and a definition. * The 'has characteristic" reduced to a single domain and range; both this and 'is characteristic of' set to be inverses of each other (instead of just one being flagged as the inverse of the other). --- kisao.owl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/kisao.owl b/kisao.owl index b9656ce..174b10e 100644 --- a/kisao.owl +++ b/kisao.owl @@ -117,11 +117,9 @@ - - has characteristic - 'has characteristic' links algorithms to the characteristics, they possess. + 'has characteristic' links algorithms to the characteristics they possess. @@ -9256,8 +9254,9 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- 2014-04-25 AZ - Requested by Andrzej Kierzek on Thursday, April 24, 2014 12:40:35 PM - Used to simulate systems involving reactions with propensities varying by many orders of magnitude. + Requested by Andrzej Kierzek on Thursday, April 24, 2014 12:40:35 PM + +Used to simulate systems involving reactions with propensities varying by many orders of magnitude. maximal timestep method http://identifiers.org/pubmed/14990466 Hybrid simulation algorithm [http://www.biomodels.net/kisao/KISAO#KISAO_0000352] combining Gibson and Bruck algorithm [http://www.biomodels.net/kisao/KISAO#KISAO_0000027] with the Gillespie tau-leap method [http://www.biomodels.net/kisao/KISAO#KISAO_0000039]. @@ -13955,7 +13954,7 @@ This method only involves evaluations of f. This method is suitable for non-stif 2021-06-04 JRK amount rate - rate of a process in extensive/absolute units such as reactions per second. + rate of a process in extensive/absolute units such as reactions per second.