Beispiel #1
0
def test_no_shared_objects():
    """Make sure shared objects are not being created between statements"""
    verbs = ('phosphorylates', 'binds', 'activates',
             ' causes activation of ', 'increases', 'degrades', 'synthesizes',
             'transcribes', 'ubiquitinates')
    for verb in verbs:
        text = 'HEDGEHOG %s SMURF1 and SMURF2' % verb
        tp = trips.process_text(text)
        stmts = tp.statements
        assert len(stmts) == 2
        stmt1, stmt2 = stmts
        # assert stmt1.evidence[0] is not stmt2.evidence[0]
        hedgehog1 = stmt1.agent_list()[0]
        hedgehog2 = stmt2.agent_list()[0]
        assert hedgehog1 is not hedgehog2
    # autophosphorylation
    text = 'HEDGEHOG phosphorylates itself at Ser1337 and Tyr99'
    tp = trips.process_text(text)
    stmts = tp.statements
    assert len(stmts) == 2
    stmt1, stmt2 = stmts
    assert stmt1.evidence[0] is not stmt2.evidence[0]
    hedgehog1 = stmt1.agent_list()[0]
    hedgehog2 = stmt2.agent_list()[0]
    assert hedgehog1 is not hedgehog2
Beispiel #2
0
def test_ubiquitination():
    tp = trips.process_text('MDM2 ubiquitinates TP53.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.Ubiquitination)
    assert unicode_strs((tp, st))
    assert_grounding_value_or_none(st)
    assert_if_hgnc_then_up(st)
    assert st.evidence
Beispiel #3
0
def trips_process_text():
    """Process text with TRIPS and return INDRA Statements."""
    if request.method == 'OPTIONS':
        return {}
    response = request.body.read().decode('utf-8')
    body = json.loads(response)
    text = body.get('text')
    tp = trips.process_text(text)
    return _stmts_from_proc(tp)
Beispiel #4
0
def test_synthesis():
    tp = trips.process_text('NFKB transcribes IKB.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.IncreaseAmount)
    assert st.subj is not None
    assert st.obj is not None
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #5
0
def test_degradation():
    tp = trips.process_text('MDM2 degrades TP53.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.DecreaseAmount)
    assert st.subj is not None
    assert st.obj is not None
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #6
0
def test_phosphorylation_nosite():
    tp = trips.process_text('BRAF phosphorylates MEK1 at Serine.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.Phosphorylation)
    assert st.residue == 'S'
    assert st.position is None
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #7
0
def test_actform_bound():
    tp = trips.process_text('HRAS bound to GTP is activated.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.ActiveForm)
    assert isinstance(st.agent.bound_conditions[0], ist.BoundCondition)
    assert st.agent.bound_conditions[0].agent.name == 'GTP'
    assert st.agent.bound_conditions[0].is_bound == True
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #8
0
def test_phosphorylation():
    tp = trips.process_text('BRAF phosphorylates MEK1 at Ser222.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.Phosphorylation)
    assert st.residue == 'S'
    assert st.position == '222'
    assert st.evidence
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.sub.db_refs['TEXT'] == 'MEK1'
    assert unicode_strs((tp, st))
Beispiel #9
0
def test_actform_muts():
    tp = trips.process_text('BRAF V600E is activated.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.ActiveForm)
    assert isinstance(st.agent.mutations[0], ist.MutCondition)
    assert st.agent.mutations[0].residue_from == 'V'
    assert st.agent.mutations[0].residue_to == 'E'
    assert st.agent.mutations[0].position == '600'
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #10
0
def test_actmods2():
    tp = trips.process_text('BRAF phosphorylated at Ser536 binds MEK1.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.Complex)
    braf = st.members[0]
    assert braf.mods[0].mod_type == 'phosphorylation'
    assert braf.mods[0].residue == 'S'
    assert braf.mods[0].position == '536'
    assert unicode_strs((tp, st, braf))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #11
0
def test_simple_decrease():
    tp = trips.process_text('Selumetinib decreases FOS.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.DecreaseAmount)
    assert st.subj is not None
    assert st.obj is not None
    assert st.subj.name.upper() == 'SELUMETINIB'
    assert st.obj.name.upper() == 'FOS'
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #12
0
def test_simple_decrease():
    tp = trips.process_text('Selumetinib decreases FOS.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.DecreaseAmount)
    assert st.subj is not None
    assert st.obj is not None
    assert st.subj.name.upper() == 'SELUMETINIB'
    assert st.obj.name.upper() == 'FOS'
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #13
0
def test_actmods2():
    tp = trips.process_text('BRAF phosphorylated at Ser536 binds MEK1.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.Complex)
    braf = st.members[0]
    assert braf.mods[0].mod_type == 'phosphorylation'
    assert braf.mods[0].residue == 'S'
    assert braf.mods[0].position == '536'
    assert unicode_strs((tp, st, braf))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #14
0
def test_not_bound_to4():
    fname = sys._getframe().f_code.co_name + '.xml'
    txt = 'BRAF that is not bound to NRAS and Vemurafenib binds BRAF ' +\
          'that is not bound to Vemurafenib.'
    tp = trips.process_text(txt, fname, False)
    assert (len(tp.statements) == 1)
    st = tp.statements[0]
    assert (is_complex(st))
    assert (st.members[0].name == 'BRAF')
    assert (st.members[1].name == 'BRAF')
    assert (len(st.members[0].bound_conditions) == 2)
    assert (len(st.members[1].bound_conditions) == 1)
    os.remove(fname)
Beispiel #15
0
def test_actform_muts():
    tp = trips.process_text('BRAF V600E is activated.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.ActiveForm)
    assert isinstance(st.agent.mutations[0], ist.MutCondition)
    assert st.agent.mutations[0].residue_from == 'V'
    assert st.agent.mutations[0].residue_to == 'E'
    assert st.agent.mutations[0].position == '600'
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #16
0
def test_actmod():
    tp = trips.process_text('MEK1 phosphorylated at Ser222 is activated.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.ActiveForm)
    assert isinstance(st.agent.mods[0], ist.ModCondition)
    assert st.agent.mods[0].mod_type == 'phosphorylation'
    assert st.agent.mods[0].residue == 'S'
    assert st.agent.mods[0].position == '222'
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #17
0
def test_actmod():
    tp = trips.process_text('MEK1 phosphorylated at Ser222 is activated.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.ActiveForm)
    assert isinstance(st.agent.mods[0], ist.ModCondition)
    assert st.agent.mods[0].mod_type == 'phosphorylation'
    assert st.agent.mods[0].residue == 'S'
    assert st.agent.mods[0].position == '222'
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #18
0
def test_mod_cond():
    tp = trips.process_text('Phosphorylated BRAF binds ubiquitinated MAP2K1.')
    assert len(tp.statements) == 1
    st = tp.statements[0]
    assert isinstance(st, ist.Complex)
    braf = st.members[0]
    mek = st.members[1]
    assert len(braf.mods) == 1
    assert braf.mods[0].mod_type == 'phosphorylation'
    assert len(mek.mods) == 1
    assert mek.mods[0].mod_type == 'ubiquitination'
    assert unicode_strs((tp, st))
    assert_if_hgnc_then_up(st)
    assert_grounding_value_or_none(st)
    assert st.evidence
Beispiel #19
0
def read_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('----------------------')
    return tp.statements
Beispiel #20
0
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('ERK_p', erk(phospho='p'))
    model.add_component(obs)
    vem = model.monomers['VEMURAFENIB']
    obs = Observable('Vem_free', vem(map3k=None))
    model.add_component(obs)
    ras = model.monomers['RAS']
    obs = Observable('RAS_active', ras(gtp=ANY))
    model.add_component(obs)
    braf = model.monomers['BRAF']
    obs = Observable('BRAF_active', braf(vemurafenib=None))
    model.add_component(obs)
    model.parameters['BRAF_0'].value = 0
    egf = model.monomers['EGF']
    obs = Observable('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
Beispiel #21
0

def export_hello(model, formats):
    for f in formats:
        model_export = export(model, f)
        extension = (f if f != 'pysb_flat' else 'py')
        fname = 'hello_indra_model.%s' % extension
        with open(fname, 'wb') as fh:
            fh.write(model_export.encode('utf-8'))


# User defines text
text = 'MEK1 phosphorylates ERK2 on threonine 185 and tyrosine 187.'

# Process text using TRIPS processor
tp = trips.process_text(text)

# Get the list of extracted Statements
stmts = tp.statements

# Assemble a PySB model
pa = PysbAssembler()
pa.add_statements(stmts)
pa.make_model()

# Run simulation
t = np.linspace(0, 300)
sol = Solver(pa.model, t)
sol.run()

# Plot the result