[Bioperl-l] Help parsing PSI-BLAST XML reports

Torsten Seemann torsten.seemann at infotech.monash.edu.au
Wed Apr 4 21:34:17 EDT 2007

Dear all,

I have been migrating all our BLAST infrastructure to use the XML
output mode, the "blastpgp -m 7" option, referred to 'blastxml' format
in Bioperl. I had never used SearchIO to parse a PSI-BLAST XML report
before, and encountered some issues I hope you can help me with:

1. When loading with Bio::SearchIO(-format=>'blastxml') I get back a
Bio::Search::Result::GenericResult object. This means I can not use
the PSI-BLAST functions like iterations() and psiblast() provided by
Bio::Search::Result::BlastResult. I'm guessing this is because the the
XML output reports itself as a plain BLASTP output:

How do I determine if it is a PSI-BLAST report?

2. Usually a PSI-BLAST report has multiple Iterations. The XML output
has <Iteration> tags but it took me a while to figure out that these
get mapped to Bio::SearchIO::Result objects accessible via

Is this the proper way to process the iterations?

3. I also notice that only the first result (iteration) has the
query_name set. Subsequent ones are empty:
RESULT 1 Bio::Search::Result::GenericResult, algorithm= BLASTP,
query=MyProtein , db=uniprot_sprot
RESULT 2 Bio::Search::Result::GenericResult, algorithm= BLASTP, query=
, db=uniprot_sprot

Is this a bug or expected?

I'm guessing a lot of these problems are simply due to limitations of


More information about the Bioperl-l mailing list