def test_find_constrained_transport_reactions(model): """ Expect zero or more transport reactions to have fixed constraints. Cellular metabolism in any organism usually involves the transport of metabolites across a lipid bi-layer. Hence, this test reports how many of these reactions, which transports metabolites from one compartment to another, have fixed constraints. This test does not have any mandatory 'pass' criteria. Implementation: Please refer to "Transport Reactions" for details on how memote identifies transport reactions. From the pool of transport reactions identify reactions which are constrained to values other than the model's median lower and upper bounds. """ ann = test_find_constrained_transport_reactions.annotation transporters = helpers.find_transport_reactions(model) ann["data"] = get_ids_and_bounds( [rxn for rxn in transporters if basic.is_constrained_reaction( model, rxn)]) ann["metric"] = len(ann["data"]) / len(transporters) ann["message"] = wrapper.fill( """A total of {:d} ({:.2%}) transport reactions have fixed constraints in the model: {}""".format(len(ann["data"]), ann["metric"], truncate(ann["data"])))
def test_find_constrained_transport_reactions(model, num): """Expect num of contrained transport rxns to be identified correctly.""" transporters = helpers.find_transport_reactions(model) constrained_transporters = set( [rxn for rxn in transporters if basic.is_constrained_reaction( model, rxn)]) assert len(constrained_transporters) == num
def test_find_constrained_pure_metabolic_reactions(model): """ Expect zero or more purely metabolic reactions to have fixed constraints. If a reaction is neither a transport reaction, a biomass reaction nor a boundary reaction, it is counted as a purely metabolic reaction. This test requires the presence of metabolite formula to be able to identify transport reactions. This test simply reports the number of purely metabolic reactions that have fixed constraints and does not have any mandatory 'pass' criteria. Implementation: From the pool of pure metabolic reactions identify reactions which are constrained to values other than the model's minimal or maximal possible bounds. """ ann = test_find_constrained_pure_metabolic_reactions.annotation pmr = basic.find_pure_metabolic_reactions(model) ann["data"] = get_ids_and_bounds( [rxn for rxn in pmr if basic.is_constrained_reaction( model, rxn)]) ann["metric"] = len(ann["data"]) / len(pmr) ann["message"] = wrapper.fill( """A total of {:d} ({:.2%}) purely metabolic reactions have fixed constraints in the model, this excludes transporters, exchanges, or pseudo-reactions: {}""".format(len(ann["data"]), ann["metric"], truncate(ann["data"])))
def test_find_constrained_transport_reactions(model): """ Expect zero or more transport reactions to have fixed constraints. Cellular metabolism in any organism usually involves the transport of metabolites across a lipid bi-layer. Hence, this test reports how many of these reactions, which transports metabolites from one compartment to another, have fixed constraints. This test does not have any mandatory 'pass' criteria. Implementation: Please refer to "Transport Reactions" for details on how memote identifies transport reactions. From the pool of transport reactions identify reactions which are constrained to values other than the model's median lower and upper bounds. """ ann = test_find_constrained_transport_reactions.annotation transporters = helpers.find_transport_reactions(model) ann["data"] = get_ids_and_bounds([ rxn for rxn in transporters if basic.is_constrained_reaction(model, rxn) ]) ann["metric"] = len(ann["data"]) / len(transporters) ann["message"] = wrapper.fill( """A total of {:d} ({:.2%}) transport reactions have fixed constraints in the model: {}""".format(len(ann["data"]), ann["metric"], truncate(ann["data"])))
def test_find_constrained_pure_metabolic_reactions(model): """ Expect zero or more purely metabolic reactions to have fixed constraints. If a reaction is neither a transport reaction, a biomass reaction nor a boundary reaction, it is counted as a purely metabolic reaction. This test requires the presence of metabolite formula to be able to identify transport reactions. This test simply reports the number of purely metabolic reactions that have fixed constraints and does not have any mandatory 'pass' criteria. Implementation: From the pool of pure metabolic reactions identify reactions which are constrained to values other than the model's minimal or maximal possible bounds. """ ann = test_find_constrained_pure_metabolic_reactions.annotation pmr = basic.find_pure_metabolic_reactions(model) ann["data"] = get_ids_and_bounds( [rxn for rxn in pmr if basic.is_constrained_reaction(model, rxn)]) ann["metric"] = len(ann["data"]) / len(pmr) ann["message"] = wrapper.fill( """A total of {:d} ({:.2%}) purely metabolic reactions have fixed constraints in the model, this excludes transporters, exchanges, or pseudo-reactions: {}""".format(len(ann["data"]), ann["metric"], truncate(ann["data"])))
def test_find_constrained_transport_reactions(read_only_model): """ Expect zero or more transport reactions to have fixed constraints. Cellular metabolism in any organism usually involves the transport of metabolites across a lipid bi-layer. Hence, this test reports how many of these reactions, which transports metabolites from one compartment to another, have fixed constraints. This test does not have any mandatory 'pass' criteria. A transport reaction is defined as follows: 1. It contains metabolites from at least 2 compartments and 2. at least 1 metabolite undergoes no chemical reaction, i.e., the formula and/or annotation stays the same on both sides of the equation. A notable exception is transport via PTS, which also contains the following restriction: 3. The transported metabolite(s) are transported into a compartment through the exchange of a phosphate. An example of transport via PTS would be pep(c) + glucose(e) -> glucose-6-phosphate(c) + pyr(c) Reactions similar to transport via PTS (referred to as "modified transport reactions") follow a similar pattern: A(x) + B-R(y) -> A-R(y) + B(y) Such modified transport reactions can be detected, but only when a formula field exists for all metabolites in a particular reaction. If this is not the case, transport reactions are identified through annotations, which cannot detect modified transport reactions. """ ann = test_find_constrained_transport_reactions.annotation transporters = helpers.find_transport_reactions(read_only_model) ann["data"] = get_ids_and_bounds( [rxn for rxn in transporters if basic.is_constrained_reaction( read_only_model, rxn)]) ann["metric"] = len(ann["data"]) / len(transporters) ann["message"] = wrapper.fill( """A total of {:d} ({:.2%}) transport reactions have fixed constraints in the model: {}""".format(len(ann["data"]), ann["metric"], truncate(ann["data"])))
def test_find_constrained_pure_metabolic_reactions(model, num): """Expect num of contrained metabolic rxns to be identified correctly.""" pmr = basic.find_pure_metabolic_reactions(model) contrained_pmr = set( [rxn for rxn in pmr if basic.is_constrained_reaction(model, rxn)]) assert len(contrained_pmr) == num