私はあなたが-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
...
は、実は私は17 -outfmt意味:)しかし、いずれにせよ、あなたの答えは非常に便利です。私は自分のニーズにパーサをコーディングしようとします。私は時間がかかるかもしれないが、うまくいけばコーディングするのが新しいです。 ありがとうございます! – Philipp
私のBLASTは11までoutfmtしか持っていません。あなたが出力のサンプルを提供したら、私は自分の答えを更新します。私の答えがあなたの質問のために働くと思うなら、それを受け入れるべきです。 – xbello
なぜか分かりませんが、いくつかの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