Hi mates, I m new in python and I m trying to parse a result from local Blast...here the code.
from Bio.Blast.Applications import NcbiblastpCommandline
from Bio.Blast import NCBIStandalone
from Bio.Blast import NCBIXML
name = "virusprotein.fa"
data_base = "virusprot.fa"
out_file = "blast_test.xml"
blastp_cline = NcbiblastpCommandline(query=name, db=data_base, evalue=0.001, out=out_file)
print "hi" # code works until here to parse results in xml
result_handle = open("blast_test.xml")
blast_records = NCBIXML.parse(result_handle)
blast_record = blast_records.next()
#for alignment in blast_record.alignments:
#for hsp in alignment.hsps:
#if hsp.expect < evalue:
#print 'Sequence:', alignment.title
#print 'Length:', alignment.length
#print 'E value:', hsp.expect
#print hsp.query[0:50] + '...'
#print hsp.match[0:50] + '...'
#print hsp.sbjct[0:50] + '...'
As you can see in commented code, its a module for parsing and a class to print a summary, actually this work when I do Blast on Internet, but not when I do it locally. The code ony works until (print "hi"). When I try to execute the code bellow it says :
Traceback (most recent call last):
File "blast_all.py", line 14, in <module>
blast_record = blast_records.next()
File "/usr/local/lib/python2.7/dist-packages/biopython-1.58-py2.7-linux-i686.egg/Bio/Blast/NCBIXML.py", line 624, in parse
% (XML_START, repr(text[:20])))
ValueError: Your XML file did not start with <?xml... but instead 'BLASTP 2.2.25+\n\n\nRef
This may by easy, but I was and still whole the day with it, please any suggestion is welcome. thanks in advance
Thank you man, you great.