예제 #1
0
    def test_get_yield_not_working_if_input_formula_missing(self):
        model = Model("test")
        met1 = Metabolite(id="S7P")
        met2 = Metabolite(id="T3P1", formula="C3H7O6P")
        met3 = Metabolite(id="E4P", formula="C4H9O7P")
        met4 = Metabolite(id="F6P", formula="C6H13O9P")
        model.add_metabolites((met1, met2, met3, met4))

        react1 = Reaction(id="r1", name="Transaldolase")
        react1.add_metabolites({met1: -1, met2: -1, met3: 1, met4: 1})

        react2 = Reaction(id="r2")
        react2.add_metabolites({met1: -1})

        react3 = Reaction(id="r3")
        react3.add_metabolites({met2: -1})

        react4 = Reaction(id="r4")
        react4.add_metabolites({met3: -1})

        react5 = Reaction(id="r5")
        react5.add_metabolites({met4: -1})

        model.add_reactions((react1, react2, react3, react4, react5))

        fluxes = {
            react1.id: 1,
            react2.id: -1,
            react3.id: -1,
            react4.id: 1,
            react5.id: 1
        }

        status, _ = get_yields(fluxes, model)
        assert status is False
예제 #2
0
    def test_get_gene_statistics(self):
        model = Model()
        metabolite1 = Metabolite("m1")
        annotation = Annotation("chebi", "CHEBI:1233")
        metabolite1.annotation.add(annotation)

        metabolite2 = Metabolite("m2")
        model.add_metabolites([metabolite1, metabolite2])

        # Action
        metabolite_stats = metabolite_statistics(model)

        # Return value:
        # ("Total", len(model.metabolites)),
        # ("Annotated", num_anotated),
        # ("DeadEnd", num_dead_ends)

        # 1) Check Total
        assert metabolite_stats["Total"] == 2

        # 2) Check Annotated
        assert metabolite_stats["Annotated"] == 1

        # 3) Check DeadEnd
        assert metabolite_stats["DeadEnd"] == 2

        # Check that there is a test for all options
        assert len(metabolite_stats) == 3
예제 #3
0
    def test_get_yield(self):
        model = Model("test")
        met1 = Metabolite(id="S7P", formula="C7H15O10P")
        met2 = Metabolite(id="T3P1", formula="C3H7O6P")
        met3 = Metabolite(id="E4P", formula="C4H9O7P")
        met4 = Metabolite(id="F6P", formula="C6H13O9P")
        model.add_metabolites((met1, met2, met3, met4))

        react1 = Reaction(id="r1", name="Transaldolase")
        react1.add_metabolites({met1: -1, met2: -1, met3: 1, met4: 1})

        react2 = Reaction(id="r2")
        react2.add_metabolites({met1: -1})

        react3 = Reaction(id="r3")
        react3.add_metabolites({met2: -1})

        react4 = Reaction(id="r4")
        react4.add_metabolites({met3: -1})

        react5 = Reaction(id="r5")
        react5.add_metabolites({met4: -1})

        model.add_reactions((react1, react2, react3, react4, react5))

        fluxes = {
            react1.id: 1,
            react2.id: -1,
            react3.id: -1,
            react4.id: 1,
            react5.id: 1
        }

        status, yields = get_yields(fluxes, model)
        assert status is True
        assert yields == {
            "C": {
                met3: 0.4,
                met4: 0.6
            },
            "H": {
                met3: 9 / 22,
                met4: 13 / 22
            },
            "O": {
                met3: 7 / 16,
                met4: 9 / 16
            },
            "P": {
                met3: 0.5,
                met4: 0.5
            }
        }