[BioPython] NCBIXML - Blast in- and output

Björn Thorwirth bjoern.thorwirth at uni-due.de
Wed Nov 28 07:50:54 EST 2007


Hi Michiel!

I've filed a bug (#2412) like Peter suggested. 
Am Mittwoch, den 28.11.2007, 20:54 +0900 schrieb Michiel de Hoon:
> Dear Björn,
> 
> Did you look at the Blast output file you are trying to parse?
> It consists of lines like:
I did look at it. It's the Error out, the xml file is just empty.
> 
> blastall] WARNING: 1OR8:E|PDBID|CHAIN|SEQUENCE: Could not calculate 
> ungapped Karlin-Altschul parameters due to an invalid query sequence or 
> its translation. Please verify the query sequence(s) and/or filtering 
> options
> 
> and there is no actual Blast output. So I am not surprised the Blast 
> parser fails...
> 
But shouldn't that beeing catched? And btw. in my first post to the
list, i asked, if I just should catch the Exception. 
in my code i called the NCBIXML like this:
try:
            records=NCBIXML.parse(resultFileHandle)
except Exception,e:
            self.IoErrorHandler(e, resultFileHandle, err_handle)
            raise
...
if records:
      for record in records:
Thats where i got the Exception. For me is it ok.. I've just added an
Exception handler around the "for record"-Loop, and everything is done.
But i thought i schould get the exception by initialization.

Best regrads, and sorry for any inconvenience

Björn
> --Michiel.
> 
> Björn Thorwirth wrote:
> > Hi Michiel!
> > 
> > Thanks for your fast respose! I've used the NCBIXML together with a
> > Twisted server. That's why the backtrace is a bit bloatet.
> > But I guess this are the important lines:
> > 
> > File "/home/user/workspace/PLGDaemon/src/mmCIF/blast_util.py", line
> > 56,
> > in getResults
> >     for record in records:
> >   File
> > "/home/user/Desktop/biopython/biopython-1.43/build/lib.linux-x86_64-2.4/Bio/Blast/NCBIXML.py",
> > line 625, in parse
> >     assert len(blast_parser._records) == 0
> > exceptions.UnboundLocalError: local variable 'blast_parser' referenced
> > before assignment.
> > 
> > Now i was able to backtrace, where the Problem comes from. It may not be
> > related to 32/64 Bit. It happens when Blast's calculation 
> > of the "Karlin-Altschul parameters" fails. This may happen due low
> > complexity of the Query sequence (see Blast FAQ).
> > I've attached a tar with the Blast-output and the reference and input
> > files. I didn't stumble over this problem before on 32 Bit,
> > because that was a smaller Sequenze-DB for testing purposes
> > 
> > Björn



More information about the BioPython mailing list