Beispiel #1
0
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
Beispiel #2
0
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()
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
    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