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

GECKO 3.1.0 #333

Merged
merged 26 commits into from
Jul 3, 2023
Merged

GECKO 3.1.0 #333

merged 26 commits into from
Jul 3, 2023

Conversation

edkerk
Copy link
Member

@edkerk edkerk commented Jul 3, 2023

Main improvements in this PR:

  • Features:

    • Renamed various parameters in model adapter.
    • getComplexData uses taxonomic ID instead of species name.
    • GECKOInstaller checks if correct RAVEN version is installed (release 2.8.3+).
    • Tutorials are moved to tutorials, and userData is removed as default location for model files. Users are encouraged to make their model folders outside the GECKO directory, facilitated by startGECKOproject().
    • full_ecModel tutorial:
      • more detailed discussions around kcat curation, protein usage etc.
      • plotCrabtree makes plot that demonstrates Crabtree effect in ecModels
      • plotlightVSfull makes plot comparing flux distribution in light and full ecModels
    • light_ecModel:
      • minimum code to make a light ecModel based on human-GEM 1.15.0
      • make contextualized ecModel based on a cell-line specific tINIT model with getSubsetEcModel
    • ecFSEOF is compatible with GECKO3.
    • makeEcModel can use pseudoRxns.tsv to filter out pseudoreactions.
    • various functions show progress bar that indicates estimated remaining time.
    • reportEnzymeUsage can make report of top-10 used enzymes.
    • loadConventionalGEM can load yaml model files.
    • enzymeUsage reports as positive values.
    • flexibilizeProtConcs also keeps track of the ratio of protein concentration change.
    • fillProtConcs allows for selection of column from protData, if it contains multiple datasets.
    • setKcatForReactions can directly modify a kcat for all associated reactions, useful for manual curation on existing ecModels.
    • getReactionsFromEnzyme gives which reactions are catalyzed by a particular enzyme, from a provided Uniprot ID.
    • copyECtoGEM to copy ecModel.ec.eccodes to ecModel.eccodes.
  • Documentation:

    • All function documentation is available from /doc/ and online (becomes available upon PR commit).
    • sensitivityTuning allows for ignoring selected reactions.
  • Fix / refactor:

    • Numerous fixes and refactoring of code in many functions.
    • Note that various functions have had their input parameters changed.

I hereby confirm that I have:

  • Selected main as a target branch (top left drop-down menu)

edkerk and others added 26 commits April 2, 2023 22:41
fix: getStandardKcat with multiple subSystems
* reverse: simulateGrowth for ecFSEOF

* fix: consistency in terminology

* refactor: fluxes for a target

* refactor: compatibility to GECKO3 ecFlux_scanning

* refactor: add compatibility to GECKO3

* fix: typo

* fix: save file type file

* fix: filter tolerance

* fix: if not carbon uptake have been defined

* fix: add toleracne to protein pool

* refactor: spaces instead of tabs

* fix: function input description

* Update src/geckomat/utilities/ecFSEOF/run_ecFSEOF.m

---------

Co-authored-by: edkerk <eduardk@chalmers.se>
* fix: applyCustomKcats should allow struct as input

* fix: applyCustomKcats correct parse default param

* fix: applyCustomKcats

* applyCustomKcats doc and tests

* refactor: reduce command window output testss

* Apply suggestions from code review

Co-authored-by: Albert Tafur Rangel <39610893+ae-tafur@users.noreply.github.com>

---------

Co-authored-by: Albert Tafur Rangel <39610893+ae-tafur@users.noreply.github.com>
* fix: updateProtPool avoid correctinf for f twice

* doc: flexibilizeProtConcs explain overconstraining

* fix: loadProtData measuredProt if NaN exist

* doc: protocol.m describe updateProtPool input

* fix: updateProtPool simplified new pool calculation

* chore: update protocol for updateProtPool

---------

Co-authored-by: Mihail Anton <mihail.anton@chalmers.se>
#312)

* feat: create structure project

* feat: include empty .keep files

---------

Co-authored-by: edkerk <eduardk@chalmers.se>
* fix: writeDLKcatInput currencyMets handling

* fix: filter out pseudoreactions makeEcModel

* fix: makeEcModel find pseudoreactions
* chore: rename userData to tutorials

* chore: move protocol and adapters

* chore: keep original in full under blankExample

* chore: compact adapters for human and yeast

* chore: cleanup protocol for yeast

* feat: add a model adapter under blankExample

* chore: rename adapter

* feat: copy protocol from yeast to human

* fix: typo

* fix: new folder names in adapters

* fix: update paths to tutorials

* refactor: model adapter expects full adapter path and extension

* fix: file paths for yeast-GEM tutorial

* style: protocol in tutorial prints step

* chore: rm doc

* feat: compress outputs about downloading complexes

* fix: full path to adapter in test

* fix: full paths for adapters in tests

* fix: undo bad path change

* chore: remove blankExample, use startGECKOproject

* chore: restore yeast-GEM protocol.m content

* chore: run through yeast-GEM protocol

* feat: simplify ModelAdapterManager commands

* fix: allow to set empty default adapter

* fix: tests refer to test adapter

---------

Co-authored-by: edkerk <eduardk@chalmers.se>
by running updateGECKOdoc()
* fix: getStandardKcat light model standard enzyme

In light ecModels, even if standard enzyme is not a pseudo-substrate (it will always use prot_pool instesad), standard enzyme should still be in ecModel.ec.enzyme (and .rxnEnzMat etc.), to calculate MW/kcat.

* refactor: applyKcatConstraints simplify light

* refactor: getStandardKcat

* fix: applyKcatConstraints zero-kcats light ecModel

* feat: copyECtoGEM function
* fix: use logical vector to construct equations

* fix: increase default tolerance

* style: typo

* style: use standard input names

* fix: adaptar default method name

* fix: set values under solver tol to zero

* feat: run_ecFSEOF check alphaLims parameter

---------

Co-authored-by: Eduard Kerkhoven <eduardk@chalmers.se>
* feat: new/updated functions around enzyme usage

* feat: install and adapter manager

* feat: Crabtree plot and data

* feat: updated protocol and model file

* refactor: rename tutorials full_ and light_ecModel

* feat: loadConventionalGEM can load YAML

* feat: use progressbar to give time estimates

* fix: ecFVA correct number of simulations

* feat: sensitivityTuning reports eccodes

* feat: fillProtConcs select column from protData

* feat: flexibilizeProtConcs sort by highest ratio

* feat: plotCrabtree plus graphs

* feat: plot light vs full ecModel analysis

* feat: GECKOInstaller checks RAVEN version

* feat: update of full_ecModel protocol

moved progressbar to RAVEN 2.8.2

* fix: getStandardKcat light model standard enzyme

In light ecModels, even if standard enzyme is not a pseudo-substrate (it will always use prot_pool instesad), standard enzyme should still be in ecModel.ec.enzyme (and .rxnEnzMat etc.), to calculate MW/kcat.

* refactor: applyKcatConstraints simplify light

* refactor: getStandardKcat

* feat: light_ecModel tutorial overhaul

* fix: plot light vs full

* fix: applyKcatConstraints zero-kcats light ecModel

* feat: copyECtoGEM function

* chore: updateDocumentation

* fix: full_ecModel/protocol.m step 13

* full_ecModel misc small fixes

* fix: full_ecModel/protocol.m step 15

* fix: full_ecModel/protocol.m install instructions

* fix: findMetSmiles report success and handle prot_

* fix: full_ecModel customKcat non-funct. protein

* fix: plotCrabtree avoid flux minimalization

* fix: full_ecModel various minor changes

* fix: GECKOInstaller RAVEN dep version bump

* fix: full_ecModel and light_ecModel from review

* fix: remove unused functions

* feat: rerun light_ecModel pipeline

* refactor: change vanHoek1998.csv to .tsv
* fix: remake ecFVA plot with generic plot function

* fix: GECKOInstaller ignore doc subfolder

* chore: updateGECKOdoc

* fix: remove old ecFVA.tsv

no purpose to write this file

* refactor: speedup fuzzyKcatMatching & getECfromGEM

* feat: saveEcModel more logical input

* refactor: swap TIFF for PDF
* refactor: speed increase applyComplexData

* feat: applyComplexData progressbar + code comments
* fix: remake ecFVA plot with generic plot function

* fix: GECKOInstaller ignore doc subfolder

* chore: updateGECKOdoc

* fix: remove old ecFVA.tsv

no purpose to write this file

* fix: getStandardKcat no standard gene in light-ec

* fix: light_ecModel until step 29

* feat: getSubsetEcModel + tutorial
* refactor: rename KEGG params to param.kegg.

to param.kegg.geneID

* refactor: rename Complex params to param.complex

* refactor: rename UniProt params to param.uniprot.

* fix: remove unused obj.params entries

remnants of GECKO2

* refactor: add _id to uniprot taxonomy

* refactor: use taxonomicID from complex portal

easier to find than precise species name

* feat: use RAVEN's phylDist.mat

from RAVEN 2.8.3 includes species names

* feat: tutorial yeast-GEM as yaml

* feat: yeast-GEM file is for tutorial only

* fix: remove unused manualModifications

* fix: small fixes
…ment

docs: add link to tutorials in README
* chore: rerun full_ecModel tutorial

* feat: light vs full ecModel comparison

* doc: swap step 29 and 30
* chore: rerun full_ecModel tutorial

* feat: light vs full ecModel comparison

* doc: swap step 29 and 30

* chore: rerun light_ecModel tutorial

* refactor: consistent use of isozyme

In agreement with manuscript

* chore: updateDocumentation

* doc: format of warning messages

* fix: plotlightVSfull.m handle use of alt solvers

* fix: consistent cutoff for low fluxes
@edkerk
Copy link
Member Author

edkerk commented Jul 3, 2023

Suggestion version bump to 3.1.0 due to large number of changes and broken reverse compatibility due to changed parameter names etc.

@github-actions
Copy link

github-actions bot commented Jul 3, 2023

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

 
Running geckoCoreFunctionTests
Done geckoCoreFunctionTests
__________

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

@edkerk edkerk marked this pull request as ready for review July 3, 2023 13:56
@edkerk edkerk merged commit 9148132 into main Jul 3, 2023
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.

None yet

3 participants