From ef1b769654e0d98835597ff60beb7d9d149e3020 Mon Sep 17 00:00:00 2001 From: Artur Meski Date: Fri, 4 Mar 2016 23:48:28 +0100 Subject: [PATCH] Translation for permanency (RSC -> RS) --- rctsys.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/rctsys.py b/rctsys.py index cd26164..601bfd6 100755 --- a/rctsys.py +++ b/rctsys.py @@ -683,6 +683,36 @@ class ReactionSystemWithConcentrations(ReactionSystem): else: raise RuntimeError("Unknown meta-reaction type: " + repr(r_type)) + for ent,inhibitors in self.permanent_entities.items(): + + max_c = self.max_concentration + if ent in self.max_conc_per_ent: + max_c = self.max_conc_per_ent[ent] + else: + print("WARNING:\n\tThere is no maximal concentration level defined for " + self.get_entity_name(ent)) + print("\tThis is a very bad idea -- expect degraded performance\n") + + def e_value(i): + return self.get_entity_name(ent) + "#" + str(i) + + for value in range(1,max_c+1): + + new_reactants = [] + new_inhibitors = [] + new_products = [] + + new_reactants = [e_value(value)] + + for e_inh,conc in inhibitors: + n = self.get_entity_name(e_inh) + "#" + str(conc) + rs.ensure_bg_set_entity(n) + new_inhibitors.append(n) + + for i in range(1,value+1): + new_products.append(e_value(i)) + + rs.add_reaction(new_reactants,new_inhibitors,new_products) + return rs