C-CoMP-STC / mit1002-cue-simulations

0 stars 0 forks source link

Do models use GLC and ACE at the same time #27

Open hgscott opened 10 months ago

hgscott commented 10 months ago

Daniel was surprised that Zac said that ALT is using both carbon sources at the same time- thought that you could only choose one or the other.

He said to run COMETS with regular FBA (not pFBA) with the mixed carbon sources and no constraints and see if it uses both.

If it can't use both, that may be a sign that using the two carbon sources at the same time is coming from different sub-populations in the lab.

hgscott commented 10 months ago

Daniel mentioned a paper by Markus Basan (sp?) that looks at glucose vs acetate fermentation.

hgscott commented 10 months ago

A more difficult/longer-term interesting thing to do is to see what biomass components are coming from which carbon source. If you were doing a wet lab experiment, you could label the sources with different isotopes and see where they end up. How do we do the equivalent in FBA? Follow the fluxes? Escher maps would be very useful.

hgscott commented 9 months ago

I set up COBRA simulations with media that either have only glucose, only acetate or both with:

# Glucose-only medium
glc_medium = {'EX_cpd00027_e0': 10,  # D-Glucose_e0
              # Not sure what value to use for oxygen
              'EX_cpd00007_e0': 1000,  # O2_e0
              # Remaining minimal media components
              'EX_cpd00058_e0': 1000,  # Cu2+_e0
              'EX_cpd00971_e0': 1000,  # Na+_e0
              'EX_cpd00063_e0': 1000,  # Ca2+_e0
              'EX_cpd00048_e0': 1000,  # Sulfate_e0
              'EX_cpd10516_e0': 1000,  # fe3_e0
              'EX_cpd00254_e0': 1000,  # Mg_e0
              'EX_cpd00009_e0': 1000,  # Phosphate_e0
              'EX_cpd00205_e0': 1000,  # K+_e0
              'EX_cpd00013_e0': 1000,  # NH3_e0
              'EX_cpd00099_e0': 1000,  # Cl-_e0
              'EX_cpd00030_e0': 1000,  # Mn2+_e0
              'EX_cpd00075_e0': 1000,  # Nitrite_e0
              'EX_cpd00001_e0': 1000,  # H2O_e0
              'EX_cpd00635_e0': 1000,  # Cbl_e0
              'EX_cpd00034_e0': 1000,  # Zn2+_e0
              'EX_cpd00149_e0': 1000,  # Co2+_e0
              }

# Acetate-only medium
ace_medium = {'EX_cpd00029_e0': 10,  # Acetate_e0
              'EX_cpd00007_e0': 1000,  # O2_e0
              # Remaining minimal media components
              'EX_cpd00058_e0': 1000,  # Cu2+_e0
              'EX_cpd00971_e0': 1000,  # Na+_e0
              'EX_cpd00063_e0': 1000,  # Ca2+_e0
              'EX_cpd00048_e0': 1000,  # Sulfate_e0
              'EX_cpd10516_e0': 1000,  # fe3_e0
              'EX_cpd00254_e0': 1000,  # Mg_e0
              'EX_cpd00009_e0': 1000,  # Phosphate_e0
              'EX_cpd00205_e0': 1000,  # K+_e0
              'EX_cpd00013_e0': 1000,  # NH3_e0
              'EX_cpd00099_e0': 1000,  # Cl-_e0
              'EX_cpd00030_e0': 1000,  # Mn2+_e0
              'EX_cpd00075_e0': 1000,  # Nitrite_e0
              'EX_cpd00001_e0': 1000,  # H2O_e0
              'EX_cpd00635_e0': 1000,  # Cbl_e0
              'EX_cpd00034_e0': 1000,  # Zn2+_e0
              'EX_cpd00149_e0': 1000,  # Co2+_e0
              }

# Mediem with both glucose and acetate
mix_medium = {'EX_cpd00027_e0': 10,  # D-Glucose_e0
              'EX_cpd00029_e0': 10,  # Acetate_e0
              'EX_cpd00007_e0': 1000,  # O2_e0
              # Remaining minimal media components
              'EX_cpd00058_e0': 1000,  # Cu2+_e0
              'EX_cpd00971_e0': 1000,  # Na+_e0
              'EX_cpd00063_e0': 1000,  # Ca2+_e0
              'EX_cpd00048_e0': 1000,  # Sulfate_e0
              'EX_cpd10516_e0': 1000,  # fe3_e0
              'EX_cpd00254_e0': 1000,  # Mg_e0
              'EX_cpd00009_e0': 1000,  # Phosphate_e0
              'EX_cpd00205_e0': 1000,  # K+_e0
              'EX_cpd00013_e0': 1000,  # NH3_e0
              'EX_cpd00099_e0': 1000,  # Cl-_e0
              'EX_cpd00030_e0': 1000,  # Mn2+_e0
              'EX_cpd00075_e0': 1000,  # Nitrite_e0
              'EX_cpd00001_e0': 1000,  # H2O_e0
              'EX_cpd00635_e0': 1000,  # Cbl_e0
              'EX_cpd00034_e0': 1000,  # Zn2+_e0
              'EX_cpd00149_e0': 1000,  # Co2+_e0
              }

And then I plotted the fluxes of all reactions involving glucose or acetate as bar charts:

Image

Image

Image

I want to dig more into those really large negative fluxes, because at first look it looks like the cell is exporting acetate even when growing on acetate?

hgscott commented 9 months ago

Daniel says to calculate the uptake rates of Glucose and Acetate from the NMR data.

hgscott commented 9 months ago

Markus says that the glyoxylate shunt alone is not enough to explain co-utilization, there has to be some other thing. In H. pylori there was half of the shunt present, but it was actually doing some totally different pathway.

hgscott commented 9 months ago

Zac thinks that the acetate may be going directly into the TCA cycle through acetyl-coA.

hgscott commented 9 months ago

Zac also notes that the 3hb bi-cycle (?) is more highly expressed on acetate.

hgscott commented 9 months ago

Represent data not as agraph, chose the reactiosn that have the highest change and put values in a table.

hgscott commented 8 months ago

Cannot make progress on this until the new MS2 model can grow on the expected carbon source(s).

hgscott commented 2 months ago

Reverted to an older model that grows on both and am using that.

To do:

hgscott commented 2 months ago

I'm not sure how feasible it will be to ever get all 800+ reactions on the same plot with readable labels: all_fluxes_acetate_only

Might just need to abandon the bar chart idea.

hgscott commented 2 months ago

So I made a plotly scatterplot where the full reaction name shows when you hover over the dot:

image
hgscott commented 2 months ago

I made a CSV with the fluxes of the reactions in each and sorted by difference in the fluxes, here are the top few rows:

image
hgscott commented 2 months ago

As I mentioned earlier, I am skeptical of those large negative fluxes for acetate transport.

hgscott commented 2 months ago

They look like they are forming some sort of EEGC image

hgscott commented 2 months ago

It's hard to tell exactly what is going on with the acetate transporters, so I will make an Escher map focusing on just those reactions.

Here is what just those core export/transport reactions look like: image

Then I added the ATP maintenance and synthesis reactions to the side, and every reaction involving acetate on the bottom: image

hgscott commented 2 months ago

These are the Escher maps for

The glucose only growth: glc_only_map

And the acetate only growth: ace_only_map

But I'm not really sure how to interpret from here what is going on.

hgscott commented 2 months ago

The downstream reactions that looked different between the two at first glance were:

rxn00175_c0: 3rd on the left (teal in glucose, 0 in acetate) image

rxn00225_c0: Right of 175 (greenish/teal in both, but opposite directions) image

IGNORE rxn00545_c0: 3rd on the right (lavender in glucose, teal in acetate)

hgscott commented 2 months ago

To me, that seems like:

But those fluxes don't add up...

hgscott commented 2 months ago

I checked the E. coli model (iJO1366.json), and that had the diffusion reaction (ACtex in the big nomenclature) but no other transport reactions for acetate, so I think we are good to remove the proton symporter reaction.

hgscott commented 2 months ago

Daniel also said to try and look at the pFBA solution.

For growth on glucose only, pFBA decreased the cycling from 150 flux through each reaction to 127. glc_only_pfba_map

For growth on acetate only, pFBA did decrease the amount of acetate cycling that was going on, but it was still very high. ace_only_pfba_map

hgscott commented 2 months ago

I removed the acetate/proton symporter from the model and reran FBA on that new model file to regenerate all the plots. See here.

hgscott commented 2 months ago

Mary Ann/Rogier said that the symporter should probably be there, but should only be able to function going "down" the proton gradient (i.e. moving protons from outside the cell, where they are high, to inside the cell, where they are low).

hgscott commented 2 months ago

Right now, it looks like the reaction can only go in the reverse (i.e. c --> e). image

The reaction is marked as "reversible=true", but I don't think that is affecting the bounds.

Here's the entry for the symporter reaction:

<reaction metaid="meta_R_rxn05488_c0" sboTerm="SBO:0000655" id="R_rxn05488_c0" name="acetate reversible transport via proton symport_c0" reversible="true" fast="false" fbc:lowerFluxBound="cobra_default_lb" fbc:upperFluxBound="cobra_0_bound">
        <annotation>
          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:vCard4="http://www.w3.org/2006/vcard/ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/">
            <rdf:Description rdf:about="#meta_R_rxn05488_c0">
              <bqbiol:is>
                <rdf:Bag>
                  <rdf:li rdf:resource="https://identifiers.org/seed.reaction/rxn05488"/>
                  <rdf:li rdf:resource="https://identifiers.org/bigg.reaction/BPH1"/>
                  <rdf:li rdf:resource="https://identifiers.org/bigg.reaction/ACt2rpp"/>
                  <rdf:li rdf:resource="https://identifiers.org/bigg.reaction/ACt6"/>
                  <rdf:li rdf:resource="https://identifiers.org/bigg.reaction/ACt2r"/>
                  <rdf:li rdf:resource="https://identifiers.org/bigg.reaction/ACt2pp"/>
                  <rdf:li rdf:resource="https://identifiers.org/bigg.reaction/ADY2"/>
                  <rdf:li rdf:resource="https://identifiers.org/metanetx.reaction/MNXR95429"/>
                  <rdf:li rdf:resource="https://identifiers.org/biocyc/META:TRANS-RXN0-571"/>
                  <rdf:li rdf:resource="https://identifiers.org/ec-code/2.A.1.13.-"/>
                </rdf:Bag>
              </bqbiol:is>
            </rdf:Description>
          </rdf:RDF>
        </annotation>
        <listOfReactants>
          <speciesReference species="M_cpd00067_e0" stoichiometry="1" constant="true"/>
          <speciesReference species="M_cpd00029_e0" stoichiometry="1" constant="true"/>
        </listOfReactants>
        <listOfProducts>
          <speciesReference species="M_cpd00029_c0" stoichiometry="1" constant="true"/>
          <speciesReference species="M_cpd00067_c0" stoichiometry="1" constant="true"/>
        </listOfProducts>
      </reaction>
hgscott commented 2 months ago

I edited that first line of the definition to only allow flux in the forward direction, so that the symporter can only be used for import:

      <reaction metaid="meta_R_rxn05488_c0" sboTerm="SBO:0000655" id="R_rxn05488_c0" name="acetate reversible transport via proton symport_c0" reversible="false" fast="false" fbc:lowerFluxBound="cobra_0_bound" fbc:upperFluxBound="cobra_default_ub">
hgscott commented 2 months ago

Doing that seemed to still fix the cycle problems.

Growth on glucose:

image

Growth on acetate:

image
hgscott commented 2 months ago

Does look like there is co-utilization even when there is limited O2:

image
hgscott commented 1 month ago

I made a more digestible graphic comparing E. coli and Amac's growth on single and mixed sources (here mix means the same amount of glucose and acetate as when they were alone).

Image

There seems to be slight co-utilization in E. coli and not perfect co-utilization in Amac. Not sure what is going on/what even is expected.

hgscott commented 1 month ago

I made this Escher map that includes glycolysis, the TCA cycle, the glyoxylate shunt (lines highlighting the connection to acetyl-coA, the very first reaction of the Ethylmalonyl-CoA pathway (and a pointer of where it would enter the TCA cycle), and all of the other reactions that involve acetate.

Here the lines are colored to indicate whether that reaction is present in the model (KBase model with the wrong gene calls, and some gap filling). Image

Here is the map with the fluxes for growth on glucose (Careful with the colors, the thin red, still indicates that that reaction is missing from the model): Image

Here's the map with the fluxes for growth on acetate: Image

Here are the two maps side by side with some notes on top: Image

hgscott commented 1 month ago

I have a notebook that makes the maps for the glucose, acetate, and the different mixtures: https://github.com/C-CoMP-STC/mit1002-cue-simulations/blob/e5dff8cec3670b64a825e355e4de2c50fcbe3179/mit1002_full/glc_and_ace/make_escher_plots.ipynb

Annoying things:

hgscott commented 1 month ago

I thought it would be cool to show one map that shows the difference between fluxes on two scenarios, I tried just literally subtracting one from the other, but I'm not sure that's the right way to do it.

Image

hgscott commented 4 weeks ago

Daniel liked the Escher map, but asked if we could label with the human-friendly names rather than the modelSEED IDs.