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) == 4)
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)
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'})
def test_set_context(): st = Phosphorylation(Agent('MAP2K1'), Agent('MAPK3')) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() assert(pa.model.parameters['MAP2K1_0'].value == pa.default_initial_amount) assert(pa.model.parameters['MAPK3_0'].value == pa.default_initial_amount) pa.set_context('A375_SKIN') assert(pa.model.parameters['MAP2K1_0'].value > 10000) assert(pa.model.parameters['MAPK3_0'].value > 10000)
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)
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)
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() assert(len(model.rules)==1) assert(len(model.monomers)==2)
def test_export_model(): st = Phosphorylation(Agent('MAP2K1'), Agent('MAPK3')) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() exp_str = pa.export_model('kappa') assert(exp_str) exp_str = pa.export_model('bngl') assert(exp_str) exp_str = pa.export_model('sbml', file_name='/dev/null') assert(exp_str)
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'})
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', WILD)})
def test_translocation(): st = Translocation(Agent('FOXO3A'), 'nucleus', 'cytoplasm') pa = PysbAssembler() pa.add_statements([st]) pa.make_model() assert(len(pa.model.rules) == 1) r = pa.model.rules[0] f1 = r.reactant_pattern.complex_patterns[0].monomer_patterns[0] assert(f1.site_conditions == {'loc': 'nucleus'}) f2 = r.product_pattern.complex_patterns[0].monomer_patterns[0] assert(f2.site_conditions == {'loc': 'cytoplasm'}) assert(r.rate_forward.name == 'kf_foxo3a_nucleus_cytoplasm_1')
def test_translocation_loc_special_char(): st = Translocation(Agent('KSR1'), 'cytoplasm', 'cell surface') pa = PysbAssembler() pa.add_statements([st]) pa.make_model() assert(len(pa.model.rules) == 1) r = pa.model.rules[0] f1 = r.reactant_pattern.complex_patterns[0].monomer_patterns[0] assert(f1.site_conditions == {'loc': 'cytoplasm'}) f2 = r.product_pattern.complex_patterns[0].monomer_patterns[0] assert(f2.site_conditions == {'loc': 'cell_surface'}) assert(r.rate_forward.name == 'kf_ksr1_cytoplasm_cell_surface_1')
def test_activation_subj1(): """No subject activity is defined.""" st = Activation(Agent('a'), Agent('b')) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() assert(pa.model.monomers['a'].sites == []) left = pa.model.rules[0].reactant_pattern subj_left = left.complex_patterns[0].monomer_patterns[0] right = pa.model.rules[0].product_pattern subj_right = right.complex_patterns[0].monomer_patterns[0] assert(subj_left.site_conditions == {}) assert(subj_right.site_conditions == {})
def test_activation_subj3(): """Subject activity is defined implicitly by another statement.""" st = Activation(Agent('a'), Agent('b')) st2 = Activation(Agent('c'), Agent('a')) pa = PysbAssembler() pa.add_statements([st, st2]) pa.make_model() assert(pa.model.monomers['a'].sites == ['activity']) left = pa.model.rules[0].reactant_pattern subj_left = left.complex_patterns[0].monomer_patterns[0] right = pa.model.rules[0].product_pattern subj_right = right.complex_patterns[0].monomer_patterns[0] assert(subj_left.site_conditions == {u'activity': (u'active')}) assert(subj_right.site_conditions == {u'activity': (u'active')})
def test_activation_subj2(): """Subject activity is defined explicitly.""" st = Activation(Agent('a'), Agent('b')) st2 = ActiveForm(Agent('a', mods=[ModCondition('phosphorylation')]), 'activity', True) pa = PysbAssembler() pa.add_statements([st, st2]) pa.make_model() assert(pa.model.monomers['a'].sites == ['phospho']) left = pa.model.rules[0].reactant_pattern subj_left = left.complex_patterns[0].monomer_patterns[0] right = pa.model.rules[0].product_pattern subj_right = right.complex_patterns[0].monomer_patterns[0] assert(subj_left.site_conditions == {u'phospho': (u'p', WILD)}) assert(subj_right.site_conditions == {u'phospho': (u'p', WILD)})
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()
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()
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)
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)
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)
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)
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)
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)
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)
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)
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)
def test_pysb_assembler_rasgap1(): gap = Agent('NF1') ras = Agent('HRAS') stmt = RasGap(gap, ras) pa = PysbAssembler() pa.add_statements([stmt]) model = pa.make_model() assert(len(model.rules)==1) assert(len(model.monomers)==2)
def test_pysb_assembler_rasgef1(): gef = Agent('SOS1') ras = Agent('HRAS') stmt = RasGef(gef, ras) pa = PysbAssembler() pa.add_statements([stmt]) model = pa.make_model() assert(len(model.rules)==1) assert(len(model.monomers)==2)
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)
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) == 2) assert (len(model.monomers) == 3)
def test_increaseamount_one_step(): subj = Agent('KRAS') obj = Agent('BRAF') st1 = IncreaseAmount(subj, obj) st2 = IncreaseAmount(None, obj) pa = PysbAssembler(policies='one_step') pa.add_statements([st1, st2]) model = pa.make_model() assert (len(model.rules) == 2) assert (len(model.monomers) == 2)
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() assert (len(model.rules) == 1) assert (len(model.monomers) == 3)
def test_pysb_assembler_act1(): egfr = Agent('EGFR') subj = Agent('GRB2', bound_conditions=[BoundCondition(egfr, True)]) obj = Agent('SOS1') stmt = Activation(subj, obj) pa = PysbAssembler() pa.add_statements([stmt]) model = pa.make_model() assert (len(model.rules) == 1) assert (len(model.monomers) == 3)
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)
def test_decreaseamount_interactions_only(): subj = Agent('KRAS') obj = Agent('BRAF') st1 = DecreaseAmount(subj, obj) st2 = DecreaseAmount(None, obj) pa = PysbAssembler(policies='interactions_only') pa.add_statements([st1, st2]) model = pa.make_model() assert (len(model.rules) == 1) assert (len(model.monomers) == 2)
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() assert (len(model.rules) == 2) assert (len(model.monomers) == 3)
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()
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() assert (len(model.rules) == 4) assert (len(model.monomers) == 3)
def check_rule_annotation(stmt, policy): pa = PysbAssembler(policies=policy) pa.add_statements([stmt]) model = pa.make_model() subj = [ann.object for ann in model.annotations if ann.predicate == 'rule_has_subject'] obj = [ann.object for ann in model.annotations if ann.predicate == 'rule_has_object'] assert len(subj) == 1 assert subj[0] == 'A' assert len(obj) == 1 assert obj[0] == 'B'
def test_assemble_export_sbgn(): # Add various statements to test their assembly st = Phosphorylation(Agent('BRAF'), Agent('MAP2K1')) mc = ModCondition('phosphorylation', None, None, True) st2 = Activation(Agent('MAP2K1', mods=[mc]), Agent('MAPK1')) st3 = Complex([Agent('MAPK1'), Agent('DUSP6')]) st4 = DecreaseAmount(None, Agent('DUSP6')) pa = PysbAssembler() pa.add_statements([st, st2, st3, st4]) pa.make_model() # Export to SBGN model = pa.export_model('sbgn') assert model is not None # Test that the right elements are there in the result et = ET.fromstring(model) sbgn_ns = {'s': 'http://sbgn.org/libsbgn/pd/0.1'} glyphs = et.findall('s:map/s:glyph', namespaces=sbgn_ns) glyph_classes = [g.attrib.get('class') for g in glyphs] assert glyph_classes.count('macromolecule') == 6 assert glyph_classes.count('complex') == 2 assert glyph_classes.count('process') == 10 return pa
def _check_mod_assembly(mod_class): subj = Agent('KRAS') obj = Agent('BRAF') st1 = mod_class(subj, obj) pa = PysbAssembler(policies='interactions_only') pa.add_statements([st1]) model = pa.make_model() assert(len(model.rules)==1) assert(len(model.monomers)==2) pa = PysbAssembler(policies='one_step') pa.add_statements([st1]) model = pa.make_model() assert(len(model.rules)==1) assert(len(model.monomers)==2) pa = PysbAssembler(policies='two_step') pa.add_statements([st1]) model = pa.make_model() assert(len(model.rules)==3) assert(len(model.monomers)==2)
def test_pysb_assembler_actmod2(): mek = Agent('MEK', activity=ActivityCondition('activity', True)) 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() assert (len(model.rules) == 4) assert (len(model.monomers) == 2) model = pa.make_model(policies='two_step') assert (len(model.rules) == 9)
def test_pysb_assembler_actmod1(): mek = Agent('MEK') erk = Agent('ERK') stmts = [] mc1 = ModCondition('phosphorylation', 'serine', '218') mc2 = ModCondition('phosphorylation', 'serine', '222') stmts.append(ActiveForm(Agent('MEK', mods=[mc1, mc2]), '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() assert (len(model.rules) == 2) assert (len(model.monomers) == 2)
def test_non_python_name_bind(): st = Complex([Agent('14-3-3'), Agent('BRAF kinase')]) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() bng.generate_equations(pa.model)
def test_generate_equations(): st = Phosphorylation(Agent('MAP2K1'), Agent('MAPK3')) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() bng.generate_equations(pa.model)
def test_save_rst(): st = Phosphorylation(Agent('MAP2K1'), Agent('MAPK3')) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() pa.save_rst('/dev/null')
def test_set_context_celltype_notfound(): st = Phosphorylation(Agent('MAP2K1'), Agent('MAPK3')) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() pa.set_context('XYZ')
def test_phos_atpdep(): st = Phosphorylation(Agent('BRAF'), Agent('MEK'), 'S', '222') pa = PysbAssembler() pa.add_statements([st]) pa.make_model(policies='atp_dependent') assert(len(pa.model.rules) == 5)
def test_deubiq_michaelis_menten(): stmt = Deubiquitination(Agent('MEK'), Agent('ERK')) pa = PysbAssembler() pa.add_statements([stmt]) pa.make_model(policies='michaelis_menten') assert(len(pa.model.parameters) == 4)