2016-08-10 4 views
0

NCBIスタンドアロンBLASTでプロジェクトを開始し、-outfmt 17オプションを使用しました。私の目的のために、書式設定は非常に便利です。しかし、私はBiopythonに変更しなければなりませんでした。私は今、qblastを使って配列をNCBI NTデータベースに整列させています。 qblast XMLをNCBI BLASTスタンドアロン-outfmt 17形式に匹敵する形式で保存/変換できますか?qblast XML出力をNCBI BLAST -outfmt 17に変換するにはどうすればよいですか?

ありがとうございました!

乾杯、 フィリップ

答えて

0

私はあなたが-outfmt 7を意味し、あなたは列の出力を必要とすると仮定するつもりです。

from Bio.Blast import NCBIWWW, NCBIXML 

# This is the BLASTN query which returns an XML handler in a StringIO 
r = NCBIWWW.qblast(
    "blastn", 
    "nr", 
    "ACGGGGTCTCGAAAAAAGGAGAATGGGATGAGAAGGATATATGGGTAGTGTCATTTTTTAACTTGCAGAT" + 
    "TTCATCCTAGTCTTCCAGTTATCGTTTCCTAGCACTCCATGTTCCCAAGATAGTGTCACCACCCCAAGGA" + 
    "CTCTCTCTCATTTTCTTTGCCTGGGCCCTCTTTCTACTGAGGAGTCGTGGCCTTCCATCAGTAGAAGCCG", 
    expect=1E-5) 

# Now we read that XML extracting the info 

for record in NCBIXML.parse(r): 
    for alignment in record.alignments: 
     for hsp in alignment.hsps: 
      cols = "{}\t" * 10 
      print(cols.format(hsp.positives/hsp.align_length, 
           hsp.align_length, 
           hsp.align_length - hsp.positives, 
           hsp.gaps, 
           hsp.query_start, 
           hsp.query_end, 
           hsp.sbjct_start, 
           hsp.sbjct_end, 
           hsp.expect, 
           hsp.score)) 

出力のようなもの:

1 210 0 0 1 210 89250 89459 8.73028e-102 420.0 
0 206 19 2 5 210 46259 46462 5.16461e-73 314.0 
1 210 0 0 1 210 68822 69031 8.73028e-102 420.0 
0 206 19 2 5 210 25825 26028 5.16461e-73 314.0 
1 210 0 0 1 210 65887 66096 8.73028e-102 420.0 
... 
+0

は、実は私は17 -outfmt意味:)しかし、いずれにせよ、あなたの答えは非常に便利です。私は自分のニーズにパーサをコーディングしようとします。私は時間がかかるかもしれないが、うまくいけばコーディングするのが新しいです。 ありがとうございます! – Philipp

+0

私のBLASTは11までoutfmtしか持っていません。あなたが出力のサンプルを提供したら、私は自分の答えを更新します。私の答えがあなたの質問のために働くと思うなら、それを受け入れるべきです。 – xbello

+0

なぜか分かりませんが、いくつかのoutfmtオプションがあります。 KC262216.1 QUERY_1 8199H713M10H \t * * * \t \t AS:I:713 \t EV:F:0 \t NM:私ここにOUTFMT 17の出力がどのように見えるかです:0 \t PI:f:100.00 \t BS:f:1317.78 とにかく、上記のコードを使用して、私が使用できるフォーマットにデータを転送しました。それは私のデータ処理の中で一歩進んでいます。あなたの助けをもう一度ありがとう – Philipp

関連する問題