Giter VIP home page Giter VIP logo

ecmodels's Introduction

ecModels: Container for enzyme-constrained models

This repository contains all enzyme-constrained models generated by the @SysBioChalmers group.

Contact us

For support, technical issues, bug reports etc., please visit our discussion channels. For other issues, please contact Iván Domenzain or Benjamín Sánchez.

Contributors

Check our contribution history summary and main contributors here.

More from SysBio Chalmers

For more systems biology related software and recently published genome-scale models from the Systems and Synthetic Biology group at Chalmers University of Technology, please visit the GitHub page. For more information and publications by the Systems and Synthetic Biology please visit SysBio.

ecmodels's People

Contributors

automator-metatlas avatar benjasanchez avatar ivandomenzain avatar mihai-sysbio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ecmodels's Issues

update dependencies automatically

raven, cobra and libsml should be updated automatically - at the moment they need to be manually updated by logging into the self-hosted runner.

  • RAVEN
  • COBRA
  • libsbml

PRs do not get automatically created

Description of the bug

Even if the pipeline seems to apply GECKO successfully, the expected PRs do not get created. A preliminary investigation points to hub not handling the authentication.

"[protein]-" tags go missing from metabolite names

I think I have found a bug in the human ec model (which does not exist in Human1).
In Human-GEM, reaction HMR_7197 looks like this:
[protein][c] + serine[c] => [protein]-L-serine[c] + H2O[c]
But, in the ec model, it looks like this when I do constructEquations:
[protein][c] + serine[c] => L-serine[c] + H2O[c]
So, the [protein]- part of the L-serine seems to have gone missing. We suspect that it has something to do with the square brackets, or potentially the word "protein".

handle non-GitHub GEMs

Deal with GEMs without the url option in their config section - instead of cloning just download using the download_url.

Branching system for new ecModels

This repo has already become an ecosystem, biology is complex in nature, but we can try to keep a sustainable and simple branching system.

We should think about:

  • simplicity (an easy-to-follow/visualize graph)
  • clear set of permissions and PR criteria
  • Allow automated integration
  • Storage (model files without original repo)

fix/check grRules for Oxphos reactions in iSM996

@CarlMalina has detected inconsistencies in some grRules related to the oxidative phosphorylation and electron transport chain pathways in the iSM996 model for K. marxianus. After manual curation and a detailed revision of the genes involved in this pathway for Kmarx in KEGG and Uniprot, these are his findings:

rxnID old grRule new grRule
r_0175 ( KLMA_20798 or KLMA_90002 or KLMA_90011 or KLMA_80159 or KLMA_80322 or KLMA_40468 or KLMA_40467 or KLMA_40511 or KLMA_60198 or KLMA_90009 or KLMA_70307 ) KLMA_90004 and KLMA_90002 and KLMA_90011 and KLMA_80159 and KLMA_40253 and KLMA_20491 and KLMA_20299 and KLMA_40066 and KLMA_40467 and KLMA_80322 and KLMA_40468
r_0176 ( KLMA_90003 or KLMA_30267 ) KLMA_10723 and KLMA_90003 and KLMA_30267 and KLMA_70095 and KLMA_40479 and KLMA_50475 and KLMA_10034 and KLMA_10390 and KLMA_30208
r_0177 ( KLMA_90010 or KLMA_50597 or KLMA_90009 or KLMA_90012 or KLMA_10024 or KLMA_60192 or KLMA_70216 or KLMA_20085 or KLMA_10717 or KLMA_40417 ) (KLMA_70140 and KLMA_60435 and KLMA_50237 and KLMA_30187 and KLMA_80022 and KLMA_30431 and KLMA_90010 and KLMA_10765 and KLMA_90012 and KLMA_60151 and KLMA_50351 and KLMA_30306 and KLMA_40511 and KLMA_90009 and KLMA_10227 and KLMA_60137) or (KLMA_70140 and KLMA_60435 and KLMA_50237 and KLMA_30187 and KLMA_80022 and KLMA_30431 and KLMA_90010 and KLMA_10765 and KLMA_90012 and KLMA_60151 and KLMA_50351 and KLMA_30306 and KLMA_40511 and KLMA_90009 and KLMA_10227 and KLMA_80086) or (KLMA_70140 and KLMA_60435 and KLMA_50237 and KLMA_30187 and KLMA_80022 and KLMA_30431 and KLMA_90010 and KLMA_10765 and KLMA_90012 and KLMA_60151 and KLMA_50351 and KLMA_30306 and KLMA_40511 and KLMA_90009 and KLMA_50135 and KLMA_60137) or (KLMA_70140 and KLMA_60435 and KLMA_50237 and KLMA_30187 and KLMA_80022 and KLMA_30431 and KLMA_90010 and KLMA_10765 and KLMA_90012 and KLMA_60151 and KLMA_50351 and KLMA_30306 and KLMA_40511 and KLMA_90009 and KLMA_50135 and KLMA_80086)
  • r_0175 corresponds to complex IV; r_0176 to complex III; r_0177 to ATP synthase.

As it is shown in the table above, the previous grRules assume that these reactions are catalyzed by isoenzymes with a single subunit; in contrast, the suggested new grRules indicate that these reactions are catalyzed by isoenzymes, each of them consisting on enzyme complexes with several subunits.

This issue might not represent a major problem for phenotype predictions with the iSM996-GEM, however this is a major problem for its enzyme-constrained version (available here), as the enzyme requirements for these three reactions are currently under-representing the enzyme demands of the full respiratory complexes.

A repercussion of this is observed in the fact that the sigma factor its fitted to a value of 0.3 by the GECKO pipeline for eciSM996 model (evidence of this can be found in the log of the automated ecModels pipeline for this model, available here). This represents the average saturation factor for all enzymes for K. marxianus growing on conditions of unlimited glucose, which takes a value around 0.5 for all of the other organisms that have been tested with this pipeline.

ecHuman1 not updated

Discussed in #104

Originally posted by wshao1 May 19, 2023
Is the ecHuman1 model still up-to-date? The last commit was 3 years ago, and the Actions tab indicates the pipeline has failed to run multiple times over the past 10 months. I would like to use ecHuman1 for one of my projects but I am wondering if I need to manually run the current Human1 model through the pipeline to generate an updated ecHuman1.

Create GEM-specific PRs when changes are introduced into the ecModels repository files

In the current implementation of the automated workflow, the GECKO pipeline is programmed to run exclusively on GEMs whose version has changed,or for all models if any of the dependencies changes its version. This situation will eventually make that, when changes are introduced into any file in this repository, GEM-specific PRs are not gonna be created because a change in the source model version are not taking place.

Therefore, we need that our pipeline is able to run and create PRs for a model, every time that:

  • A change in the source model version is detected by a scheduled run.
  • When changes in the GECKO toolbox are detected by a scheduled run (new release).
  • When changes are introduced into the ecModels repo (push events to branches other than master and update...)

feat: automate version retrieving from models

It has been agreed that all original models' structures (version controlled or not) should be loaded from their corresponding SBML file. Currently, the version of the model can be obtained in several ways by the ecModels pipeline (e.g. read from a MATLAB structure or provided by the user).

A generalized way to read the model's version is to parse it from the <name> or <id> fields in the SBML file. As an example, the model name and Ids lines for the Kmx and iYali models are provided here:

  • model metaid="kmxGEM.xml" id="M_kmxGEM_v1_46_0_46_0" name="The Consensus Genome-Scale Metabolic Model of Kluyveromyces marxianus" fbc:strict="true"
  • model metaid="iYali" id="iYali" name="Yarrowia_lipolytica-GEM_v4.1.1" fbc:strict="true"

As a solution, a python script can be developed in which the version is parsed from this file, trying it on both fields <name> or <id> and, if absent a default v1.0.0 string is introduced

cobrapy won't read eciML1515 because of ascii character 32 in reaction id

The SBML file is valid with the online validator. However, with cobrapy version 0.26.2 I get this error when I try to read the eciML1515.xml file with cobra.io.read_sbml_model:

raise ValueError('Variable names cannot contain whitespace characters. "%s" contains whitespace character "%s".' % (name, char))

This error comes from the reaction with ID R_protein__32__pseudoreaction on line 61811 of the xml file. Changing this ID to e.g. R_protein_pseudoreaction resolves the issue.

ecYeast - oxygen exchange lower bound can't be set to -1

Hi, I'm trying to use the ecYeast model, on matlab with COBRA and then I set up the model without any modifications:

model=readCbModel('ecYeast.xml');
writeCbModel(model,'format','xls');
biomassRxn = 'r_2111';
ethanolRxn = 'r_1761';
glucose = 'r_1714';
oxygen = 'r_1992';
model = changeObjective(model, biomassRxn);
changeCobraSolver('gurobi', 'all');
solution=optimizeCbModel(model);

Then, I create another model to change the lower bound of glucose to -10:

modelGlu=changeRxnBounds(model,glucose, -10, 'l');
solutionGlu=optimizeCbModel(modelGlu);
printFluxVector(modelGlu, solution.x, false, false);

And finally, I create another model, on the top of the modelGlu, with the O2 exchange lower bound at -1:

modelMix=changeRxnBounds(modelGlu,oxygen, -1, 'l');
solutionMix=optimizeCbModel(modelMix);
printFluxVector(modelMix, solution.x, false, false);

But, as you can see, on the solution vector, the O2 reaction didn't change to -1 as is supposed to (but the glucose changed to -10, though):

image

I also tried to create a model only with the O2 modification, and the same happened. Also tried to use the batch model, and it's the same.

So, I ask if the model is taking into account that I set the O2 to -1 or if the modification I did doesn't occur at all.

Thanks

Workflow failing on the eciYali step

In the latest long runs of the automated pipeline (run1, run2, run3) it has been observed an error in the MATLAB command for the iYali case. All of these errors point out to the same line (429) in the corresponding manualModifications script, however this script is much shorter for this case, which makes conclude that the pipeline is not substituting the iYali-specific scripts into GECKO, therefore an error pops-up in MATLAB and our pipeline is crashing.

Any ideas on how to solve this? I also think that we've seen happening before but don't remember so well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.