我有兴趣从 FASTA 格式的 BLAST 输出中获取无间隙序列。我以为我可以使用hsps_no_gap
,但它不起作用。有什么方法可以用来完成这项工作吗?
问问题
498 次
3 回答
0
BLAST 输出的格式是什么?XML?您可以从爆炸输出中获取 hsps 并执行以下操作:
for alignment in blast_record.alignments:
for hsp in alignment.hsps:
query_no_gaps = hsp.query.replace("-","")
sbjct_no_gaps = hsp.sbjct.replace("-","")
然后使用这些新变量写入 fasta。
于 2011-12-09T22:27:24.803 回答
0
如果您想选择没有 GAPS 的序列,请尝试使用
for records in blast:
if records.alignments:
for align in records.alignments:
if align.hsps.gap == 0
print ("These ID have ungapped alignment : %s" % records.query)
于 2012-11-02T07:42:39.373 回答
0
我假设您的序列存储在SeqIO.Seq
对象中。
您可能想ungap
在SeqIO.Seq
. 文档非常好。ungap()
是比字符串替换操作更好的选择(例如,它可以从序列字母表中推断出间隙字符)。
示例代码:
from Bio import SeqIO
seq_records = SeqIO.parse("input.fasta", format='fasta')
for record in seq_records:
seq_ungapped = record.seq.ungap('-')
于 2012-04-01T21:58:56.733 回答