def make_model(text):
    """Given text, return an INDRA model."""
    from indra.assemblers import PysbAssembler
    pa = PysbAssembler()
    pa.add_statements(make_statements(text))
    model = pa.make_model(policies='two_step')
    return model
Example #2
0
def make_model(text):
    """Given text, return an INDRA model."""
    from indra.assemblers import PysbAssembler
    pa = PysbAssembler()
    pa.add_statements(make_statements(text))
    model = pa.make_model(policies='two_step')
    return model
Example #3
0
def test_pysb_assembler_actsub():
    stmt = ActiveForm(Agent("BRAF", mutations=[MutCondition("600", "V", "E")]), "activity", True)
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model(policies="two_step")
    assert len(model.rules) == 0
    assert len(model.monomers) == 1
Example #4
0
def test_pysb_assembler_autophos1():
    enz = Agent("MEK1")
    stmt = Autophosphorylation(enz, "serine", "222")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert len(model.rules) == 1
    assert len(model.monomers) == 1
Example #5
0
def get_model_checker(statements):
    pa = PysbAssembler()
    pa.add_statements(statements)
    model = pa.make_model()
    stmt = Influence(Concept('crop_production'), Concept('food_security'))
    mc = ModelChecker(model, [stmt])
    mc.prune_influence_map()
    return mc
Example #6
0
def test_pysb_assembler_dephos_noenz():
    enz = None
    sub = Agent("MEK1")
    stmt = Phosphorylation(enz, sub, "serine", "222")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert len(model.rules) == 0
    assert len(model.monomers) == 0
Example #7
0
def test_pysb_assembler_complex1():
    member1 = Agent("BRAF")
    member2 = Agent("MEK1")
    stmt = Complex([member1, member2])
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert len(model.rules) == 2
    assert len(model.monomers) == 2
Example #8
0
def test_pysb_assembler_rasgap1():
    gap = Agent("NF1")
    ras = Agent("HRAS")
    stmt = RasGap(gap, "catalytic", ras)
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 2
Example #9
0
def test_pysb_assembler_phos_twostep_local():
    enz = Agent("BRAF")
    sub = Agent("MEK1")
    stmt = Phosphorylation(enz, sub, "serine", "222")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model(policies="two_step")
    print model.rules
    assert len(model.rules) == 3
    assert len(model.monomers) == 2
Example #10
0
def test_pysb_assembler_autophos2():
    raf1 = Agent("RAF1")
    enz = Agent("MEK1", bound_conditions=[BoundCondition(raf1, True)])
    stmt = Autophosphorylation(enz, "serine", "222")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 2
Example #11
0
def test_activity_activity():
    subj = Agent("KRAS")
    obj = Agent("BRAF")
    stmt = Activation(subj, "activity", obj, "activity", True)
    pa = PysbAssembler(policies="interactions_only")
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 2
Example #12
0
def test_pysb_assembler_complex_multiway():
    member1 = Agent("BRAF")
    member2 = Agent("MEK1")
    member3 = Agent("ERK1")
    stmt = Complex([member1, member2, member3])
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model(policies="multi_way")
    assert len(model.rules) == 1
    assert len(model.monomers) == 3
Example #13
0
def test_pysb_assembler_dephos_twostep1():
    phos = Agent("PP2A")
    sub = Agent("MEK1")
    stmt = Dephosphorylation(phos, sub, "serine", "222")
    pa = PysbAssembler(policies="two_step")
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 3
    assert len(model.monomers) == 2
Example #14
0
def test_pysb_assembler_transphos1():
    egfr = Agent("EGFR")
    enz = Agent("EGFR", bound_conditions=[BoundCondition(egfr, True)])
    stmt = Transphosphorylation(enz, "tyrosine")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 1
Example #15
0
def test_pysb_assembler_twostep_mixed():
    member1 = Agent("BRAF")
    member2 = Agent("RAF1")
    st1 = Complex([member1, member2])
    st2 = Phosphorylation(Agent("MAP2K1"), Agent("MAPK3"))
    pa = PysbAssembler()
    pa.add_statements([st1, st2])
    pa.make_model(policies="two_step")
    assert len(pa.model.rules) == 5
    assert len(pa.model.monomers) == 4
Example #16
0
def test_pysb_assembler_phos2():
    hras = Agent("HRAS")
    enz = Agent("BRAF", bound_conditions=[BoundCondition(hras, True)])
    sub = Agent("MEK1")
    stmt = Phosphorylation(enz, sub, "serine", "222")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert len(model.rules) == 1
    assert len(model.monomers) == 3
Example #17
0
def test_activity_activity3():
    subj = Agent("Vemurafenib")
    obj = Agent("BRAF")
    stmt = Activation(subj, None, obj, "activity", False)
    pa = PysbAssembler(policies="one_step")
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 2
Example #18
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
Example #19
0
def test_pysb_assembler_act1():
    egfr = Agent("EGFR")
    subj = Agent("GRB2", bound_conditions=[BoundCondition(egfr, True)])
    obj = Agent("SOS1")
    stmt = Activation(subj, "activity", obj, "activity", True)
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 3
Example #20
0
def test_mut():
    mut = MutCondition("600", "V", "E")
    st = Phosphorylation(Agent("BRAF", mutations=[mut]), Agent("MEK"))
    pa = PysbAssembler()
    pa.add_statements([st])
    pa.make_model()
    assert len(pa.model.rules) == 1
    r = pa.model.rules[0]
    braf = r.reactant_pattern.complex_patterns[0].monomer_patterns[0]
    assert braf.monomer.name == "BRAF"
    assert braf.site_conditions == {"V600": "E"}
Example #21
0
def test_neg_agent_mod():
    mc = ModCondition("phosphorylation", "serine", "123", False)
    st = Phosphorylation(Agent("BRAF", mods=[mc]), Agent("MAP2K2"))
    pa = PysbAssembler(policies="one_step")
    pa.add_statements([st])
    pa.make_model()
    assert len(pa.model.rules) == 1
    r = pa.model.rules[0]
    braf = r.reactant_pattern.complex_patterns[0].monomer_patterns[0]
    assert braf.monomer.name == "BRAF"
    assert braf.site_conditions == {"S123": "u"}
Example #22
0
def test_pysb_assembler_complex3():
    hras = Agent("HRAS")
    member1 = Agent("BRAF", bound_conditions=[BoundCondition(hras, True)])
    member2 = Agent("MEK1")
    stmt = Complex([member1, member2])
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 2
    assert len(model.monomers) == 3
Example #23
0
def test_pysb_assembler_dephos2():
    phos = Agent("PP2A")
    raf1 = Agent("RAF1")
    sub = Agent("MEK1", bound_conditions=[BoundCondition(raf1, True)])
    stmt = Dephosphorylation(phos, sub, "serine", "222")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 3
Example #24
0
def test_pysb_assembler_phos_twostep_local_to_global():
    enz = Agent("BRAF")
    sub = Agent("MEK1")
    stmt = Phosphorylation(enz, sub, "serine", "222")
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model(policies="two_step")
    # This call should have reverted to default policy
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 1
    assert len(model.monomers) == 2
Example #25
0
def test_grounded_active_pattern():
    a = Agent('A', db_refs={'HGNC': '1234'})
    b = Agent('B', db_refs={'HGNC': '5678'})
    b_phos = Agent('B', mods=[ModCondition('phosphorylation', 'S', '100')],
                   db_refs={'HGNC': '5678'})
    b_act = Agent('B', activity=ActivityCondition('activity', True),
                   db_refs={'HGNC': '5678'})
    st1 = Phosphorylation(a, b, 'S', '100')
    st2 = ActiveForm(b_phos, 'activity', True)
    pysba = PysbAssembler(policies='one_step')
    pysba.add_statements([st1, st2])
    model = pysba.make_model()
    mps = list(pa.grounded_monomer_patterns(model, b_act))
Example #26
0
def test_unspecified_statement_policies():
    enz = Agent("BRAF")
    sub = Agent("MEK1")
    phos = Agent("PP2A")
    stmt1 = Phosphorylation(enz, sub, "serine", "222")
    stmt2 = Dephosphorylation(phos, sub, "serine", "222")
    policies = {"Phosphorylation": "two_step", "other": "interactions_only"}
    pa = PysbAssembler(policies=policies)
    pa.add_statements([stmt1, stmt2])
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 4
    assert len(model.monomers) == 3
Example #27
0
def test_pysb_assembler_actmod2():
    mek = Agent("MEK")
    erk = Agent("ERK")
    stmts = []
    stmts.append(ActiveForm(Agent("MEK", mods=[ModCondition("phosphorylation", "serine", "218")]), "activity", True))
    stmts.append(ActiveForm(Agent("MEK", mods=[ModCondition("phosphorylation", "serine", "222")]), "activity", True))
    stmts.append(Phosphorylation(mek, erk, "threonine", "185"))
    stmts.append(Phosphorylation(mek, erk, "tyrosine", "187"))
    pa = PysbAssembler()
    pa.add_statements(stmts)
    model = pa.make_model()
    print model.rules
    assert len(model.rules) == 4
    assert len(model.monomers) == 2
Example #28
0
def assemble_pysb(stmts, data_genes, out_file):
    """Return an assembled PySB model."""
    base_file, _ = os.path.splitext(out_file)
    #stmts = ac.load_statements('%s.pkl' % base_file)
    stmts = preprocess_stmts(stmts, data_genes)

    # This is the "final" set of statements going into the assembler so it
    # makes sense to cache these.
    # This is also the point where index cards can be generated
    ac.dump_statements(stmts, '%s_before_pa.pkl' % base_file)
    assemble_index_cards(stmts, 'output/index_cards')

    # Save a version of statements with no evidence for faster loading
    for s in stmts:
        s.evidence = []
        for ss in s.supports + s.supported_by:
            ss.evidence = []
    ac.dump_statements(stmts, '%s_no_evidence.pkl' % base_file)

    # Assemble model
    pa = PysbAssembler()
    pa.add_statements(stmts)
    pa.make_model(reverse_effects=False)
    #ac.dump_statements(pa.statements, '%s_after_pa.pkl' % base_file)
    # Set context
    set_context(pa)
    # Add observables
    add_observables(pa.model)
    pa.save_model(out_file)
    with open('korkut_pysb.pkl', 'wb') as fh:
        pickle.dump(pa.model, fh)
    #pa.export_model('kappa', '%s.ka' % base_file)
    return pa.model
Example #29
0
def test_act_michaelis_menten():
    stmt = Activation(Agent('MEK'), Agent('ERK'))
    stmt2 = Inhibition(Agent('DUSP'), Agent('ERK'))
    pa = PysbAssembler()
    pa.add_statements([stmt, stmt2])
    pa.make_model(policies='michaelis_menten')
    assert(len(pa.model.parameters) == 7)
Example #30
0
def test_missing_catalytic_default_site():
    c8 = Agent('CASP8', activity=ActivityCondition('catalytic', True))
    c3 = Agent('CASP3')
    stmt = Activation(c8, c3, 'catalytic')
    # Interactions only
    pa = PysbAssembler(policies='interactions_only')
    pa.add_statements([stmt])
    model = pa.make_model()
    # One step
    pa = PysbAssembler(policies='one_step')
    pa.add_statements([stmt])
    model = pa.make_model()
    # Two step
    pa = PysbAssembler(policies='two_step')
    pa.add_statements([stmt])
    model = pa.make_model()
Example #31
0
def test_missing_transcription_default_site():
    p53 = Agent('TP53', activity=ActivityCondition('transcription', True))
    bax = Agent('BAX')
    stmt = Activation(p53, bax)
    # Interactions only
    pa = PysbAssembler(policies='interactions_only')
    pa.add_statements([stmt])
    model = pa.make_model()
    # One step
    pa = PysbAssembler(policies='one_step')
    pa.add_statements([stmt])
    model = pa.make_model()
    # Two step
    pa = PysbAssembler(policies='two_step')
    pa.add_statements([stmt])
    model = pa.make_model()
Example #32
0
def test_increaseamount_hill():
    stmt = IncreaseAmount(Agent('TP53'), Agent('MDM2'))
    pa = PysbAssembler()
    pa.add_statements([stmt])
    pa.make_model(policies='hill')
    pa.save_model()
    assert(len(pa.model.parameters) == 5)
Example #33
0
def test_annotation():
    st = Phosphorylation(Agent('BRAF', db_refs = {'UP': 'P15056'}),
                         Agent('MAP2K2', db_refs = {'HGNC': '6842'}))
    pa = PysbAssembler()
    pa.add_statements([st])
    pa.make_model()
    assert(len(pa.model.annotations) == 5)
Example #34
0
def remove_kappa_dead_rules(stmts, model, dead_rules):
    # FIXME: we should probably check that a statement we remove has all its
    # generated rules recognized as dead. If it has at least one live rule
    # coming from it, we shouldn't remove it. But the dead rules should still
    # be removed somehow from the final model.
    dead_uuids = set()
    for rule in dead_rules:
        for ann in model.annotations:
            if ann.subject == rule and ann.predicate == 'from_indra_statement':
                dead_uuids.add(ann.object)
    all_uuids = {stmt.uuid for stmt in stmts}
    live_uuids = all_uuids - dead_uuids
    stmts = ac.filter_uuid_list(stmts, live_uuids)
    pa = PysbAssembler()
    pa.add_statements(stmts)
    model = pa.make_model()
    return stmts, model
Example #35
0
def test_pysb_assembler_autophos1():
    enz = Agent('MEK1')
    stmt = Autophosphorylation(enz, 'serine', '222')
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==1)
    assert(len(model.monomers)==1)
Example #36
0
def test_pysb_assembler_actsub():
    stmt = ActiveForm(Agent('BRAF', mutations=[MutCondition('600', 'V', 'E')]),
                      'activity', True)
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model(policies='two_step')
    assert(len(model.rules)==0)
    assert(len(model.monomers)==1)
Example #37
0
def test_convert_subj():
    stmt = Conversion(Agent('PIK3CA'), [Agent('PIP2')], [Agent('PIP3')])
    pa = PysbAssembler()
    pa.add_statements([stmt])
    pa.make_model()
    assert(len(pa.model.parameters) == 4)
    assert(len(pa.model.rules) == 1)
    assert(len(pa.model.monomers) == 3)
Example #38
0
    def replace_agent(self, agent_name, agent_replacement_names, model_id):
        """Replace an agent in a model with other agents.

        This is used, for instance, to expand a protein family to
        multiple specific proteins.
        """
        for stmt in self.statements[model_id - 1]:
            agent_key = [
                i for i, m in enumerate(stmt.agent_list())
                if m is not None and m.name == agent_name
            ]
            if agent_key:
                self.statements[model_id - 1].remove(stmt)
                for p in agent_replacement_names:
                    s = copy.deepcopy(stmt)
                    if isinstance(stmt, Complex):
                        s.members[agent_key[0]].name = p
                    else:
                        s.__dict__[agent_key[0]].name = p
                    self.extend_statements([s], model_id)
        pa = PysbAssembler()
        pa.add_statements(self.statements[model_id - 1])
        model = pa.make_model()
        pa.add_default_initial_conditions(self.default_initial_amount)
        return model
Example #39
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
Example #40
0
def test_pysb_assembler_complex_twostep():
    member1 = Agent('BRAF')
    member2 = Agent('MEK1')
    stmt = Complex([member1, member2])
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model(policies='two_step')
    assert(len(model.rules)==2)
    assert(len(model.monomers)==2)
Example #41
0
def test_activity_activity3():
    subj = Agent('Vemurafenib')
    obj = Agent('BRAF')
    stmt = Inhibition(subj, obj)
    pa = PysbAssembler(policies='one_step')
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==1)
    assert(len(model.monomers)==2)
Example #42
0
def test_activity_activity():
    subj = Agent('KRAS')
    obj = Agent('BRAF')
    stmt = Activation(subj, obj)
    pa = PysbAssembler(policies='interactions_only')
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==1)
    assert(len(model.monomers)==2)
Example #43
0
def test_pysb_assembler_dephos_twostep1():
    phos = Agent('PP2A')
    sub = Agent('MEK1')
    stmt = Dephosphorylation(phos, sub, 'serine', '222')
    pa = PysbAssembler(policies='two_step')
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==3)
    assert(len(model.monomers)==2)
Example #44
0
def test_pysb_assembler_phos_twostep_local():
    enz = Agent('BRAF')
    sub = Agent('MEK1')
    stmt = Phosphorylation(enz, sub, 'serine', '222')
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model(policies='two_step')
    assert(len(model.rules)==3)
    assert(len(model.monomers)==2)
Example #45
0
def test_pysb_assembler_transphos1():
    egfr = Agent('EGFR')
    enz = Agent('EGFR', bound_conditions=[BoundCondition(egfr, True)])
    stmt = Transphosphorylation(enz, 'tyrosine')
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==1)
    assert(len(model.monomers)==1)
Example #46
0
def test_pysb_assembler_autophos2():
    raf1 = Agent('RAF1')
    enz = Agent('MEK1', bound_conditions=[BoundCondition(raf1, True)])
    stmt = Autophosphorylation(enz, 'serine', '222')
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==1)
    assert(len(model.monomers)==2)
Example #47
0
def test_annotation_regamount():
    st1 = IncreaseAmount(Agent('BRAF', db_refs = {'UP': 'P15056'}),
                         Agent('MAP2K2', db_refs = {'HGNC': '6842'}))
    st2 = DecreaseAmount(Agent('BRAF', db_refs = {'UP': 'P15056'}),
                         Agent('MAP2K2', db_refs = {'HGNC': '6842'}))
    pa = PysbAssembler()
    pa.add_statements([st1, st2])
    pa.make_model()
    assert(len(pa.model.annotations) == 8)
Example #48
0
def test_pysb_assembler_dephos_noenz():
    enz = None
    sub = Agent('MEK1')
    stmt = Phosphorylation(enz, sub, 'serine', '222')
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==0)
    assert(len(model.monomers)==0)
Example #49
0
def test_non_python_name_phos():
    st = Phosphorylation(Agent('14-3-3'), Agent('BRAF kinase'))
    pa = PysbAssembler()
    pa.add_statements([st])
    pa.make_model()
    names = [m.name for m in pa.model.monomers]
    assert('BRAF_kinase' in names)
    assert('p14_3_3' in names)
    bng.generate_equations(pa.model)
Example #50
0
def test_agent_loc():
    st = Phosphorylation(Agent('BRAF', location='cytoplasm'), Agent('MEK'))
    pa = PysbAssembler()
    pa.add_statements([st])
    pa.make_model()
    assert(len(pa.model.rules) == 1)
    r = pa.model.rules[0]
    braf = r.reactant_pattern.complex_patterns[0].monomer_patterns[0]
    assert(braf.site_conditions == {'loc': 'cytoplasm'})
Example #51
0
def test_pysb_assembler_gap1():
    gap = Agent('NF1')
    ras = Agent('HRAS')
    stmt = Gap(gap, ras)
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==1)
    assert(len(model.monomers)==2)
Example #52
0
def test_pysb_assembler_gef1():
    gef = Agent('SOS1')
    ras = Agent('HRAS')
    stmt = Gef(gef, ras)
    pa = PysbAssembler()
    pa.add_statements([stmt])
    model = pa.make_model()
    assert(len(model.rules)==1)
    assert(len(model.monomers)==2)
Example #53
0
def test_activeform_site():
    a = Agent('A', db_refs={'HGNC': '1234'})
    b = Agent('B', db_refs={'HGNC': '5678'})
    b_phos = Agent('B', mods=[ModCondition('phosphorylation', 'Y', '200')],
                   db_refs={'HGNC': '5678'})
    st1 = Phosphorylation(a, b, 'S', '100')
    st2 = ActiveForm(b_phos, 'kinase', True)
    pa = PysbAssembler(policies='one_step')
    pa.add_statements([st1, st2])
    model = pa.make_model()
Example #54
0
def test_set_context_monomer_notfound():
    st = Phosphorylation(Agent("MAP2K1"), Agent("XYZ"))
    pa = PysbAssembler()
    pa.add_statements([st])
    pa.make_model()
    assert pa.model.parameters["MAP2K1_0"].value < 1000
    assert pa.model.parameters["XYZ_0"].value < 1000
    pa.set_context("A375_SKIN")
    assert pa.model.parameters["MAP2K1_0"].value > 10000
    assert pa.model.parameters["XYZ_0"].value < 1000
Example #55
0
def get_subnetwork(statements, nodes, relevance_network=None,
                   relevance_node_lim=10):
    """Return a PySB model based on a subset of given INDRA Statements.

    Statements are first filtered for nodes in the given list and other nodes
    are optionally added based on relevance in a given network. The filtered
    statements are then assembled into an executable model using INDRA's
    PySB Assembler.

    Parameters
    ----------
    statements : list[indra.statements.Statement]
        A list of INDRA Statements to extract a subnetwork from.
    nodes : list[str]
        The names of the nodes to extract the subnetwork for.
    relevance_network : Optional[str]
        The UUID of the NDEx network in which nodes relevant to the given
        nodes are found.
    relevance_node_lim : Optional[int]
        The maximal number of additional nodes to add to the subnetwork
        based on relevance.

    Returns
    -------
    model : pysb.Model
        A PySB model object assembled using INDRA's PySB Assembler from
        the INDRA Statements corresponding to the subnetwork.
    """
    if relevance_network is not None:
        relevant_nodes = _find_relevant_nodes(nodes, relevance_network,
                                              relevance_node_lim)
        all_nodes = nodes + relevant_nodes
    else:
        all_nodes = nodes
    filtered_statements = _filter_statements(statements, all_nodes)
    pa = PysbAssembler()
    pa.add_statements(filtered_statements)
    model = pa.make_model()
    return model
Example #56
0
def assemble_pysb(stmts, data_genes, out_file):
    """Return an assembled PySB model."""
    stmts = ac.filter_direct(stmts)
    stmts = ac.filter_belief(stmts, 0.95)
    stmts = ac.filter_top_level(stmts)
    stmts = ac.filter_gene_list(stmts, data_genes, 'all')
    stmts = ac.reduce_activities(stmts)
    pa = PysbAssembler()
    pa.add_statements(stmts)
    model = pa.make_model()
    # Add observables
    o = Observable('MAPK1p', model.monomers['MAPK1'](T185='p', Y187='p'))
    model.add_component(o)
    o = Observable('MAPK3p', model.monomers['MAPK3'](T202='p', Y204='p'))
    model.add_component(o)
    o = Observable('GSK3Ap', model.monomers['GSK3A'](S21='p'))
    model.add_component(o)
    o = Observable('GSK3Bp', model.monomers['GSK3B'](S9='p'))
    model.add_component(o)
    o = Observable('RPS6p', model.monomers['RPS6'](S235='p'))
    model.add_component(o)
    o = Observable('EIF4EBP1p', model.monomers['EIF4EBP1'](S65='p'))
    model.add_component(o)
    o = Observable('JUNp', model.monomers['JUN'](S73='p'))
    model.add_component(o)
    o = Observable('FOXO3p', model.monomers['FOXO3'](S315='p'))
    model.add_component(o)
    o = Observable('AKT1p', model.monomers['AKT1'](S473='p'))
    model.add_component(o)
    o = Observable('AKT2p', model.monomers['AKT2'](S474='p'))
    model.add_component(o)
    o = Observable('AKT3p', model.monomers['AKT3'](S='p'))
    model.add_component(o)
    o = Observable('ELK1', model.monomers['ELK1'](S383='p'))
    model.add_component(o)
    # Set context
    pa.set_context('SKMEL28_SKIN')
    pa.save_model(out_file)

    ke = KappaExporter(model)
    with open('%s.ka' % base_file, 'wb') as fh:
        base_file, _ = os.path.splitext(out_file)
        fh.write(ke.export().encode('utf-8'))

    return model
Example #57
0
def test_save_rst():
    st = Phosphorylation(Agent("MAP2K1"), Agent("MAPK3"))
    pa = PysbAssembler()
    pa.add_statements([st])
    pa.make_model()
    pa.save_rst("/dev/null")
Example #58
0
def test_annotation():
    st = Phosphorylation(Agent("BRAF", db_refs={"UP": "P15056"}), Agent("MAP2K2", db_refs={"HGNC": "6842"}))
    pa = PysbAssembler()
    pa.add_statements([st])
    pa.make_model()
    assert len(pa.model.annotations) == 2
Example #59
0
from indra.util import plot_formatting as pf
from indra.assemblers import PysbAssembler

# 1. TEXT
# User defines text:
text = ('MEK1 phosphorylates ERK2 on threonine 185 and tyrosine 187.')

# Show round trip going out to TRIPS/DRUM web service,
# return logical form to INDRA, which is queried by
# INDRA for relevant statements
tp = trips.process_text(text)

# Now generate PySB model
stmts = tp.statements # Don't show this one

pa = PysbAssembler()
pa.add_statements(stmts)
pa.make_model()
t = np.linspace(0, 25000)
sol = Solver(pa.model, t)
sol.run()

pf.set_fig_params()
plt.ion()
plt.figure(figsize=(1, 1), dpi=300)
species_names = [str(s) for s in pa.model.species]
plt.plot(t, sol.y[:, species_names.index("MAPK1(T185='u', Y187='u')")],
         'b', label='MAPK1.uu')
plt.plot(t, sol.y[:, species_names.index("MAPK1(T185='p', Y187='u')")] +
            sol.y[:, species_names.index("MAPK1(T185='u', Y187='p')")],
         'g', label='MAPK1.p')
Example #60
0
        else:
            sdict[s]=None
    return mon(sdict)

def add_initial(model, pattern, value):
    """Add initial condition; if an initial condition for this pattern
    already exists, override it."""
    complex_pattern = pysb.as_complex_pattern(pattern)

    for other_cp, other_value in model.initial_conditions:
        if complex_pattern.is_equivalent_to(other_cp):
            model.initial_conditions.remove((other_cp, other_value))
    model.initial(complex_pattern, value)

# Generate model rules via indra
pa = PysbAssembler()
bp = bel.process_belrdf('../../data/RAS_combined.rdf')
pa.add_statements(bp.statements)
model = pa.make_model(initial_conditions=False)

# Useful shortcuts to access model components
m = model.monomers
p = model.parameters

# Add ligand to the model
model.add_component(Monomer('EGF'))
model.add_component(Parameter('kf_ee_act', 1e-6))
model.add_component(
    Rule('EGF_activates_EGFR',
         m['EGF']() + m['EGFR']({'Kinase':'inactive'}) >>
         m['EGF']() + m['EGFR']({'Kinase':'active'}),