#!/usr/bin/env python # ============================================================================== # Examples of uses for EBeyeWSWrapper. # ============================================================================== import re from EBeyeWSWrapper import * wrapper = EBeyeWSWrapper('http://www.ebi.ac.uk/ebisearch/service.ebi?wsdl') # ============================================================================== def testListDomains(): print wrapper.listDomains() # ============================================================================== def testGetNumberOfResults(): domain = 'medline' queries = ['immunology', 'immunolog*', # All the terms that begin with immunolog 'immunolog* nutrition' # (AND by default) ] print 'Search in' + domain +':' for query in queries: print query + ':' , wrapper.getNumberOfResults(domain, query) # ============================================================================== def testGetResultsIds(): domain = 'uniprot' query = 'polymerase' nbResults = wrapper.getNumberOfResults(domain, query) start = 0 size = 10 while (start < nbResults): print wrapper.getResultsIds(domain, query, start, size) start += size if (raw_input("continue (y/n)") != "y"): break # ============================================================================== def testGetAllResultsIds(): domain = 'medline' query = 'python' print wrapper.getAllResultsIds(domain, query) # ============================================================================== def testListFields(): for domain in wrapper.listDomains(): print '%-24s %s' % (domain , wrapper.listFields(domain)) # ============================================================================== def testGetResults(): domain = 'uniprot' query = 'polymerase' fields = wrapper.listFields(domain) nbResults = wrapper.getNumberOfResults(domain, query) start = 0 size = 10 for field in fields: print '%-30s' %(field), print while (start < nbResults): results = wrapper.getResults(domain, query, fields, start, size) for result in results: for r in result: print '%-30s' %(r), print start += size if (raw_input("continue (y/n)") != "y"): break # ============================================================================== def testGetEntry(): domain = 'medline' entry = '7605758' fields = ['description', 'publication_date' , 'authors'] results = wrapper.getEntry(domain, entry, fields) for name,value in zip(fields, results): print '%-18s:\n%s\n' % (name, value) # ============================================================================== def testGetEntries(): domain = 'medline' entries = ['10940346', '12534098', '14619687'] fields = ['id', 'title', 'description', 'publication_date' , 'authors'] results = wrapper.getEntries(domain, entries, fields) for result in results: print "-----------------------" for name,value in zip(fields, result): print '%-18s:\n%s\n' % (name, value) # ============================================================================== def testGetEntryFieldUrls(): domain = 'uniprot' entry = 'Q9QUZ9_9MURI' fields = ['id'] print wrapper.getEntryFieldUrls(domain, entry, fields) # ============================================================================== def testGetEntriesFieldUrls(): domain = 'uniprot' entries = ['Q9QUZ9_9MURI', 'A8WCM9_TAESO', 'Q64224_9MURI'] fields = ['id', 'acc'] results = wrapper.getEntriesFieldUrls(domain, entries, fields) for (e,url) in zip (entries, results): print '%-14s: %s' % (e,url) # ============================================================================== def testGetDomainsReferencedInDomain(): domain = 'ensembl' print wrapper.getDomainsReferencedInDomain(domain) # ============================================================================== def testGetDomainsReferencedInEntry(): domain = 'ensembl' entry = 'CG2102' print wrapper.getDomainsReferencedInEntry(domain, entry) # ============================================================================== def testListAdditionalReferenceFields(): domain = 'msdpdb' print "The additional cross-references in ", domain, " are:\n", wrapper.listAdditionalReferenceFields(domain) # ============================================================================== def testGetReferencedEntries(): domain = 'ensembl' entry = 'CG2102' referencedDomain = 'go' print wrapper.getReferencedEntries(domain, entry, referencedDomain) # ============================================================================== def testGetReferencedEntriesSet(): domain = 'ensembl' entries = ['CG2102', 'AAEL005345'] referencedDomain = 'go' fields = ['id', 'name'] result = wrapper.getReferencedEntriesSet(domain, entries, referencedDomain, fields) for entry, references in dict.iteritems(result): print 'Cross-references for %s:' % (entry) for field in fields: print '\t%-30s' %(field), print for ref in references: for r in ref: print '\t%-30s' %(r), print print # ============================================================================== def testGetReferencedEntriesFlatSet(): domain = 'ensembl' entries = ['CG2102', 'AAEL005345'] referencedDomain = 'go' fields = ['id', 'name'] result = wrapper.getReferencedEntriesFlatSet(domain, entries, referencedDomain, fields) print result # ============================================================================== def launchAllTests(scope): expr = re.compile( r"^test" ) for test in filter (expr.search, scope): print "\n>>>>>>>>>> ", test , "<<<<<<<<<<" eval(test + '()') # ============================================================================== # ============================================================================== wrapper.setDebug(0) #launchAllTests(dir()) testListDomains() #testGetNumberOfResults() #testGetResultsIds() #testGetAllResultsIds() #testListFields() #testGetResults() #testGetEntry() #testGetEntries() #testGetEntryFieldUrls() #testGetEntriesFieldUrls() #testGetDomainsReferencedInDomain() #testGetDomainsReferencedInEntry() #testListAdditionalReferenceFields() #testGetReferencedEntries() #testGetReferencedEntriesSet() #testGetReferencedEntriesFlatSet()