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
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))
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
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)
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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)
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')
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
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')
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'
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')
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)
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
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
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)
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
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'))
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)
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'))
def create_message(self): return self._get_content('CONFIRM-RELATION-FROM-LITERATURE', type='phosphorylation', source=ekb_from_text('MAP2K1'), target=ekb_from_text('MAPK1'))