【发布时间】:2020-04-12 08:06:13
【问题描述】:
我正在尝试编写代码来查找蛋白质序列中的模式,然后找到已识别模式的位置(开始和结束)。对于已识别的模式,当我使用 .index() 搜索索引时,如果存在多个模式,我将无法获得正确的起始位置。但在这里我想要识别模式的开始和结束位置。 我正在寻找一种简单快捷的方法,而不是进行 BLAST。
import re
from io import StringIO
from Bio import SeqIO
sequence = StringIO(""">seq
FWSTQALLPTTLLGASP
""")
for seqs in SeqIO.parse(sequence, "fasta"):
# to find pattern
p = re.compile("L*")
seqstr = str(seqs.seq)
patternA = p.findall(seqstr)
print(patternA)
for t in patternA:
print(seqstr.index(t))
预期结果:
7 LL 8
12 LL 13
提前致谢。
【问题讨论】:
-
由于大多数开发人员不具备识别蛋白质序列模式的知识,您能否为您的问题添加更多背景信息?此外,您提供的代码无法正常工作,通过 Bio.Seq(sequence) 构造函数和 SeqIO.parse() 生成器构造的序列不会产生任何结果。
-
很抱歉造成混乱。这是我的错误,因为我修改它以便在此处发布,我错过了在 for 循环中更改它。
标签: python bioinformatics biopython