[Biopython] Entrez.efetch
Michiel de Hoon
mjldehoon at yahoo.com
Mon Apr 19 03:45:59 EDT 2010
Put a try:/except: block around the call to SeqIO.read, as in:
try:
seq_record=SeqIO.read(prothandle, "gb")
except ValueError:
print "INCORRECT ID GIVEN"
--Michiel
--- On Mon, 4/19/10, Olumide Olufuwa <olumideolufuwa at yahoo.com> wrote:
> From: Olumide Olufuwa <olumideolufuwa at yahoo.com>
> Subject: [Biopython] Entrez.efetch
> To: biopython at lists.open-bio.org
> Date: Monday, April 19, 2010, 3:30 AM
>
> Hello there,
>
> I wrote a program, I am not awesome in biopython but this
> is what it does: The program code that
> accepts user defined UNIPROT ID, retrieves the record using
> Entrez.efetch and then it
> is parsed to obtain the Pubmed ID which i use to search
> Medline for Title, Abstract and other information about the
> entry.
> The code is simply:
>
> query_id=str(raw_input("please
>
>
>
> enter your UNIPROT_ID: ")) #Request UNIPROT ID from user
> Entrez.email="ludax5 at yahoo.com"
> prothandle=Entrez.efetch(db="protein",
>
>
>
> id=query_id, rettype="gb" #queries Protein DB with the
> given ID
> #The
> program returns an error here if a wrong ID is given.
> Details of the
> error is given below
> seq_record=SeqIO.read(prothandle, "gb")
> for
>
> record in seq_record.annotations['references']: # To
> obtain Pubmed id
> from the seqrecord
> key_word=record.pubmed_id
> if key_word:
>
>
> handle=Entrez.efetch(db="pubmed",
>
> id=key_word, rettype="medline")
>
> medRecords=Medline.parse(handle)
> for rec in medRecords: #prints
> title and Abstract
> if rec.has_key('AB') and
> rec.has_key('TI'):
> print "TITLE: ",rec['TI']
>
> print "ABSTRACT: ",rec['AB']
> print ' '
>
>
> THE
> PROBLEM: The program gives an error if a wrong ID is
> entered or an ID
> other than UNIPROT ID e.g PDB ID, GSS ID etc.
>
>
>
> An Example Run with a wrong ID is shown below:
>
>
> please enter your UNIPROT_ID:
> 1wio #A PDB ID is given instead
>
>
> Traceback (most recent call last):
> File "file.py", line 11, in
> <module>
> seq_record=SeqIO.read(prothandle, "gb")
> File
> "/usr/lib/python2.5/site-packages/Bio/SeqIO/__init__.py",
> line 522, in
> read
> raise ValueError("No records found in handle")
> ValueError:
>
>
> No records found in handle
>
> I want to avoid this error, thus i
> want the program to print "INCORRECT ID GIVEN" when a
> wrong or an
> incorrect ID is given.
>
>
> Thanks a lot.
> lummy
>
>
>
>
>
> _______________________________________________
> Biopython mailing list - Biopython at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biopython
>
More information about the Biopython
mailing list