def test_simple_search(self): """ESearch Access via a query should return accessions""" s = ESearch(db='protein', rettype='gi', retmax=1000, term='h**o[organism] AND myh7') result = s.read() parsed = ESearchResultParser(result) assert '83304912' in parsed.IdList #gi of human cardiac beta myh7
def esearch(query, retmax, binsize=10000): """Wraps ESearch call""" ids = set([]) bins = (retmax / binsize) + 1 # handle remainder, just overshoot it for i in range(bins): handle = ESearch(term=query, db='nucleotide', retmax=binsize, retstart=binsize * i) ids.update(parse_esearch(handle.read())) return ids