我感兴趣的是从FASTA格式的BLAST输出中获取无空位序列。我以为我可以使用hsps_no_gap
但它不起作用。我有什么方法可以用来完成这项工作吗?
答案 0 :(得分: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。
答案 1 :(得分:0)
我假设您的序列存储在SeqIO.Seq
个对象中。
您可能希望在ungap
中使用SeqIO.Seq
方法。 documentation非常好。 ungap()
是比字符串替换操作更好的选择(例如,它可以从序列字母表中推断出间隙字符)。
示例代码:
from Bio import SeqIO
seq_records = SeqIO.parse("input.fasta", format='fasta')
for record in seq_records:
seq_ungapped = record.seq.ungap('-')
答案 2 :(得分: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)