cdanielmachado / smetana

SMETANA: a tool to analyse interactions in microbial communities
Other
56 stars 11 forks source link

Adjusting the non-CarveMe GEMs to SMETANA #36

Open mohammadmirhakkak opened 1 year ago

mohammadmirhakkak commented 1 year ago

Hi Daniel,

I am trying to use SMETANA with GEMs from different repositories. When I use it with CarveMe-generated GEMs, it works pretty fine.

$ smetana carveme1.xml carveme2.xml carveme3.xml --flavor cobra

However. I encounter an error regarding biomass (objective) recognition when I use smetana with GEMs from different repositories. For instance:

$ smetana agora1.xml agora2.xml yeast.xml --flavor cobra Of note, exchange metabolite and reaction IDs are unified. Also, biomass reaction IDs contain 'biomass' or 'growth.'

Error: "No biomass reaction identified from model objective."

Of note, the code is executed well if I don't use "--flavor cobra" in the command line. But it does not calculate MIP value, which I think should have sth to do with the biomass reaction recognition problem.

I wonder how to adjust the GEMs to become usable for smetana.

Thank you in advance! Mohammad

mohammadmirhakkak commented 1 year ago

Hello,

The problem got resolved.

The model used in smetana should have an attribute called "kineticLaw" for each reaction in the sbml file. It is sufficient if this property is added only to the biomass reaction. So smetana reads the OBJECTIVE_COEFFICIENT from the "kineticLaw" for recognizing the biomass reaction. For instance, it should look like this:

    <kineticLaw>
      <math xmlns="http://www.w3.org/1998/Math/MathML">
        <cn type="integer"> 0 </cn>
      </math>
      <listOfLocalParameters>
        <localParameter id="LOWER_BOUND" value="0"/>
        <localParameter id="UPPER_BOUND" value="1000"/>
        <localParameter id="OBJECTIVE_COEFFICIENT" value="1"/>
      </listOfLocalParameters>
    </kineticLaw>
  </reaction>

Best Mohammad

wupeng1998 commented 8 months ago

Hello,

The problem got resolved.

The model used in smetana should have an attribute called "kineticLaw" for each reaction in the sbml file. It is sufficient if this property is added only to the biomass reaction. So smetana reads the OBJECTIVE_COEFFICIENT from the "kineticLaw" for recognizing the biomass reaction. For instance, it should look like this:

    <kineticLaw>
      <math xmlns="http://www.w3.org/1998/Math/MathML">
        <cn type="integer"> 0 </cn>
      </math>
      <listOfLocalParameters>
        <localParameter id="LOWER_BOUND" value="0"/>
        <localParameter id="UPPER_BOUND" value="1000"/>
        <localParameter id="OBJECTIVE_COEFFICIENT" value="1"/>
      </listOfLocalParameters>
    </kineticLaw>
  </reaction>

Best Mohammad

Hello, have you ever used model seed model to run smetana? When I used two models in model seed format to simulate smetana, the program stayed in "Loading community: all" for a long time.