Closed hgscott closed 1 year ago
I used the find_maintenance_reaction function in GEM-utilities and got no reaction.
I added the following reaction:
<reaction metaid="meta_R_ATPM" sboTerm="SBO:0000176" id="R_ATPM" name="ATP maintenance requirement" reversible="false" fast="false" fbc:lowerFluxBound="R_ATPM_lower_bound" fbc:upperFluxBound="cobra_default_ub">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#R_ATPM">
<bqbiol:is xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/bigg.reaction/ATPM"/>
<rdf:li rdf:resource="http://identifiers.org/biocyc/META:ATPASE-RXN"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.5"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.34"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.20"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.53"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.8"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.32"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.12"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.48"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.40"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.9"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.23"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.22"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.54"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.1"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.8"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.29"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.17"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.50"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.39"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.19"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.4"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.35"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.16"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.4"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.37"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.8"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.31"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.6"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.5"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.52"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.2"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.14"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.51"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.25"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.38"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.33"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.43"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.10"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.13"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.3"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.10"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.24"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.44"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.15"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.5"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.3"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.15"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.2"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.3"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.42"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.11"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.28"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.30"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.1"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.11"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.47"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.6"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.36"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.21"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.12"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.18"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.26"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.27"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.7"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.9"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.7"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.46"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.41"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.49"/>
<rdf:li rdf:resource="http://identifiers.org/kegg.reaction/R00086"/>
<rdf:li rdf:resource="http://identifiers.org/metanetx.reaction/MNXR96131"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13066"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13065"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13068"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13067"/>
<rdf:li rdf:resource="http://identifiers.org/sabiork/75"/>
<rdf:li rdf:resource="http://identifiers.org/seed.reaction/rxn11300"/>
<rdf:li rdf:resource="http://identifiers.org/seed.reaction/rxn09694"/>
<rdf:li rdf:resource="http://identifiers.org/seed.reaction/rxn00062"/>
</rdf:Bag>
</bqbiol:is>
</rdf:Description>
</rdf:RDF>
</annotation>
<listOfReactants>
<speciesReference species="M_cpd00002_c0" stoichiometry="1" constant="true"/>
<speciesReference species="M_cpd00001_c0" stoichiometry="1" constant="true"/>
</listOfReactants>
<listOfProducts>
<speciesReference species="M_cpd00008_c0" stoichiometry="1" constant="true"/>
<speciesReference species="M_cpd00067_c0" stoichiometry="1" constant="true"/>
<speciesReference species="M_cpd00009_c0" stoichiometry="1" constant="true"/>
</listOfProducts>
<fbc:geneProductAssociation>
</fbc:geneProductAssociation>
</reaction>
I got the annotations from the E. coli BiGG model.
And a parameter for the bound, so the full parameters for the model are:
<listOfParameters>
<parameter sboTerm="SBO:0000626" id="cobra_default_lb" value="-1000" constant="true"/>
<parameter sboTerm="SBO:0000626" id="cobra_default_ub" value="1000" constant="true"/>
<parameter sboTerm="SBO:0000626" id="cobra_0_bound" value="0" constant="true"/>
<parameter sboTerm="SBO:0000626" id="minus_inf" value="-INF" constant="true"/>
<parameter sboTerm="SBO:0000626" id="plus_inf" value="INF" constant="true"/>
<parameter sboTerm="SBO:0000625" id="R_ATPM_lower_bound" value="3.15" constant="true" units="mmol_per_gDW_per_hr"/>
</listOfParameters>
That was not valid SBML (you can check using cobra.io.sbml.validate_sbml_model()
), I fixed the reaction to be:
<reaction metaid="meta_R_ATPM" sboTerm="SBO:0000176" id="R_ATPM" name="ATP maintenance requirement" reversible="false" fast="false" fbc:lowerFluxBound="R_ATPM_lower_bound" fbc:upperFluxBound="cobra_default_ub">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#meta_R_ATPM">
<bqbiol:is xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/bigg.reaction/ATPM"/>
<rdf:li rdf:resource="http://identifiers.org/biocyc/META:ATPASE-RXN"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.5"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.34"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.20"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.53"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.8"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.32"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.12"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.48"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.40"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.9"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.23"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.22"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.54"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.1"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.8"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.29"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.17"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.50"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.39"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.19"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.4"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.35"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.16"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.4"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.37"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.8"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.31"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.6"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.5"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.52"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.2"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.14"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.51"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.25"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.38"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.33"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.43"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.10"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.13"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.3"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.10"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.24"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.44"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.15"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.5"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.3"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.1.15"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.2"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.3"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.42"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.11"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.28"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.30"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.1"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.11"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.47"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.6"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.36"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.21"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.12"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.18"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.26"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.27"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.7"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.9"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.4.7"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.46"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.41"/>
<rdf:li rdf:resource="http://identifiers.org/ec-code/3.6.3.49"/>
<rdf:li rdf:resource="http://identifiers.org/kegg.reaction/R00086"/>
<rdf:li rdf:resource="http://identifiers.org/metanetx.reaction/MNXR96131"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13066"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13065"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13068"/>
<rdf:li rdf:resource="http://identifiers.org/rhea/13067"/>
<rdf:li rdf:resource="http://identifiers.org/sabiork/75"/>
<rdf:li rdf:resource="http://identifiers.org/seed.reaction/rxn11300"/>
<rdf:li rdf:resource="http://identifiers.org/seed.reaction/rxn09694"/>
<rdf:li rdf:resource="http://identifiers.org/seed.reaction/rxn00062"/>
</rdf:Bag>
</bqbiol:is>
</rdf:Description>
</rdf:RDF>
</annotation>
<listOfReactants>
<speciesReference species="M_cpd00002_c0" stoichiometry="1" constant="true"/>
<speciesReference species="M_cpd00001_c0" stoichiometry="1" constant="true"/>
</listOfReactants>
<listOfProducts>
<speciesReference species="M_cpd00008_c0" stoichiometry="1" constant="true"/>
<speciesReference species="M_cpd00067_c0" stoichiometry="1" constant="true"/>
<speciesReference species="M_cpd00009_c0" stoichiometry="1" constant="true"/>
</listOfProducts>
</reaction>
I had to rename the about the exactly match the meta ID, and remove the Gene Product Association field,
Check if there is a maintenance reaction, if not add one, just like in https://github.com/C-CoMP-STC/GEM-mit1002-core/issues/1