Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 09:08
    Midnighter commented #992
  • 09:02
    Midnighter closed #1224
  • 09:02
    Midnighter commented #1224
  • May 25 14:39
    akaviaLab commented #992
  • May 25 14:33
    akaviaLab commented #1224
  • May 24 15:13
    akaviaLab commented #1220
  • May 24 11:11
    francescodc87 commented #1224
  • May 19 15:54
    jeromeRlon edited #1224
  • May 19 15:54
    jeromeRlon edited #1224
  • May 19 15:53
    jeromeRlon edited #1224
  • May 19 15:53
    jeromeRlon opened #1224
  • May 17 14:13
    akaviaLab synchronize #1223
  • May 17 14:12
    akaviaLab opened #1223
  • May 17 13:32
    akaviaLab commented #1206
  • May 12 16:45
    codecov-commenter commented #1221
  • May 12 16:40
    akaviaLab commented #1206
  • May 12 16:38
    akaviaLab commented #1220
  • May 12 16:35
    codecov-commenter commented #1221
  • May 12 16:33
    codecov-commenter commented #1221
  • May 12 16:30
    akaviaLab commented #1220
Omar I. Elashkar
@OAshkar
Hi, is there is a way to set media exchange both upper and lower boundary instead of forced contraint?
Moritz E. Beber
@Midnighter
Actually, when you set the model.medium it only changes the importing direction's bound and doesn't modify the other bound. So that will stay as it was. So if the bounds of EX_glc_e were 0; 1000 and you set it to 10, the new bounds will be -10; 1000. No flux is enforced unless you do so yourself.
James Morrissey
@jamessmorrissey_twitter
hello all. Do we have any tools in cobrapy for non-linear flux sampling? In MATLAB there is gapsplit (https://github.com/jensenlab/gapsplit) but I can't find anything that can deal with non-linear constraints in python. Any help is appreciated :)
Moritz E. Beber
@Midnighter
I don't know about other tools but cobrapy relies on optlang for interfacing with solvers and optlang does not support non-linear constraints at the moment.
3 replies
Christian Diener
@cdiener
On the link you pasted it says that gapsplit works with cobrapy in the README...
2 replies
Subasree
@subasreess
Hello all. What is the preferred number of flux samples for a human tissue or cell-specific genome-scale model? Compared to microbial genome-scale models, human tissue or cell models have a greater number of reactions. The minimum count maybe 5000 reactions if you are using Recon3D or Human GEM latest version as the base model. I read a paper from 2020, where they have calculated 10000 flux samples per reaction in a lung tissue model for their analysis. Reactions and metabolites for that model are in the range 7000-8000 and 5000-6000 respectively.
Christian Diener
@cdiener
Depends on what you want to do with the samples. For summary statistics like getting the mean or variance something in the order of n^2 where n is the number of reactions should be okayish (because the standard error scales with sqrt(n)). If you want to estimate the distribution then something in the order of n^3.
Though that may be impractical, so in that case the most samples that you can get in reasonable time.
Subasree
@subasreess
I initially thought of going with 10000. This is huge. Thank you for the explanation. I will decide accordingly.
Lucas Miguel
@lmigueel
Hello everyone. Does anyone perform an anaerobic simulation using the iMM904 yeast model? I'm trying to zero oxygen reactions and allow sterols flux into cell, but the yeast still doesn't grow (biomass function is zero). Thanks.
4 replies
Another question. How do I look for prefixes of model reaction names? Thanks.
5 replies
fate-26
@fate-26

Hey guys, I spotted sth in my model. when I set the light and organic compound uptake reactions to zero, my model still produces biomass is it coz my model is not energetically balanced?
it is only phosphate uptake that leads to zero biomass when it's blocked.

I also successively set the bounds of phosphate consuming and producing reactions to zero, and it's only phosphate producing reactions that result in zero biomass. How can I find the reason behind that? shall I check if the producing reactions also produce biomass precursors?

2 replies
stephen chapman
@Mitometa_gitlab
have you looked at each and every import reaction?
Subasree
@subasreess
Hi all, I want to know how to interpret the C.Fluxes values that we obtain from cobrapy flux variability analysis, model.summary(fva=0.95). Uptake
Metabolite Reaction Flux Range C-Number C-Flux
arg_L[e] EX_arg_L[e] 0.0001106 [0.000105; 0.0001483] 6 1.37%
asn_L[e] EX_asn_L[e] 8.6E-05 [-756.8; 0.0001873] 4 0.71%
We get values for both uptake and secretion
Secretion
Metabolite Reaction Flux Range C-Number C-Flux
C02712[c] DM_C02712[c] 0 [-0.0001237; 0] 7 0.00%
adprbp[c] DM_adprbp[c] 0 [-284.2; 0] 15 0.00%
How should we analyze the C-Flux values under two different cases, say a normal and diseased state?
jeremymchacon
@jeremymchacon

Hello, I was wondering if anyone has a "simple trick" to discover alternatives in minimal media with a statistical or algorithmic approach, rather than by-hand.

What I mean is, for my model I can generate many minimal media using cobra.medium.minimal_medium.

Often, it is obvious when I examine the resulting dataframe when there are two "choices" for one need. For example, I might see that the minimal media all have EX_LalaDgluMdapDala_e OR EX_LalaDgluMdap_e, but never both, and always one or the other.

But then there are more complicated cases, where there are >2 alternatives for the underlying need, and maybe some cases where in one minimal medium two underlying needs are met with one uptake, but in other minimal media two different uptakes perform these actions.

It feels like there should be some simple correlational "trick" to figure out these relationships. Any insight is appreciated, thanks for reading!

jeremymchacon
@jeremymchacon
Maybe something where I convert the dataframe to binary, and somehow find groups of rows that when summed column-wise all have 1's...
Christian Diener
@cdiener
The minimal_medium function already has an option to return alternative media formulations when counting the number of components. Maybe that is useful... https://cobrapy.readthedocs.io/en/latest/autoapi/cobra/medium/minimal_medium/index.html#cobra.medium.minimal_medium.minimal_medium
jeremymchacon
@jeremymchacon
Thanks @cdiener -- I have been using minimize_components = 100; my question was more downstream, how to look across alternative media formulations to determine the underlying nutrient needs. I think I was able to do it, in the end, by hand, but I appreciate the help!
Christian Diener
@cdiener
Oh sorry, that makes sense.
Synchon Mandal
@synchon:matrix.org
[m]
For some reason, PyPI doesn't show that cobra supports Python 3.9 and 3.10 even though we have it in setup.cfg. Any ideas to get this corrected?
Moritz E. Beber
@Midnighter
Hmm, maybe those were added after the last release?
2 replies
akaviaLab
@akaviaLab
Hi @Midnighter - I'm here on gitter if you want to discuss. Also, if you want to email me, try uridavid + my user name without Lab @ gmail.com
2 replies
akaviaLab
@akaviaLab
@Midnighter - ping
7 replies
Christian Diener
@cdiener

[Announcement] COBRApy community meeting 2022

Dear COBRApy community,

It is time for another community meeting. As always, feel especially welcome if you have not previously attended any of the calls. We will talk about future directions for the project and look forward to hearing from new users, as well as long term supporters.

If you want to participate, please choose a time slot here (you can adjust the timezone on the upper right):

https://www.when2meet.com/?15487684-Uyrwc

We will also post a recording of the meeting on YouTube afterwards.

We have heard your feedback that the last meeting was a bit heavy on the organizational aspects of the project (management, funding, etc.). So, I propose to split the meeting into a development and organizational part of 30 minutes each. Let us know if you have any topics you would like to see on the Agenda. Some tentative agenda points follow below.

Best regards,
Christian on behalf of the COBRApy project


Agenda

Development

  1. Refactoring of the test/CICD suite
  2. What to address before or after the stable release of COBRApy X.0
  3. What is the community using COBRApy for and what are big unmet needs in the community that COBRApy should address?
    • Omics data integration (some updates on DRIVEN)

Organization

  1. COBRApy manuscript updates
  2. Improve DEI in the project
    • Mentoring for new contributors
    • Implementation of the COC is completed
    • A tutorial on contributing

The polls on Github discussions should be pretty helpful in the future...
jeremymchacon
@jeremymchacon
If this is too off-topic let me know, but is there a "standard" way to detect auxotrophies in a model? The method I've been playing with is to add a sink for the metabolite (with zero lower bound) set the sink as the objective, give the model complete media, and see whether the solution is greater than the amount of metabolite in the medium. Sometimes that's hard to interpret, however, because with complete media there can be extracellular compounds which are (e.g.) peptide strings that can be catabolized into amino acids with non-obvious stoichiometry (at least, non-obvious from the perspective of automation). This makes the comparison between medium and objective tricky. Any thoughts appreciated!
2 replies
akaviaLab
@akaviaLab
Working on tidying up the mat code, and I have several questions in cobrapie, but I'll repost them here. @cdiener @Midnighter maybe you can help, please?
1) cobra.Model() with no name given makes name be None instead of empty string? Is there a good reason or I can change it for consistency with SBML behavior?
2) When saving to matlab, should subsystems be populated with group.id or group.name (assuming both exist)? MATLAB format files don't have groups, so some data will be lost either way.
2b) When reading, should the subsystems be checked for compliance with SBML IDs or should I leave it up to SBML for writing? I think leave it up to SBML, but I'm not sure.
Thank you
Christian Diener
@cdiener
My takes are: (1) None seems to be the pythonic value for missing data, so I would keep it as that. (2) Good question, maybe name because it should not have any formatting requirements. (2b) Yep should be addressed in the SBML module. COBRApy itself has no limitations on IDs.
akaviaLab
@akaviaLab
Hmm. Regarding (1) - it looks like model.getName() is an SBML function that returns the empty string if None. I could add modify the sbml.py code to
cobra_model.name = model.getName() or None
Christian Diener
@cdiener
Is that for round tripping? I mean it makes sense to me that en empy string in libSBML (C/C++ does not have a canonical None type) becomes None in Python, but I would surprised if any of the COBRApy behavior actually depends on that interpretation.
akaviaLab
@akaviaLab
I don't think anything depends on it, but I'm comparing SBML models to rewritng them and loading them as MATLAB. This was one of the things that was different, and it was annoying me. I'd like to keep it consistent. Nothing really depends on it.
Christian Diener
@cdiener
Okay makes sense.
Synchon Mandal
@synchon:matrix.org
[m]
Do we have a date and time for the COBRApy community meeting 2022?
Christian Diener
@cdiener
Yep, I was just updating it right now. See below :)

Dear COBRApy community

Thank you everybody for responding to the scheduling poll. Based on the responses, I have now fixed the meeting for Thursday, May 12th 2022 16:00 UTC / 9:00 PDT / 18:00 CEST. You can find the Zoom link and dial-in numbers below.

Unfortunately, this date did not work for everybody, but I will record it and upload it. You are also very much invited to send us additional agenda or talking points by adding them to the discussion on Github Discussions. The Meeting Notes can be found here.

Lastly, we would like to stress that this meeting is open to all members of the community, whether you have responded to the poll or not. So please feel free to join the meeting.

Best regards,
Christian on behalf of the COBRApy project

How to join?

Thursday, May 12th 2022 16:00 UTC / 9:00 PDT / 18:00 CEST

Zoom Meeting
https://us02web.zoom.us/j/85628148241?pwd=UFFxVzlsc3Y4MGtRUit4UVBSa3JVQT09

Meeting ID: 856 2814 8241
Passcode: 872494
One tap mobile
+12532158782,,85628148241#,,,,872494# US (Tacoma)
+16699006833,,85628148241#,,,,
872494# US (San Jose)

Dial by your location
+1 253 215 8782 US (Tacoma)
+1 669 900 6833 US (San Jose)
+1 346 248 7799 US (Houston)
+1 929 205 6099 US (New York)
+1 301 715 8592 US (Washington DC)
+1 312 626 6799 US (Chicago)
Meeting ID: 856 2814 8241
Passcode: 872494
Find your local number: https://us02web.zoom.us/u/kwuD2Vc3D


Tentative Agenda

Development

  1. Refactoring of the test/CICD suite
  2. What to address before or after the stable release of COBRApy X.0
  3. What is the community using COBRApy for and what are big unmet needs in the community that COBRApy should address?
    • Omics data integration (some updates on DRIVEN)

Organization

  1. COBRApy manuscript updates
  2. Improve DEI in the project
    • Mentoring for new contributors
    • Implementation of the COC is completed
    • A tutorial on contributing
Christian Diener
@cdiener
@Midnighter Do we have a Youtube channel for COBRApy or did you upload it to your own one last time?
Moritz E. Beber
@Midnighter
I never uploaded it :see_no_evil:
Please go ahead and create a channel for us :)
I should still have access, though. So maybe it's an opportunity to upload the previous one, too.
Lucas Miguel
@lmigueel
Hello guys. Has anyone managed to perform anaerobic simulation with cobrapy (Python) using Yeast-GEM's Yeast 8.5 model? I've already tried changing the sterol reactions fluxes, just like I do on the iMM904 model, but it doesn't work (the yeast does not grow). Thanks. I will post the code.
4 replies
Aditya Vaze
@AdityaVaze

I'm trying to replicate the definition of metabolic tasks used in Richelle et al. 2019 in Python: "a model successfully passes a task if the associated LP problem is still solvable when the sole exchange reactions allowed carrying flux in the model are temporary sink reactions associated with each of the inputs and outputs listed in the task". The algorithm I've implemented is:

  1. set bounds of all boundary reactions to (0,0)
  2. add sink reactions for each of the inputs and outputs with the specified bounds
  3. set the sink reaction of the first output metabolite as the objective
  4. run slim_optimize()

However, the results I'm receiving are that the model is infeasible for every task, which is not consistent with what is seen when running similar tests using RAVEN Toolbox. Is there something obvious I'm doing wrong here?

Moritz E. Beber
@Midnighter
Sounds interesting, I always thought that the idea of metabolic tasks is quite catchy. As to your problem: Did you check that the definition of a sink reaction is the same in COBRApy, the paper, and in the RAVEN Toolbox?
Aditya Vaze
@AdityaVaze
Good question! Unfortunately the paper doesn't define sinks and the RAVEN Toolbox code uses a different definition with extracellular uptakes rather than sinks. So I don't have a clear answer
Moritz E. Beber
@Midnighter
I'm just looking at readthedocs, apparently the last build was more than a year ago and then stopped...
Moritz E. Beber
@Midnighter
All the versions are there but have to be manually activated. We'll have to automate that somehow.
Synchon Mandal
@synchon:matrix.org
[m]
Could you maybe add a couple of use there so that we can take a look and try to fix it?