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
def assemble_model(model_name, statements): # Pysb assembly pa = PysbAssembler() pa.add_statements(statements) ts = time.time() model = pa.make_model() te = time.time() print('Assembly took %.2fs' % (te - ts)) model.name = model_name add_observable(model) set_parameters(model) # Save and return model pa.model = model pa.save_model('%s.py' % model_name) return model
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
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) # Make a SIF model equivalent to the PySB model # Useful for making direct comparisons in pathfinding sa = SifAssembler(stmts) sa.make_model(use_name_as_key=True, include_mods=True, include_complexes=True) sif_str = sa.print_model(include_unsigned_edges=True) with open('%s_pysb.sif' % base_file, 'wt') as f: f.write(sif_str) # 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
def assemble_model(model_name, reread=False): xml_fname = model_name + '.xml' if not reread: print('Processing %s' % xml_fname) if os.path.exists(xml_fname): with open(xml_fname, 'rb') as fh: tp = trips.process_xml(fh.read()) else: reread = True if reread: fname = model_name + '.txt' print('Reading %s' % fname) with open(fname, 'rb') as fh: ts = time.time() tp = trips.process_text(fh.read(), xml_fname) te = time.time() print('Reading took %.2fs' % (te - ts)) print('Assembling statements:') for i, st in enumerate(tp.statements): print('%d: %s' % (i, st)) print('----------------------') pa = PysbAssembler() pa.add_statements(tp.statements) ts = time.time() model = pa.make_model() te = time.time() print('Assembly took %.2fs' % (te - ts)) model.name = model_name add_observable(model) set_parameters(model) # Save and return model pa.model = model pa.save_model('%s.py' % model_name) return model
def assemble_model(model_id, reread=False): model_name = 'model%d' % model_id # If model has already been read, just process the EKB XML if os.path.exists(model_name + '.xml') and not reread: tp = trips.process_xml(open(model_name + '.xml').read()) else: # Start with the basic model model_txt = open('model1.txt').read() # Apply patches one by one to get to the current model text for j in range(1, model_id): patch_txt = open('model%d_from%d.txt' % (j + 1, j)).read() model_txt = apply_patch(model_txt, patch_txt) print('Reading model %d text:' % model_id) print(model_txt) # Process model text and save result EKB XML tp = trips.process_text(model_txt, model_name + '.xml') print('Assembling statements:') for i, st in enumerate(tp.statements): print('%d: %s' % (i, st)) # Assemble the PySB model pa = PysbAssembler() pa.add_statements(tp.statements) model = pa.make_model(policies='two_step') # Set initial conditions erk = model.monomers['ERK'] obs = Observable(b'ERK_p', erk(phospho='p')) model.add_component(obs) vem = model.monomers['VEMURAFENIB'] obs = Observable(b'Vem_free', vem(map3k=None)) model.add_component(obs) ras = model.monomers['RAS'] obs = Observable(b'RAS_active', ras(gtp=ANY)) model.add_component(obs) braf = model.monomers['BRAF'] obs = Observable(b'BRAF_active', braf(vemurafenib=None)) model.add_component(obs) model.parameters[b'BRAF_0'].value = 0 egf = model.monomers['EGF'] obs = Observable(b'EGF_free', egf(erbb=None)) model.add_component(obs) # Add mutated form of BRAF as initial condition sites_dict = {} for site in braf.sites: if site in braf.site_states: sites_dict[site] = braf.site_states[site][0] else: sites_dict[site] = None sites_dict['V600'] = 'E' model.add_component(Parameter('BRAF_mut_0', 1e5)) model.initial(braf(**sites_dict), model.parameters['BRAF_mut_0']) # Set up model parameters model.parameters['kf_ee_bind_1'].value = 1 model.parameters['kr_ee_bind_1'].value = 0.1 model.parameters['kf_ee_bind_2'].value = 1 model.parameters['kr_ee_bind_2'].value = 0.1 model.parameters['kf_eg_bind_1'].value = 1 model.parameters['kr_eg_bind_1'].value = 0.1 model.parameters['kf_gs_bind_1'].value = 1 model.parameters['kr_gs_bind_1'].value = 0.1 model.parameters['kf_sr_bind_1'].value = 1 model.parameters['kr_sr_bind_1'].value = 50 model.parameters['kf_rg_bind_1'].value = 50 model.parameters['kr_rg_bind_1'].value = 0.5 model.parameters['kf_rb_bind_1'].value = 1 model.parameters['kr_rb_bind_1'].value = 0.5 model.parameters['kf_vb_bind_1'].value = 10 model.parameters['kr_vb_bind_1'].value = 1 model.parameters['kf_bm_bind_1'].value = 1 model.parameters['kr_bm_bind_1'].value = 0.1 model.parameters['kc_bm_phosphorylation_1'].value = 3 model.parameters['kf_pm_bind_1'].value = 1 model.parameters['kr_pm_bind_1'].value = 0.001 model.parameters['kc_pm_dephosphorylation_1'].value = 10 model.parameters['kf_me_bind_1'].value = 1 model.parameters['kr_me_bind_1'].value = 0.1 model.parameters['kc_me_phosphorylation_1'].value = 10 model.parameters['kf_de_bind_1'].value = 1 model.parameters['kr_de_bind_1'].value = 0.001 model.parameters['kc_de_dephosphorylation_1'].value = 10 model.parameters['VEMURAFENIB_0'].value = 0 model.parameters['EGF_0'].value = 1e3 model.parameters['EGFR_0'].value = 1e5 model.parameters['SOS_0'].value = 1e3 model.parameters['GRB2_0'].value = 1e5 model.parameters['RAS_0'].value = 2e5 model.parameters['GTP_0'].value = 1e7 model.parameters['MEK_0'].value = 1e5 model.parameters['ERK_0'].value = 1e5 model.parameters['DUSP6_0'].value = 1e3 model.parameters['PPP2CA_0'].value = 1e5 if model_id >= 2: model.parameters['Phosphatase_0'].value = 1e2 model.parameters['kf_es_bind_1'].value = 1e-05 model.parameters['kr_es_bind_1'].value = 1e-04 model.parameters['kc_es_phosphorylation_1'].value = 1 model.parameters['kf_ps_bind_1'].value = 1 model.parameters['kr_ps_bind_1'].value = 0.1 model.parameters['kc_ps_dephosphorylation_1'].value = 1e-04 if model_id >= 3: model.parameters['kf_bb_bind_1'].value = 10 model.parameters['kr_bb_bind_1'].value = 1 model.parameters['kf_vb_bind_2'].value = 1e-04 pa.model = model pa.save_model('model%d.py' % model_id) return model
def test_print_model(): st = Phosphorylation(Agent("MAP2K1"), Agent("MAPK3")) pa = PysbAssembler() pa.add_statements([st]) pa.make_model() pa.save_model("/dev/null")
def assemble_model(model_name, reread=False): xml_fname = model_name + '.xml' if not reread: print('Processing %s' % xml_fname) if os.path.exists(xml_fname): with open(xml_fname, 'rb') as fh: tp = trips.process_xml(fh.read()) else: reread = True if reread: fname = model_name + '.txt' print('Reading %s' % fname) with open(fname, 'rb') as fh: tp = trips.process_text(fh.read(), xml_fname) print('Assembling statements:') for i, st in enumerate(tp.statements): print('%d: %s' % (i, st)) print('----------------------') pa = PysbAssembler() pa.add_statements(tp.statements) model = pa.make_model() model.name = model_name p53 = model.monomers['TP53'] obs = Observable(b'p53_active', p53(activity='active')) model.add_component(obs) if not model_name.endswith('var'): model.parameters['kf_aa_act_1'].value = 5e-06 model.parameters['kf_pt_act_1'].value = 1e-05 if model_name == 'p53_ATM': model.add_component(Parameter('ATMa_0', 1)) atm = model.monomers['ATM'] model.initial(atm(activity='active'), model.parameters['ATMa_0']) model.parameters['kf_pa_act_1'].value = 1e-04 obs = Observable(b'atm_active', atm(activity='active')) model.add_component(obs) if model_name == 'p53_ATR': model.add_component(Parameter('ATRa_0', 1)) atr = model.monomers['ATR'] model.initial(atr(activity='active'), model.parameters['ATRa_0']) obs = Observable(b'atr_active', atr(activity='active')) model.add_component(obs) if model_name == 'p53_ATM_var': #model.add_component(Parameter('ATMa_0', 1)) #atm = model.monomers['ATM'] #model.initial(atm(activity='active'), # model.parameters['ATMa_0']) model.add_component(Parameter('ATMa_0', 1)) atm = model.monomers['ATM'] model.initial(atm(phospho='p'), model.parameters['ATMa_0']) model.parameters['kf_pa_dephosphorylation_1'].value = 1e-04 model.parameters['MDM2_0'].value = 0 model.parameters['kf_m_deg_1'].value = 8e-01 model.parameters['kf_tm_synth_1'].value = 0.2 model.parameters['kf_aa_phosphorylation_1'].value = 5e-06 obs = Observable(b'atm_active', atm(phospho='p')) model.add_component(obs) pa.model = model pa.save_model('%s.py' % model_name) return model
def assemble_model(model_name, reread=False): xml_fname = model_name + '.xml' if not reread: print('Processing %s' % xml_fname) if os.path.exists(xml_fname): with open(xml_fname, 'rb') as fh: tp = trips.process_xml(fh.read()) else: reread = True if reread: fname = model_name + '.txt' print('Reading %s' % fname) with open(fname, 'rb') as fh: tp = trips.process_text(fh.read(), xml_fname) print('Assembling statements:') for i, st in enumerate(tp.statements): print('%d: %s' % (i, st)) print('----------------------') pa = PysbAssembler() pa.add_statements(tp.statements) model = pa.make_model() model.name = model_name p53 = model.monomers['TP53'] obs = Observable(b'p53_active', p53(activity='active')) model.add_component(obs) if not model_name.endswith('var'): model.parameters['kf_aa_act_1'].value = 5e-06 model.parameters['kf_pt_act_1'].value = 1e-05 if model_name == 'p53_ATM': model.add_component(Parameter('ATMa_0', 1)) atm = model.monomers['ATM'] model.initial(atm(activity='active'), model.parameters['ATMa_0']) model.parameters['kf_pa_act_1'].value = 1e-04 obs = Observable(b'atm_active', atm(activity='active')) model.add_component(obs) if model_name == 'p53_ATR': model.add_component(Parameter('ATRa_0', 1)) atr = model.monomers['ATR'] model.initial(atr(activity='active'), model.parameters['ATRa_0']) obs = Observable(b'atr_active', atr(activity='active')) model.add_component(obs) if model_name == 'p53_ATM_var': #model.add_component(Parameter('ATMa_0', 1)) #atm = model.monomers['ATM'] #model.initial(atm(activity='active'), # model.parameters['ATMa_0']) model.add_component(Parameter('ATMa_0', 1)) atm = model.monomers['ATM'] model.initial(atm(phospho='p'), model.parameters['ATMa_0']) model.parameters['kf_pa_dephosphorylation_1'].value = 1e-04 model.parameters['MDM2_0'].value = 0 model.parameters['kf_m_deg_1'].value = 8e-01 model.parameters['kf_tm_synth_1'].value = 0.2 model.parameters['kf_aa_phosphorylation_1'].value = 5e-06 obs = Observable(b'atm_active', atm(phospho='p')) model.add_component(obs) pa.model = model pa.save_model('%s.py' % model_name) return model