Hi COBRA users,
1)
To debug my networks, I usually add temporarily exchange reactions to allow the consumption/production of certain metabolites.
These reactions are described with one reactant only (no product), for example with the equation:
SpeciesA <=>
And here is an example of how they are described in a SBML file:
<reaction metaid="metaId_R_EXC_SpeciesA" id="R_EXC_SpeciesA" reversible="true">
<listOfReactants>
<speciesReference species="M_SpeciesA" stoichiometry="1"/>
</listOfReactants>
<kineticLaw>
<ci> FLUX_VALUE </ci>
</math>
<listOfParameters>
<parameter id="FLUX_VALUE" name="mmol_per_gDW_per_hr" value="0"/>
<parameter id="LOWER_BOUND" name="mmol_per_gDW_per_hr" value="-1000"/>
<parameter id="OBJECTIVE_COEFFICIENT" value="0"/>
<parameter id="UPPER_BOUND" name="mmol_per_gDW_per_hr" value="1000"/>
</listOfParameters>
</kineticLaw>
</reaction>
These drain reactions work as expected but I can't find a way to enable/disable them directly in COBRA.
- Changing the reaction bounds with :
model = changeRxnBounds(model,'R_EXC_SpeciesA',0,'u');
model = changeRxnBounds(model,'R_EXC_SpeciesA',0,'l');
doesn't work.
This will constraint the flux value of the drain reaction to 0, however the reaction can still be used as a drain.
a) Is this the proper way to describe drain reactions ?
b) If so, how is it possible to enable/disable these reactions in COBRA ?
2)
I have noticed the COBRA sbmlreader function changes the id of the reactions and metabolites in some cases (mainly reactions starting by R_ and metabolites starting by M_)
For example, a reaction with a SBML id: 'R_REACTION1' will be loaded identified in COBRA as 'REACTION1', a metabolite with the SBML id 'M_SPECIESA_c' will become 'SPECIESA[c]' in COBRA,etc...
This is done on purpose by the sbmlreader function, but I can't any reason why. It would make sense to keep the id attribute of SBML components (to facilitate the mapping of COBRA results and the SBML document, etc...).
Could you please tell me why it has been implemented this way ?
3)
Just in case somebody has an explanation.
Thank you very much,
Have a great day,