diff --git a/.github/workflows/BioPortal-submission.json b/.github/workflows/BioPortal-submission.json index 4bc042b..5df24a1 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.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.14", - "released": "2021-04-29T02:54:00-00:00", + "version": "2.34", + "released": "2023-05-24T02:54:00-00:00", "status": "production", "homepage": "http://biomodels.net/kisao/", "documentation": "http://biomodels.net/kisao/", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 26afa9e..ee10671 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 - python -m pip install --upgrade setuptools + 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 @@ -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,17 @@ jobs: release="0" 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" 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 @@ -148,8 +152,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 @@ -167,8 +171,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.0 + python -m pip install --upgrade pip==23.0.0 - name: Install the Python KiSAO package working-directory: libkisao/python @@ -220,7 +224,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' @@ -240,8 +244,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 @@ -256,7 +261,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" @@ -337,10 +342,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.0 + python -m pip install --upgrade pip==23.0.0 # Create PyPI release - name: Create PyPI release @@ -352,12 +357,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 diff --git a/CHANGELOG.md b/CHANGELOG.md index d55e6fd..16aa7f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,25 @@ # Changelog -## 2.31 (OWL 2) +## 2.35 (OWL 2) - Added algorithms and characteristics for attractor methods in mpbn +## 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. +- 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 + ## 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 14dafce..70dd2ee 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.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. @@ -117,11 +117,9 @@ - - has characteristic - 'has characteristic' links algorithms to the characteristics, they possess. + 'has characteristic' links algorithms to the characteristics they possess. @@ -319,7 +317,7 @@ - 24JAN2009 + 2009-01-24 NLN weighted stochastic simulation algorithm http://identifiers.org/pubmed/19045316 @@ -544,13 +542,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 @@ -2547,7 +2545,7 @@ It is an 'embedded Runge-Kutta method' [http://identifiers.org/biomode - + @@ -2713,6 +2711,12 @@ It is an 'embedded Runge-Kutta method' [http://identifiers.org/biomode + + + + + + 2008-07-08 NLN continuous variable @@ -4153,12 +4157,6 @@ Reduced models can be determined in many ways such as using mass conservation la - - - - - - @@ -4395,25 +4393,13 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - - - - - - - + - - - - - - @@ -4422,8 +4408,8 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - - + + @@ -4457,11 +4443,11 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - + - + @@ -4470,12 +4456,6 @@ IDA is written in C, but derived from the package DASPK [http://identifiers.org/ - - - - - - 2011-05-10 AZ Milstein method @@ -7377,6 +7357,12 @@ DASPK is written in Fortran. + + + + + + AZ differential-algebraic equation problem DAE @@ -7433,7 +7419,7 @@ DASPK is written in Fortran. - + @@ -8072,20 +8058,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). @@ -8154,7 +8145,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,... @@ -8727,7 +8718,7 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- - + @@ -8754,7 +8745,7 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- - + @@ -8963,8 +8954,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. @@ -9263,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]. @@ -9308,6 +9300,12 @@ Hierarchical cluster-based partial least squares regression method uses fuzzy C- + + + + + + 2015-04-23 AZ true @@ -10651,8 +10649,8 @@ Levenberg first suggested an improvement to the Newton method in order to make i - + @@ -11589,10 +11587,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. @@ -11860,17 +11858,23 @@ Levenberg first suggested an improvement to the Newton method in order to make i - + - - + + - - + + + + + + + + 2020-10-29 @@ -12350,8 +12354,8 @@ Min sum(|fluxAi - fluxBi|) - + 2020-10-29 JRK http://identifiers.org/biosimulators/cobratoolbox @@ -12592,7 +12596,8 @@ Min sum(|fluxAi - fluxBi|) - + + 2020-10-29 JRK true @@ -12734,8 +12739,8 @@ Min sum(|fluxAi - fluxBi|) - + 2020-10-29 JRK true @@ -13457,8 +13462,14 @@ CVODE is used for ordinary differential equation (ODE) systems. IDA is used for - - 2021--04-27 + + + + + + + + 2021-04-27 JRK true flux balance method @@ -13481,12 +13492,6 @@ CVODE is used for ordinary differential equation (ODE) systems. IDA is used for - - - - - - @@ -13556,8 +13561,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 @@ -13590,8 +13595,9 @@ 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. @@ -13599,9 +13605,9 @@ 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). @@ -13649,8 +13655,8 @@ This method only involves evaluations of f. This method is suitable for non-stif - 2021-06-04 JRK + 2021-06-04 scaled property @@ -13948,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. @@ -13957,7 +13963,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, @@ -14021,13 +14027,13 @@ This method only involves evaluations of f. This method is suitable for non-stif - + - + 2021-07-08 @@ -14066,7 +14072,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - + 2021-07-08 @@ -14085,7 +14091,7 @@ This method only involves evaluations of f. This method is suitable for non-stif - + 2021-07-08 @@ -14249,7 +14255,14 @@ This method only involves evaluations of f. This method is suitable for non-stif - + + + + + + + + 2021-08-12 JRK http://identifiers.org/biosimulators/rbapy @@ -14561,12 +14574,20 @@ This method only involves evaluations of f. This method is suitable for non-stif - - 2022-01-20 + + + + + + + + 2022-03-27 + EN JRK - LP - logical network - A network of logical-valued (an enumeration, such as a set of integers) variables. + WL + true + biological state optimization method + A method for computing the optimal state of a biological system according to a particular objective. @@ -14575,36 +14596,93 @@ This method only involves evaluations of f. This method is suitable for non-stif - 2022-01-20 + + + + + + + + + + + + + 2022-03-27 + EN JRK - LP - boolean network - A network of Boolean-valued variables. + WL + https://gitlab.com/equilibrator/metabolic-pathway-analysis + Enzyme Cost Minimization + http://identifiers.org/doi:10.1371/journal.pcbi.1005167 + ECM + 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 + + + + + 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-01-20 + + + + + + + + + + + + + + 2022-03-27 + EN JRK - LP - locally-monotone Boolean network - Boolean network where each regulator is either an activator or an inhibitor, but cannot be both. + WL + https://gitlab.com/equilibrator/metabolic-pathway-analysis + Max-min Driving Force method + http://identifiers.org/doi:10.1371/journal.pcbi.1003483 + MDF + 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 + + + + + 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). + - - 2022-01-20 + + 2022-03-29 + EN JRK - logical variable - A variable whose value can be one of an enumerated set of possible values such as ON/OFF, HIGH/MEDIUM/LOW, or a set integers (e.g., 0, 1, 2). + WL + type of system described @@ -14613,10 +14691,11 @@ This method only involves evaluations of f. This method is suitable for non-stif - 2022-01-20 + 2022-03-29 + EN JRK - Boolean variable - A variable whose value can be TRUE/FALSE (e.g., ON/OFF, YES/NO, 1/0). + WL + mathematical system @@ -14624,103 +14703,565 @@ This method only involves evaluations of f. This method is suitable for non-stif - - 2022-01-20 + + 2022-03-29 + EN JRK - LP - most permissive updating policy - http://identifiers.org/doi:10.1038/s41467-020-18112-5 - The most permissive updating policy captures behaviors of any compatible quantitative model. + WL + biological system - - - - http://identifiers.org/doi:10.1038/s41467-020-18112-5 - Loïc Paulevé, Juraj Kolčák, Thomas Chatain, Stefan Haar. Reconciling qualitative, abstract, and scalable modeling of biological networks. Nat Commun 11(1):4256 (2020). - - - - - - - - - - - - - - - 2022-01-20 + + 2022-03-29 + EN JRK - LP - http://identifiers.org/biosimulators/mpbn - Paulevé ASP-based fixed point identification + WL + metabolic system - - - - http://identifiers.org/biosimulators/mpbn - mpbn - - - - - - - - - - - - - - - 2022-01-20 + + 2022-03-29 + EN JRK - LP - http://identifiers.org/biosimulators/mpbn - Paulevé ASP-based minimal trap space identification + WL + cellular system - - - - http://identifiers.org/biosimulators/mpbn - mpbn - - - - - - - - - 2022-01-20 + + 2022-03-29 + EN + JRK + WL + biochemical system + + + + + + + + + + + + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + + + + 1 + + + + 2023-05-19 + lps + 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. + + + + + 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]) + + + + + + + + + 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 + + + + + + + + + + + + + + + 12-08-2023 + LPS + particle coordinates + The set of coordinates for all particles of these entities. + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + 2022-01-20 + JRK + LP + logical network + A network of logical-valued (an enumeration, such as a set of integers) variables. + + + + + + + + + 2022-01-20 + JRK + LP + boolean network + A network of Boolean-valued variables. + + + + + + + + + 2022-01-20 + JRK + LP + locally-monotone Boolean network + Boolean network where each regulator is either an activator or an inhibitor, but cannot be both. + + + + + + + + + 2022-01-20 + JRK + logical variable + A variable whose value can be one of an enumerated set of possible values such as ON/OFF, HIGH/MEDIUM/LOW, or a set integers (e.g., 0, 1, 2). + + + + + + + + + 2022-01-20 + JRK + Boolean variable + A variable whose value can be TRUE/FALSE (e.g., ON/OFF, YES/NO, 1/0). + + + + + + + + + 2022-01-20 + JRK + LP + most permissive updating policy + http://identifiers.org/doi:10.1038/s41467-020-18112-5 + The most permissive updating policy captures behaviors of any compatible quantitative model. + + + + + http://identifiers.org/doi:10.1038/s41467-020-18112-5 + Loïc Paulevé, Juraj Kolčák, Thomas Chatain, Stefan Haar. Reconciling qualitative, abstract, and scalable modeling of biological networks. Nat Commun 11(1):4256 (2020). + + + + + + + + + + + + + + + + + + + + + 2022-01-20 + JRK + LP + http://identifiers.org/biosimulators/mpbn + Paulevé ASP-based fixed point identification + + + + + http://identifiers.org/biosimulators/mpbn + mpbn + + + + + + + + + + + + + + + + + + + + + 2022-01-20 + JRK + LP + http://identifiers.org/biosimulators/mpbn + Paulevé ASP-based minimal trap space identification + + + + + http://identifiers.org/biosimulators/mpbn + mpbn + + + + + + + + + + + + + + + 2022-01-20 JRK LP http://identifiers.org/biosimulators/mpbn logical model attractor identification method - + http://identifiers.org/biosimulators/mpbn mpbn @@ -14728,10 +15269,10 @@ This method only involves evaluations of f. This method is suitable for non-stif - + - - + + @@ -14741,13 +15282,13 @@ This method only involves evaluations of f. This method is suitable for non-stif - + - + 2022-01-20 @@ -14757,7 +15298,7 @@ This method only involves evaluations of f. This method is suitable for non-stif Paulevé ASP-based most permissive attractor identification - + http://identifiers.org/biosimulators/mpbn mpbn @@ -14765,10 +15306,10 @@ This method only involves evaluations of f. This method is suitable for non-stif - + - - + + 2022-01-20 JRK trap space @@ -14776,10 +15317,10 @@ This method only involves evaluations of f. This method is suitable for non-stif - + - - + + 2022-01-20 JRK stable state @@ -14788,10 +15329,10 @@ This method only involves evaluations of f. This method is suitable for non-stif - + - - + + 2022-01-20 JRK minimal trap space @@ -14799,9 +15340,9 @@ This method only involves evaluations of f. This method is suitable for non-stif - + - + 2022-01-20 JRK @@ -14814,7 +15355,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 @@ -14833,7 +15374,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. @@ -14851,7 +15392,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). @@ -14869,7 +15410,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). @@ -14887,7 +15428,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. @@ -14905,7 +15446,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). @@ -14923,7 +15464,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. @@ -14941,7 +15482,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). @@ -14953,7 +15494,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. @@ -14965,7 +15506,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. @@ -14977,7 +15518,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. @@ -14989,7 +15530,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 @@ -15002,7 +15543,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 @@ -15015,7 +15556,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 @@ -15034,7 +15575,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. @@ -15052,7 +15593,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. @@ -15064,7 +15605,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. @@ -15076,7 +15617,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. @@ -15088,7 +15629,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. @@ -15100,7 +15641,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. @@ -15111,7 +15652,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 @@ -15124,7 +15665,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 @@ -15138,7 +15679,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 @@ -15151,7 +15692,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 @@ -15235,7 +15776,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 @@ -15248,7 +15789,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. @@ -15272,7 +15813,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 @@ -15291,7 +15832,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. @@ -15309,7 +15850,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. @@ -15327,7 +15868,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. @@ -15345,7 +15886,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. @@ -15363,7 +15904,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. @@ -16302,7 +16843,6 @@ This method only involves evaluations of f. This method is suitable for non-stif - @@ -16401,7 +16941,5 @@ This method only involves evaluations of f. This method is suitable for non-stif - - - + diff --git a/kisao_full.owl b/kisao_full.owl index b56de40..4ed1127 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.35 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/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. 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 diff --git a/libkisao/python/kisao/_version.py b/libkisao/python/kisao/_version.py index f0d1069..4ed8e77 100644 --- a/libkisao/python/kisao/_version.py +++ b/libkisao/python/kisao/_version.py @@ -1 +1 @@ -__version__ = '2.31' +__version__ = '2.34' diff --git a/libkisao/python/kisao/data_model.py b/libkisao/python/kisao/data_model.py index 272e1be..a9ebe44 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', @@ -34,9 +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_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 a065d22..03b88dc 100644 --- a/libkisao/python/kisao/utils.py +++ b/libkisao/python/kisao/utils.py @@ -11,7 +11,9 @@ ID_HAS_CHARACTERISTIC_RELATIONSHIP, ID_ODE_PROBLEM_CHARACTERISTIC, 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, @@ -44,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', @@ -127,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:: @@ -139,7 +142,19 @@ 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:: + + '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 algorithm (KISAO_0000029). @@ -174,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).:: @@ -186,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).:: @@ -198,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).:: @@ -210,7 +225,19 @@ 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).:: + + '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).:: @@ -222,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).:: @@ -234,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).:: @@ -246,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).:: @@ -258,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).:: @@ -270,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).:: @@ -282,6 +309,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 +344,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 +359,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 +377,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 +392,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), @@ -470,7 +511,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) 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..1e488ca 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), @@ -72,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 @@ -131,13 +134,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 +147,40 @@ 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() + + 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_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 +428,6 @@ def test_get_algorithm_substitution_matrix(self): 'SAME_METHOD') os.remove(filename) + +if __name__ == "__main__": + unittest.main() diff --git a/updating.md b/updating.md new file mode 100644 index 0000000..fd516bc --- /dev/null +++ b/updating.md @@ -0,0 +1,16 @@ +# 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 + +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 +```