1

我有兴趣从 FASTA 格式的 BLAST 输出中获取无间隙序列。我以为我可以使用hsps_no_gap,但它不起作用。有什么方法可以用来完成这项工作吗?

4

3 回答 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对象中。

您可能想ungapSeqIO.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 回答