Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

RAVEN 2.10.0 #567

Merged
merged 8 commits into from
Oct 14, 2024
Merged

RAVEN 2.10.0 #567

merged 8 commits into from
Oct 14, 2024

Conversation

edkerk
Copy link
Member

@edkerk edkerk commented Oct 13, 2024

Main improvements in this PR:

  • Fixes:
    • importModel only removes identifier prefixes (like R_ for reactions) when present in all entries of a certain type; gives a warning that this happened; and has a removePrefix flag that can be set to false if desired
    • exportModel only adds identifier prefixes (like R_ for reactions) when one or more entries of a certain type are not compatible with SBML (i.e. do not start with a letter or _); gives a warning that this happened; and has a neverPrefix flag that can be set to true if desired. Previously, prefixes were always added
    • importModel allows for empty parameters when not specified
    • constructS gives correct error message when a metabolite is missing
    • importExcelModel can ignore faulty MIRIAM entries (note: import of Excel models is strongly discouraged!)
    • checkModelStruct to determine if reaction is reversible, consider all combinations of LB and UB, not just whether LB < 0 or not
    • checkModelStruct checks that all genes in grRules field are also in genes field (solves checkModelStruct should compare .genes and .grRules #556)
  • Features:
    • checkModelStruct queries if the model has any identifiers that are not SBML compatible (i.e. do not start with a letter or _)
    • new removeIdentifierPrefix function can remove identifier prefixes like R_ for reactions if desired
    • new addIdentifierPrefix function can add identifier prefixes like R_ for reactions if required
    • support for model.proteins as field, which matches model.genes and is also supported by SBML and YAML
    • getExchangeRxns has more options to select reactions based on their reaction bounds, whether they represent uptake, excretion etc. (solves getExchangeRxns.m works inconsistently #555)
  • Documentation:
    • getKEGGModelForOrganism explicitly refers to the correct dataDir options (i.e. prok90_kegg105 or euk90_kegg105 at this time)

Instructions on merging this PR:

  • This PR has develop as target branch, and will be resolved with a squash-merge.
  • This PR has main as target branch, and will be resolved with a merge commit.

edkerk and others added 7 commits September 22, 2024 13:31
* fix: importModel allows empty params

* fix: constructS correct error message missing mets

* fix: importExcelModel if faulty MIRIAM are defined

* fix: checkModelStruct check reaction reversibility

To determine if reaction is reversible, consider all combinations of LB and UB, not just whether LB < 0 or not

* doc: getKEGGModelForOrganism dataDir example

* chore: updateDocumentation

* fix: getExchangeRxns reactionType options

* feat: checkModelStruct grRules and genes match
…360)

* fix: remove prefix 'M_' and 'R_' in exprotModel function

(cherry picked from commit 202087d)

* fix: remove prefix `c_` and remaining `R_`

* feat: add id format check to function `checkModelStruct`

As discussed in #353, this commit introduce regular expressions for checking whether the IDs are in compliance with libSBML specification.

* refactor: fully runs `checkModelStruct` by default in `exportModel`

- Enable throwing errors when running `checkModelStruct` in `exportModel`
- Provide informative error message when reporting invalid ids

* fix: checkModelStruct more informative warning if identifiers start with number

* feat: exportModel COBRAstyle flag, and deprecate exportGeneComplexes flag

* fix: exportModel only add G_ if not already there

in all genes

* feat: dispEM wrap text in command window

* fix: importModel has COBRAstyle flag

* fix: update tests to match code changes

* fix: checkModelStruct rev warning only

* doc: exportModel supressWarnings explanation

* doc: checkModelStruct warning about met names

* fix: exportModel COBRAstyle then checkModelStruct

* fix: readYAMLmodel ec.rxnEnzMat empty last row

* feat: importModel more detailed SBML error message

* fix: checkModelStruct and exportForGit

* fix: checkModelStruct metNames check as warning

---------

Co-authored-by: Hao Wang <hao.wang@chalmers.se>
Co-authored-by: Mihail Anton <mihail.anton@chalmers.se>
* feat: ravenCobraWrapper supports more fields

* feat: proteinNames field

* chore: updateDocumentation

* fix: import/exportModel and fillGaps test

* fix: orderRavenFields proteinNames field

* fix: importModel with non-ASCII path
* fix: printOrange prevent double output

* fix: exportModel pass through supressWarnings flag
* fix: change model field proteinNames to proteins

* fix: enforce column form for model.proteins

* doc: importModel more informative warning

* chore: update documentation

---------

Co-authored-by: Eduard Kerkhoven <eduardk@chalmers.se>
* feat: dedicated funcs to add and rem ID prefixes

* refactor: add and rem COBRA prefixes
@edkerk edkerk added this to the 2.10.0 milestone Oct 13, 2024
Copy link

github-actions bot commented Oct 13, 2024

This PR has been automatically tested with GH Actions. Here is the output of the tests:

 > Installation type                    Advanced (via git)
> Installing from location /home/m/actions-runner/_work/RAVEN/RAVEN
> Checking RAVEN release 2.9.3
> You are running the latest RAVEN release
> Checking MATLAB release 2020b
> Checking system architecture glnxa64
> Set RAVEN in MATLAB path Pass
> Save MATLAB path Pass
> Make binaries executable Pass

> Add Java paths for Excel format Pass
> Checking libSBML version 5.20.2
> Checking model import and export
> Import Excel format Pass
> Export Excel format Pass
> Import SBML format Pass
> Export SBML format Pass

> Checking for LP solvers
> glpk Pass
> gurobi Pass
> scip Fail
> cobra Pass
> Set RAVEN solver glpk

> Checking BLAST+ Pass
> Checking DIAMOND Pass
> Checking HMMER Pass

> Checking function uniqueness Pass

*** checkInstallation complete ***

SCIP MEX binary not installed or not functional, some fillGapsLargeTests skipped.
SCIP MEX binary not installed or not functional, some fillGapsSmallTests skipped.
Running blastPlusTests
.
Done blastPlusTests

Running cdhitTests
.
Done cdhitTests

Running checkTasksTests
.
Done checkTasksTests

Running diamondTests
.
Done diamondTests

Running fillGapsLargeTests
.
Done fillGapsLargeTests

Running fillGapsSmallTests
.
Done fillGapsSmallTests

Running hmmerTests
.
Done hmmerTests

Running importExportTests
....
Done importExportTests

Running mafftTests
.
Done mafftTests

Running miriamTests
.
Done miriamTests

Running modelAbilitiesTests
........
Done modelAbilitiesTests

Running modelConversionTests
.
Done modelConversionTests

Running modelCurationTests
.......... ........
Done modelCurationTests

Running modelSortingTests
..
Done modelSortingTests

Running solverTests
..
Error occurred in solverTests/testSCIP and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using solverTests>testSCIP (line 77)
SCIP MEX binary not installed or not functional.
..
Done solverTests

Running tinitTests
..........
Done tinitTests

Failure Summary:

Name Failed Incomplete Reason(s)
=====================================================
solverTests/testSCIP X X Errored.

Note: In the case of multiple test runs, this post will be edited.

@edkerk edkerk marked this pull request as draft October 13, 2024 14:35
* refactor: default behaviour add/remove prefixes

* fix: filenames

* fix: update test result importExport
@edkerk edkerk marked this pull request as ready for review October 14, 2024 15:49
@edkerk
Copy link
Member Author

edkerk commented Oct 14, 2024

Minor release 2.9.3 -> 2.10.0, as changes in handling of identifier prefixes by importModel and exportModel can cause some changes in SBML files in comparison to earlier versions.

@edkerk edkerk merged commit 906db5b into main Oct 14, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants