0

を使用して XML 形式の BLAST 出力を解析しようとしてreいますが、これまでに行ったことはありません。以下は私のコードです。

ただし、一部のヒットにはHsp_num複数回のヒットがある場合があるため、 と の結果が多くなり、query_fromの結果がquery_to少なくなりquery_lenます。ありがとうございましたHsp_numprint 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  
4

1 に答える 1

2

Biopythonに精通していますか? そのBio.Blast.NCBIXMLモジュールはまさにあなたが必要としているものかもしれません。チュートリアルとクックブックの第 7 章はすべて BLAST に関するもので、セクション 7.3 は解析を扱っています。それがどのように機能するかのアイデアが得られ、正規表現を使用して XML を解析するよりもはるかに簡単になります

于 2014-01-23T17:13:15.667 に答える