Ich versuche, XML-Datei zu analysieren, die multifasta BLAST Ergebnis enthält - hier ist die link - es ist etwa 400kB groß. Das Programm sollte vier Sequenznamen zurückgeben. Jedes nächstes Ergebnis soll erst nach seiner (enthält die beste Ausrichtung) "< Iteration_iter-num> n < Iteration_iter-num />", wobei n = 1,2,3, ...Parsing Xml-Datei in Python, die Multifasta enthält BLAST Ergebnis
So:
< Iteration_iter-num >1< /Iteration_iter-num >
****Alignment****
sequence: gi|171864|gb|AAC04946.1| Yal011wp [Saccharomyces cerevisiae]
< Iteration_iter-num >2< /Iteration_iter-num >
****Alignment****
sequence: gi|330443384|ref|NP_009392.2|
< Iteration_iter-num >3< /Iteration_iter-num >
****Alignment****
sequence: gi|6319310|ref|NP_009393.1|
< Iteration_iter-num >4< /Iteration_iter-num >
****Alignment****
sequence: gi|6319312|ref|NP_009395.1|
Aber in Folge meines Programm gibt diese:
<Iteration_iter-num>1</Iteration_iter-num>
****Alignment****
sequence: gi|171864|gb|AAC04946.1| Yal011wp [Saccharomyces cerevisiae]
<Iteration_iter-num>2</Iteration_iter-num>
****Alignment****
sequence: gi|171864|gb|AAC04946.1| Yal011wp [Saccharomyces cerevisiae]
<Iteration_iter-num>3</Iteration_iter-num>
****Alignment****
sequence: gi|171864|gb|AAC04946.1| Yal011wp [Saccharomyces cerevisiae]
<Iteration_iter-num>4</Iteration_iter-num>
****Alignment****
sequence: gi|171864|gb|AAC04946.1| Yal011wp [Saccharomyces cerevisiae]
Wie ein anderes BLASTA Ergebnis aus dieser xML-Datei zu bekommen?
Hier ist mein Code:
from Bio.Blast import NCBIXML
from bs4 import BeautifulSoup
result = open ("BLAST_left.xml", "r")
records = NCBIXML.parse(result)
item = next(records)
file = open("BLAST_left.xml")
page = file.read()
soup = BeautifulSoup(page, "xml")
num_xml_array = soup.find_all('Iteration_iter-num')
i = 0
for records in records:
for itemm in num_xml_array:
print (itemm)
for alignment in item.alignments:
for hsp in alignment.hsps:
print("\n\n****Alignment****")
print("sequence:", alignment.title)
break
itemm = num_xml_array[i+1]
break
// Ich weiß, mein Englisch ist nicht perfekt, aber ich weiß nicht, was wirklich zu tun, und ich habe keine Person, danach zu fragen, so hatte ich Sie :) gewählt