Closed artgoldberg closed 4 years ago
Although DfbaObjReaction
is largely semantically equivalent to Reaction
, I want like to keep them as separate classes because I have structured the Excel presentation of these classes for different purposes
Reaction
is intended for elementary reactions with integer stoichiometries and a small number of participantsDfbaObjReaction
is intended for pseudo reactions with floating point stoichiometries and a large number of participants. For that reason, DfbaObjReaction
can capture additional metadata and is displayed differently in Excel. This Excel layout is too cumbersome and too verbose for elementary reactions such as the exchange, transport, and chemical transformation reactions that constitute the great majority of reactions in FBA models (typically all but 1 reaction).I agree that it is awkward to have a fluxBounds
property for non-FBA reactions. We could alleviate this by splitting Reaction
into KineticReaction
and DfbaReaction
. Only the latter would have the flux bounds attribute. This would increase the number of classes by 1.
Closing this issue because there has been no further discussion.
Including reverse links, these models and attributes define dFBA objectives now, where '(s)' indicates multiplicity:
I think it could be simplified by requiring that all reactions used in dFBA be written as
DfbaObjReactions
. This would require that reactions which both transform species and serve as the basis for objective(s) be duplicated. But it would substantially simplify the data model, and would be a net win. In addition, aSubmodel
can access its DfbaObjReaction(s) through its DfbaObjective (Submodel.dfba_obj.expression.dfba_obj_reactions) which eliminates a redundant attribute inSubmodel
. This would reduce the number of attribute definitions needed for the dFBA objectives from 8 to 6.