def make_reaction_network(pysb_model, model_id): """Generate a PySB/BNG reaction network as a PNG file.""" try: for m in pysb_model.monomers: pysb_assembler.set_extended_initial_condition(pysb_model, m, 0) fname = 'model%d_rxn' % model_id diagram_dot = render_reactions.run(pysb_model) # TODO: use specific PySB/BNG exceptions and handle them # here to show meaningful error messages except Exception as e: logger.error('Could not generate model diagram.') logger.error(e) return None try: with open(fname + '.dot', 'wt') as fh: fh.write(diagram_dot) subprocess.call( ('dot -T png -o %s.png %s.dot' % (fname, fname)).split(' ')) abs_path = os.path.abspath(os.getcwd()) full_path = os.path.join(abs_path, fname + '.png') except Exception as e: logger.error('Could not save model diagram.') logger.error(e) return None return full_path
def visualize(): for ACC_NO in ACC_NOs: dot_r = render_reactions.run(models[ACC_NO]) dotfile_r = open('model_reactions-' + ACC_NO + '.dot', 'w') dotfile_r.write(dot_r) dotfile_r.close() system('dot -T pdf model_reactions-' + ACC_NO + '.dot -o model_reactions-' + ACC_NO + '.pdf') dot_s = render_species.run(models[ACC_NO]) dotfile_s = open('model_species-' + ACC_NO + '.dot', 'w') dotfile_s.write(dot_s) dotfile_s.close() system('ccomps -x model_species-' + ACC_NO + '.dot | dot | gvpack -m0 | neato -n2 -T pdf -o model_species-' + ACC_NO + '.pdf') # Run the simulation solver = Solver(models[ACC_NO], t) solver.run() yout = solver.yobs # Plot simulation results for the observables in the model pl.ion() pl.figure() for observ in outputs[ACC_NO]: pl.plot(t, yout[observ], label=observ) pl.legend() pl.xlabel("Time (minutes)") pl.ylabel("Distribution of radioactive iron/body compartments") pl.savefig('model_results-' + ACC_NO + '.png') pl.clf()
def get_model_diagram(model, model_id=None): try: for m in model.monomers: pysb_assembler.set_extended_initial_condition(model, m, 0) fname = "model%d" % ("" if model_id is None else model_id) diagram_dot = render_reactions.run(model) # TODO: use specific PySB/BNG exceptions and handle them # here to show meaningful error messages except Exception as e: raise DiagramGenerationError(e) try: with open(fname + ".dot", "wt") as fh: fh.write(diagram_dot) subprocess.call(("dot -T png -o %s.png %s.dot" % (fname, fname)).split(" ")) abs_path = os.path.abspath(os.getcwd()) if abs_path[-1] != "/": abs_path = abs_path + "/" full_path = abs_path + fname + ".png" except Exception as e: raise DiagramConversionError(e) return full_path
def get_model_diagram(model, model_id=None): try: for m in model.monomers: pysb_assembler.set_extended_initial_condition(model, m, 0) fname = 'model%d' % ('' if model_id is None else model_id) diagram_dot = render_reactions.run(model) #TODO: use specific PySB/BNG exceptions and handle them # here to show meaningful error messages except Exception as e: raise DiagramGenerationError(e) try: with open(fname + '.dot', 'wt') as fh: fh.write(diagram_dot) subprocess.call( ('dot -T png -o %s.png %s.dot' % (fname, fname)).split(' ')) abs_path = os.path.abspath(os.getcwd()) if abs_path[-1] != '/': abs_path = abs_path + '/' full_path = abs_path + fname + '.png' except Exception as e: raise DiagramConversionError(e) return full_path
def draw_reaction_network(pysb_model, model_id): """Generate a PySB/BNG reaction network as a PNG file.""" try: for m in pysb_model.monomers: pysb_assembler.set_extended_initial_condition(pysb_model, m, 0) diagram_dot = render_reactions.run(pysb_model) # TODO: use specific PySB/BNG exceptions and handle them # here to show meaningful error messages except Exception as e: logger.error('Could not generate model diagram.') logger.error(e) return None try: fname_prefix = make_pic_name(model_id, 'rxn') with open(fname_prefix + '.dot', 'wt') as fh: fh.write(diagram_dot) subprocess.call(('dot -T png -o %s.png %s.dot' % (fname_prefix, fname_prefix)).split(' ')) fname = fname_prefix + '.png' except Exception as e: logger.error('Could not save model diagram.') logger.error(e) return None return fname
def draw_reaction_network(pysb_model, model_id): """Generate a PySB/BNG reaction network as a PNG file.""" try: for m in pysb_model.monomers: pysb_assembler.set_extended_initial_condition(pysb_model, m, 0) diagram_dot = render_reactions.run(pysb_model) # TODO: use specific PySB/BNG exceptions and handle them # here to show meaningful error messages except Exception as e: logger.error('Could not generate model diagram.') logger.error(e) return None try: fname_prefix = make_pic_name(model_id, 'rxn') with open(fname_prefix + '.dot', 'wt') as fh: fh.write(diagram_dot) subprocess.call(('dot -T png -o %s.png %s.dot' % (fname_prefix, fname_prefix)).split(' ')) fname = fname_prefix + '.png' except Exception as e: logger.error('Could not save model diagram.') logger.error(e) return None return fname
RAF1 = model.monomers['RAF1'] HRAS = model.monomers['HRAS'] r1 = model.rules['RAF1_autophospho_RAF1_T491'] r1.rule_expression = (RAF1(HRAS=1, T491='u') % HRAS(RAF1=1) >> RAF1(HRAS=1, T491='p') % HRAS(RAF1=1)) r2 = model.rules['RAF1_autophospho_RAF1_S494'] r2.rule_expression = (RAF1(HRAS=1, S494='u') % HRAS(RAF1=1) >> RAF1(HRAS=1, S494='p') % HRAS(RAF1=1)) for r in (r1, r2): r.reactant_pattern = r.rule_expression.reactant_pattern r.product_pattern = r.rule_expression.product_pattern # Rendering reactions and species if args.render: print 'Rendering reactions...' gv_str = rr.run(model) with open('reactions.dot', 'w') as f: f.write(gv_str) print 'Rendering species...' gv_str = rs.run(model) with open('species.dot', 'w') as f: f.write(gv_str) if args.simulate: # Set parameters print 'Setting model parameters...' model.add_component(Parameter("kp1", 1.667e-06)) # ligand-monomer binding (scaled), units: /molecule/s model.add_component(Parameter("km1", 0.06)) # ligand-monomer dissociation, units: /s model.add_component(Parameter("kp2", 5.556e-06)) # aggregation of bound monomers (scaled), units: /molecule/s model.add_component(Parameter("km2", 0.1)) # dissociation of bound monomers, units: /s