This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Parsing Standalone Blast XML Output with Biopython on Linux

Hello,

I want to parse my blast XML results and extract a few things and put them into a new multifasta file as following:

. >[alignment.title][hsp.expect][align_length][hsp.sbjct]

from Bio.Blast import NCBIXML
results=open('./results.xml', 'r' )
records=NCBIXML.parse(results)

save_file = open("./presults.fasta", "w")

for blast_record in records:
        for alignment in blast_record.alignments:
                for hsp in alignment.hsps:
                        save_file.write('>%s\n' % (alignment.title, hsp.expect, align_length, hsp.sbjct))
save_file.close()

But thats the error I get.

  File "parsing.py", line 10, in <module>
    save_file.write('>%s\n' % (alignment.title, hsp.expect, hsp.sbjct))
TypeError: not all arguments converted during string formatting

It is important that I get the complete subject sequences out of this.

Best regards

xml biopython blast parse

1 answer

in

save_file.write('>%s\n')

there is only one palceholder '%s' while there are 4 arguments.

https://www.safaribooksonline.com/library/view/python-cookbook-2nd/0596007973/ch04s21.html

Log in to answer this question.