Я пытаюсь разобрать вывод BLAST в формате XML, используя re
, никогда не делал этого раньше, ниже мой код.синтаксический разбор .xml с удаленным результатом с re
Однако, поскольку некоторые хиты Hsp_num
иногда больше, чем один раз, я получаю больше результатов для query_from
и query_to
, и меньше для query_len
, как указать, что если Hsp_num
больше 1 сделать print query_len
для него снова? благодарю вас
import re
output = open('result.txt','w')
n = 0
with open('file.xml','r') as xml:
for line in xml:
if re.search('<Hsp_query-from>', line) != None:
line = line.strip()
line = line.rstrip()
line = line.strip('<Hsp_query-from>')
line = line.rstrip('</')
query_from = line
if re.search('<Hsp_query-to>', line) != None:
line = line.strip()
line = line.rstrip()
line = line.strip('<Hsp_query-to>')
line = line.rstrip('</')
query_to = line
if re.search('<Hsp_num>', line) != None:
line = line.strip()
line = line.rstrip()
line = line.strip('<Hsp_num>')
line = line.rstrip('</')
Hsp_num = line
print >> output, Hsp_num+'\t'+query_from+'\t'+query_to
output.close()
Я сделал query_len
в отдельный файл, так как он не работал ..
with open('file.xml','r') as xml:
for line in xml:
if re.search('<Iteration_query-len>', line) != None:
line = line.strip()
line = line.rstrip()
line = line.strip('<Iteration_query-len>')
line = line.rstrip('</')
query_len = line
спасибо, я посмотрел на эту главу, кажется, все равно сложно, я думаю, что собираюсь отказаться от разбора формата .XML и работать с табличным. Было просто интересно, возможно ли подобное с помощью re – user3224522