【发布时间】:2016-08-11 23:59:30
【问题描述】:
我从 NCBI 独立 BLAST 开始我的项目,并使用了 -outfmt 17 选项。出于我的目的,格式化非常有帮助。但是,我不得不更改为 Biopython,我现在使用 qblast 将我的序列与 NCBI NT 数据库对齐。我可以将 qblast XML 保存/转换为与 NCBI BLAST 独立 -outfmt 17 格式相当的格式吗?
非常感谢您的帮助!
干杯, 菲利普
【问题讨论】:
我从 NCBI 独立 BLAST 开始我的项目,并使用了 -outfmt 17 选项。出于我的目的,格式化非常有帮助。但是,我不得不更改为 Biopython,我现在使用 qblast 将我的序列与 NCBI NT 数据库对齐。我可以将 qblast XML 保存/转换为与 NCBI BLAST 独立 -outfmt 17 格式相当的格式吗?
非常感谢您的帮助!
干杯, 菲利普
【问题讨论】:
我假设您的意思是 -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
...
【讨论】: