Ejemplo n.º 1
0
 def test_boundary_metabolites(self):
     N = model2stoichiometric_matrix(self.model, self.s_id2i, self.r_id2i)
     V = get_efm_matrix([{'r1': 10, 'r2': 10, 'r3': 10}, {'r1': 10, 'r3': 10, 'r4': 10, 'r6': 10}], self.r_id2i)
     m = get_boundary_metabolites(N, V[:, 0])
     result = {(m[self.s_id2i[m_id]], m_id) for m_id in self.s_id2i.keys() if m[self.s_id2i[m_id]]}
     self.assertSetEqual({(-1, 'm1_b'), (1, 'm2_b')},
                         result,
                         'Was supposed to get -1 m1_b 1 m2_b as boundary metabolites, got %s' % result)
Ejemplo n.º 2
0
 def get_boundary_inputs_outputs(self, pathway_id):
     r_is = [self.r_id2i[r_id] for r_id in self.r_ids]
     v = self.V[r_is, self.efm_id2i[pathway_id]]
     bm_ids = sorted(set(self.boundary_m_ids) & self.m_ids)
     b_ms = get_boundary_metabolites(self.N[[self.m_id2i[m_id] for m_id in bm_ids], :][:, r_is], v)
     bm_id2i = dict(zip(bm_ids, range(0, len(bm_ids))))
     # b_ms = get_boundary_metabolites(self.N, v)
     r_id2st = {m_id: -b_ms[bm_id2i[m_id]] for m_id in bm_ids if b_ms[bm_id2i[m_id]] < 0}
     p_id2st = {m_id: b_ms[bm_id2i[m_id]] for m_id in bm_ids if b_ms[bm_id2i[m_id]] > 0}
     return r_id2st, p_id2st