Пример #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
Пример #2
0
def assemble_model(model_indra_str):
    stmts = decode_indra_stmts(model_indra_str)
    pa = PysbAssembler(policies='two_step')
    pa.add_statements(stmts)
    model = pa.make_model()
    pa.add_default_initial_conditions(100.0)
    for m in model.monomers:
        pysb_assembler.set_extended_initial_condition(model, m, 0)
    return model
Пример #3
0
def make_sbgn(pysb_model, model_id):
    pa = PysbAssembler()
    pa.model = pysb_model
    for m in pysb_model.monomers:
        pysb_assembler.set_extended_initial_condition(pysb_model, m, 0)
    try:
        sbgn_str = pa.export_model('sbgn')
    except BngInterfaceError:
        logger.error('Reaction network could not be generated for SBGN.')
        return None
    return sbgn_str
Пример #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
Пример #5
0
def assemble_model(stmts):
    pa = PysbAssembler(policies='one_step')
    pa.add_statements(stmts)
    model = pa.make_model()
    pa.add_default_initial_conditions(100.0)

    try:
        targeted_agents = get_targeted_agents(stmts)
        no_upstream_active_agents = get_no_upstream_active_agents(stmts)
    except:
        targeted_agents = []
        no_upstream_active_agents = []
    try:
        chemical_agents = get_chemical_agents(stmts)
    except:
        chemical_agents = []

    for m in model.monomers:
        try:
            if m.name in targeted_agents or m.name in no_upstream_active_agents:
                pysb_assembler.set_base_initial_condition(model,
                    model.monomers[m.name], 50.0)
                pysb_assembler.set_extended_initial_condition(model, m, 50.0)
            elif m.name in chemical_agents:
                pysb_assembler.set_base_initial_condition(model,
                    model.monomers[m.name], 10000.0)
            else:
                pysb_assembler.set_extended_initial_condition(model, m, 0)
        except:
            pysb_assembler.set_extended_initial_condition(model, m, 0)
    # Tweak parameters
    for param in model.parameters:
        if 'kf' in param.name and 'bind' in param.name:
            param.value = param.value * 100
    return model
Пример #6
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