[BioPython] said Your XML file was empty in parsing blast records but can see the results in the saved xml file
Hongwu Ma
hma2 at staffmail.ed.ac.uk
Thu Nov 13 13:55:12 UTC 2008
Thanks, Peter. I tried to reopen the xml file and it was working. I also
tried to parse the result before reading as below:
...
blast_records = NCBIXML.parse(result_handle)
bres=result_handle.read()
...
I found I still got the problem, a good xml file but empty
blast_records. Why the later read() function affect the parse before it?
> On Thu, Nov 13, 2008 at 11:18 AM, Hongwu Ma <hma2 at staffmail.ed.ac.uk> wrote:
>
>> Sometimes when I parse the blast records in biopython using the following
>> program I get the error "Your XML file was empty" but there are actually
>> some results in the saved xml files. Anyone know what is the problem?
>> Thanks in advance.
>> Hongwu
>>
>> ...
>> bres=result_handle.read()
>> save_file = open(myfolder+file[:3]+'orfre.xml', "w")
>> save_file.write(bres)
>> save_file.close()
>> blast_records = NCBIXML.parse(result_handle)
>> for blast_record in blast_records:
>> ...
>>
>
> When you do result_handle.read() it reads in all the data in the
> handle - leaving it empty (pointing at the end of the file). When the
> parser tries to read more data from the handle there isn't any, which
> is why the parser says the file seems to be empty. You'll have to
> "reset" the handle to the beginning.
>
> One way would be to open the file you just wrote to disk:
>
> ...
> save_file.close()
> result_handle = open(...)
> blast_records = NCBIXML.parse(result_handle)
> ...
>
> Peter
>
>
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
More information about the Biopython
mailing list