Entering edit mode
4.8 years ago
anabaena
▴
10
Hey all, I am trying to retrieve assembly IDs to append to a pandas dataframe. I have a BLAST output .tsv generated from an alignment with a local database I made, and what I have are the protein ascension IDs. What I need are the GenBank assembly accession IDs. When I search I can find the contig or WGS ID's but then from there I reach an HTTP error when trying to efetch the assembly gb file so I can parse it and extract the Assembly ID. Below is my code, and any help would be appreciated, thank you!
Entrez.email = 'xxxx@xxx.xxx'
handle2 = Entrez.efetch(id='PBRQ01000000', db='nuccore', rettype='gb', retmode='text')
record2 = SeqIO.read(handle2, 'gb')
print(record2)
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
in
3 Entrez.email =xxxxxx
4
----> 5 handle2 = Entrez.efetch(id='PBRQ01000000', db='assembly', rettype='gb', retmode='text')
6 record2 = SeqIO.read(handle2, 'gb')
7 print(record2)
~/miniconda3/lib/python3.7/site-packages/Bio/Entrez/__init__.py in efetch(db, **keywords)
197 # more than about 200 IDs
198 post = True
--> 199 return _open(cgi, variables, post=post)
200
201
~/miniconda3/lib/python3.7/site-packages/Bio/Entrez/__init__.py in _open(cgi, params, post, ecitmatch)
567 handle = _urlopen(cgi, data=_as_bytes(options))
568 else:
--> 569 handle = _urlopen(cgi)
570 except _URLError as exception:
571 # Reraise if the final try fails
~/miniconda3/lib/python3.7/urllib/request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)
220 else:
221 opener = _opener
--> 222 return opener.open(url, data, timeout)
223
224 def install_opener(opener):
~/miniconda3/lib/python3.7/urllib/request.py in open(self, fullurl, data, timeout)
529 for processor in self.process_response.get(protocol, []):
530 meth = getattr(processor, meth_name)
--> 531 response = meth(req, response)
532
533 return response
~/miniconda3/lib/python3.7/urllib/request.py in http_response(self, request, response)
639 if not (200 <= code < 300):
640 response = self.parent.error(
--> 641 'http', request, response, code, msg, hdrs)
642
643 return response
~/miniconda3/lib/python3.7/urllib/request.py in error(self, proto, *args)
567 if http_err:
568 args = (dict, 'default', 'http_error_default') + orig_args
--> 569 return self._call_chain(*args)
570
571 # XXX probably also want an abstract factory that knows when it makes
~/miniconda3/lib/python3.7/urllib/request.py in _call_chain(self, chain, kind, meth_name, *args)
501 for handler in handlers:
502 func = getattr(handler, meth_name)
--> 503 result = func(*args)
504 if result is not None:
505 return result
~/miniconda3/lib/python3.7/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs)
647 class HTTPDefaultErrorHandler(BaseHandler):
648 def http_error_default(self, req, fp, code, msg, hdrs):
--> 649 raise HTTPError(req.full_url, code, msg, hdrs, fp)
650
651 class HTTPRedirectHandler(BaseHandler):
HTTPError: HTTP Error 400: Bad Request
Email address was inadvertently left in the answer. Redacted.