コード例 #1
0
 def create_message(self):
     content = KQMLList('FIND-MUTEX')
     gene = ekb_from_text('TP53')
     disease = ekb_from_text('breast cancer')
     content.set('gene', gene)
     content.set('disease', disease)
     msg = get_request(content)
     return msg, content
コード例 #2
0
def test_get_disease():
    disease_ekb = ekb_from_text('pancreatic cancer')
    disease = get_disease(ET.fromstring(disease_ekb))
    disease_ekb = ekb_from_text('lung cancer')
    disease = get_disease(ET.fromstring(disease_ekb))
    disease_ekb = ekb_from_text('diabetes')
    disease = get_disease(ET.fromstring(disease_ekb))
    disease_ekb = ekb_from_text('common cold')
    disease = get_disease(ET.fromstring(disease_ekb))
コード例 #3
0
ファイル: dtda_test.py プロジェクト: bgyori/bioagents
def test_get_disease():
    disease_ekb = ekb_from_text('pancreatic cancer')
    disease = get_disease(ET.fromstring(disease_ekb))
    disease_ekb = ekb_from_text('lung cancer')
    disease = get_disease(ET.fromstring(disease_ekb))
    disease_ekb = ekb_from_text('diabetes')
    disease = get_disease(ET.fromstring(disease_ekb))
    disease_ekb = ekb_from_text('common cold')
    disease = get_disease(ET.fromstring(disease_ekb))
コード例 #4
0
    def create_message_1(self):
        content = KQMLList('FIND-VARIANTS-FOR-GENES')
        genes = ekb_from_text('EGFR and PTEN')
        content.sets('genes', str(genes))

        disease = ekb_from_text('glioblastoma')
        content.sets('disease', disease)
        content.sets('dataset', "tcga")

        msg = get_request(content)
        return msg, content
コード例 #5
0
ファイル: mra_test.py プロジェクト: kkaris/bioagents
def test_expand_model_from_ekb():
    m = MRA()
    ekb = ekb_from_text('MAP2K1 phosphorylates MAPK1.')
    res = m.build_model_from_ekb(ekb)
    model_id = res.get('model_id')
    assert(res.get('model'))
    assert(res.get('model_id') == 1)
    assert(len(m.models[1]) == 1)
    ekb = ekb_from_text('MAP2K2 phosphorylates MAPK1.')
    res = m.expand_model_from_ekb(ekb, model_id)
    assert(res.get('model'))
    assert(res.get('model_id') == 2)
    assert(len(m.models[2]) == 2)
コード例 #6
0
ファイル: msa_test.py プロジェクト: bgyori/bioagents
 def create_message(self):
     content = KQMLList('GET-COMMON')
     ekb = ekb_from_text('MEK')
     content.sets('genes', ekb)
     content.sets('up-down', 'ONT::SUCCESSOR')
     msg = get_request(content)
     return msg, content
コード例 #7
0
    def create_message_AKT1(self):
        content = KQMLList('FIND-GENE-SUMMARY')
        genes = ekb_from_text('AKT1')
        content.sets('gene', str(genes))

        msg = get_request(content)
        return msg, content
コード例 #8
0
    def create_message_3(self):
        content = KQMLList('FIND-CELLULAR-LOCATION')
        genes = ekb_from_text('AKT1, MAPK1')
        content.sets('genes', str(genes))

        msg = get_request(content)
        return msg, content
コード例 #9
0
ファイル: msa_test.py プロジェクト: bgyori/bioagents
def _get_message(heading, target=None, residue=None, position=None):
    msa = msa_module.MSA_Module(testing=True)
    content = KQMLList(heading)
    if target is not None:
        content.sets('target', ekb_from_text(target))
    if residue and position:
        content.sets('site', '%s-%s' % (residue, position))
    return msa.respond_phosphorylation_activating(content)
コード例 #10
0
ファイル: biosense_test.py プロジェクト: bgyori/bioagents
def test_respond_choose_nonsense():
    bs = BioSense_Module(testing=True)
    msg_content = KQMLList('CHOOSE-SENSE')
    msg_content.sets('ekb-term', ekb_from_text('bagel'))
    res = bs.respond_choose_sense(msg_content)
    print(res)
    assert res.head() == 'SUCCESS'
    assert res.get('agents')[0].gets('ont-type') is None
コード例 #11
0
ファイル: mra_test.py プロジェクト: kkaris/bioagents
def test_make_cm():
    m = MRA()
    ekb = ekb_from_text('MEK binds MAPK1. MEK binds MAPK3.')
    res = m.build_model_from_ekb(ekb)
    pysb_model = res['model_exec']
    cm = make_contact_map(pysb_model)
    assert len(list(cm.nodes())) == 3
    assert len(list(cm.edges())) == 2
コード例 #12
0
ファイル: mra_test.py プロジェクト: kkaris/bioagents
def test_make_im():
    m = MRA()
    ekb = ekb_from_text('KRAS activates BRAF. Active BRAF binds MEK.')
    res = m.build_model_from_ekb(ekb)
    pysb_model = res['model_exec']
    im = make_influence_map(pysb_model)
    assert len(list(im.nodes())) == 3
    assert len(list(im.edges())) == 3
コード例 #13
0
    def create_message_1(self):
        content = KQMLList('FIND-DRUGS-FOR-MUTATION-DATASET')
        genes = ekb_from_text('TP53')
        content.sets('genes', str(genes))
        content.sets('dataset', "CTRP")

        msg = get_request(content)
        return msg, content
コード例 #14
0
ファイル: mra_test.py プロジェクト: kkaris/bioagents
def test_sbgn():
    m = MRA()
    ekb = ekb_from_text('KRAS activates BRAF.')
    res = m.build_model_from_ekb(ekb)
    ekb = ekb_from_text('NRAS activates BRAF.')
    res = m.expand_model_from_ekb(ekb, 1)
    sbgn = res['diagrams']['sbgn']
    tree = ET.fromstring(sbgn)
    glyphs = tree.findall('s:map/s:glyph',
                          namespaces={'s': 'http://sbgn.org/libsbgn/0.3'})
    assert len(glyphs) == 6
    res = m.model_undo()
    sbgn = res['diagrams']['sbgn']
    tree = ET.fromstring(sbgn)
    glyphs = tree.findall('s:map/s:glyph',
                          namespaces={'s': 'http://sbgn.org/libsbgn/0.3'})
    assert len(glyphs) == 4
コード例 #15
0
ファイル: msa_test.py プロジェクト: bgyori/bioagents
 def create_message(self):
     content = KQMLList('PHOSPHORYLATION-ACTIVATING')
     content.sets('target', ekb_from_text('MAPK1'))
     for name, value in [('residue', 'T'), ('position', '185')]:
         if value is not None:
             content.sets(name, value)
     msg = get_request(content)
     return msg, content
コード例 #16
0
ファイル: msa_test.py プロジェクト: djmilstein/bioagents
 def create_message(self):
     content = KQMLList('PHOSPHORYLATION-ACTIVATING')
     content.sets('target', ekb_from_text('MAPK1'))
     for name, value in [('residue', 'T'), ('position', '185')]:
         if value is not None:
             content.sets(name, value)
     msg = get_request(content)
     return (msg, content)
コード例 #17
0
 def create_message_PAAD(self):
     content = KQMLList('FIND-MUTATION-SIGNIFICANCE')
     gene = ekb_kstring_from_text('ACTN4')
     disease = ekb_from_text('pancreatic adenocarcinoma')
     content.set('gene', gene)
     content.set('disease', disease)
     msg = get_request(content)
     return msg, content
コード例 #18
0
 def create_message_failure_2(self):
     content = KQMLList('FIND-MUTATION-SIGNIFICANCE')
     gene = ekb_kstring_from_text('ABC')
     disease = ekb_from_text('breast cancer')
     content.set('gene', gene)
     content.set('disease', disease)
     msg = get_request(content)
     return msg, content
コード例 #19
0
    def create_message_OV(self):
        content = KQMLList('FIND-MUTATION-FREQUENCY')
        gene = ekb_kstring_from_text('TP53')
        disease = ekb_from_text('Ovarian serous cystadenocarcinoma')
        content.set('gene', gene)
        content.set('disease', disease)

        msg = get_request(content)
        return msg, content
コード例 #20
0
ファイル: msa_test.py プロジェクト: djmilstein/bioagents
def _get_message(heading, target=None, residue=None, position=None):
    msa = msa_module.MSA_Module(testing=True)
    content = KQMLList(heading)
    if target is not None:
        content.sets('target', ekb_from_text(target))
    for name, value in [('residue', residue), ('position', position)]:
        if value is not None:
            content.sets(name, value)
    return msa.respond_phosphorylation_activating(content)
コード例 #21
0
ファイル: mra_test.py プロジェクト: kkaris/bioagents
def test_build_model_from_ekb():
    m = MRA()
    ekb = ekb_from_text('MAP2K1 phosphorylates MAPK1.')
    res = m.build_model_from_ekb(ekb)
    assert(res.get('model'))
    assert(res.get('model_id') == 1)
    assert(res.get('model_exec'))
    assert(len(m.models[1]) == 1)
    assert(isinstance(m.models[1][0], sts.Phosphorylation))
    assert(m.models[1][0].enz.name == 'MAP2K1')
コード例 #22
0
ファイル: biosense_test.py プロジェクト: bgyori/bioagents
def test_choose_nonsense():
    """ekb terms that aren't biological agents should have ont-type None

    BAGEL is from ONT::BAGELS-BISCUITS
    """
    bs = BioSense()
    case = ekb_from_text('bagel')
    agents, _ = bs.choose_sense(case)
    _, ont_type, _ = list(agents.values())[0]
    assert ont_type is None
コード例 #23
0
ファイル: mra_test.py プロジェクト: kkaris/bioagents
def test_make_diagrams():
    m = MRA()
    ekb = ekb_from_text('KRAS activates BRAF. Active BRAF binds MEK.')
    res = m.build_model_from_ekb(ekb)
    diagrams = res['diagrams']
    assert diagrams['reactionnetwork']
    assert diagrams['reactionnetwork'].endswith('.png')
    assert diagrams['contactmap']
    assert diagrams['contactmap'].endswith('.png')
    assert diagrams['influencemap']
    assert diagrams['influencemap'].endswith('.png')
コード例 #24
0
ファイル: biosense_test.py プロジェクト: bgyori/bioagents
def test_respond_choose_sense_ambiguity():
    bs = BioSense_Module(testing=True)
    msg_content = KQMLList('CHOOSE-SENSE')
    pdk1_ekb = ekb_from_text('PDK1')
    msg_content.sets('ekb-term', pdk1_ekb)
    res = bs.respond_choose_sense(msg_content)
    print(res)
    agents = res.get('agents')
    assert agents and agents.data
    agent = agents[0]
    name = agent.gets('name')
    assert name == 'PDK1'
    ont_type = agent.get('ont-type')
    assert ont_type == 'ONT::GENE'
コード例 #25
0
ファイル: biosense_test.py プロジェクト: bgyori/bioagents
def test_choose_sense_category():
    bs = BioSense()
    cases = [(mek1_ekb, [('kinase activity', 'TRUE'),
                         ('enzyme', 'TRUE'),
                         ('kinase', 'TRUE'),
                         ('transcription-factor', 'FALSE'),
                         ('W::KINASE', 'TRUE'),
                         ('phosphatase', 'FALSE')]),
             (dusp_ekb, [('phosphatase', 'TRUE'), ('enzyme', 'TRUE')]),
             (ekb_from_text('BRAF'), [('kinase', 'TRUE')])]
    for ekb, result_tuples in cases:
        for cat, result in result_tuples:
            print('Testing: %s. Expect result %s.' % (cat, result))
            in_category = bs.choose_sense_category(ekb, cat)
            assert in_category == (result == 'TRUE')
コード例 #26
0
ファイル: biosense_test.py プロジェクト: bgyori/bioagents
def test_respond_choose_sense_category():
    bs = BioSense_Module(testing=True)
    cases = [(mek1_ekb, [('kinase activity', 'TRUE'),
                         ('enzyme', 'TRUE'),
                         ('kinase', 'TRUE'),
                         ('transcription-factor', 'FALSE'),
                         ('W::KINASE', 'TRUE'),
                         ('phosphatase', 'FALSE')]),
             (dusp_ekb, [('phosphatase', 'TRUE'), ('enzyme', 'TRUE')]),
             (ekb_from_text('BRAF'), [('kinase', 'TRUE')])]
    for ekb, result_tuples in cases:
        msg_content = KQMLList('CHOOSE-SENSE-CATEGORY')
        msg_content.sets('ekb-term', ekb)
        for cat, result in result_tuples:
            print('Testing: %s. Excpet result %s.' % (cat, result))
            msg_content.sets('category', cat)
            res = bs.respond_choose_sense_category(msg_content)
            print(res)
            print(res.head())
            assert(res.head() == 'SUCCESS')
            assert(res.get('in-category') == result)
コード例 #27
0
 def create_message(self):
     content = KQMLList('FIND-COMMON-UPSTREAMS')
     genes = ekb_from_text('AKT1, BRAF and MAPK1')
     content.sets('genes', str(genes))
     msg = get_request(content)
     return msg, content
コード例 #28
0
 def create_message_failure(self):
     content = KQMLList('FIND-MUTEX')
     gene = ekb_from_text('BRAF')
     content.set('gene', gene)
     msg = get_request(content)
     return msg, content
コード例 #29
0
ファイル: mra_test.py プロジェクト: djmilstein/bioagents
def test_has_mechanism():
    m = MRA()
    ekb = ekb_from_text('BRAF binds MEK')
    m.build_model_from_ekb(ekb)
    has_mechanism = m.has_mechanism(ekb, 1)
    assert (has_mechanism)
コード例 #30
0
 def create_message_failure(self):
     content = KQMLList('FIND-COMMON-UPSTREAMS')
     genes = ekb_from_text('UGT2B10, PTEN')
     content.sets('genes', str(genes))
     msg = get_request(content)
     return msg, content
コード例 #31
0
ファイル: biosense_test.py プロジェクト: bgyori/bioagents
def test_get_synonyms_no_synonyms_for_type():
    """raises InvalidAgentError when the agent is not recognized or if the
    input submitted is not valid XML or is not in the correct format
    """
    bs = BioSense()
    bs.get_synonyms(ekb_from_text('vemurafenib'))
コード例 #32
0
ファイル: biosense_test.py プロジェクト: bgyori/bioagents
import unittest
from nose.tools import raises
from kqml import KQMLList
from bioagents.tests.util import ekb_from_text
from bioagents.biosense.biosense_module import BioSense_Module
from bioagents.biosense.biosense import BioSense, InvalidAgentError, \
    InvalidCollectionError, UnknownCategoryError, \
    CollectionNotFamilyOrComplexError, SynonymsUnknownError


# example ekb terms
mek1_ekb = ekb_from_text('MAP2K1')  # agent
dusp_ekb = ekb_from_text('DUSP6')  # agent
mek_ekb = ekb_from_text('MEK')  # family
foo_ekb = ekb_from_text('foo')  # invalid


# BioSense python API unit tests
def test_choose_sense():
    bs = BioSense()
    cases = [(mek1_ekb, 'MAP2K1', 'ONT::GENE'),
             (dusp_ekb, 'DUSP6', 'ONT::GENE'),
             (mek_ekb, 'MEK', 'ONT::PROTEIN-FAMILY')]
    for case in cases:
        agents, _ = bs.choose_sense(case[0])
        agent, ont_type, _ = list(agents.values())[0]
        assert agent.name == case[1]
        assert ont_type == case[2]


@raises(InvalidAgentError)
コード例 #33
0
ファイル: msa_test.py プロジェクト: bgyori/bioagents
 def create_type_and_source(self):
     return self._get_content('FIND-RELATIONS-FROM-LITERATURE',
                              type='Phosphorylation',
                              source=ekb_from_text('None'),
                              target=ekb_from_text('TP53'))
コード例 #34
0
ファイル: msa_test.py プロジェクト: bgyori/bioagents
 def create_message(self):
     return self._get_content('CONFIRM-RELATION-FROM-LITERATURE',
                              type='phosphorylation',
                              source=ekb_from_text('MAP2K1'),
                              target=ekb_from_text('MAPK1'))