我正在寻找含有三肽的序列。除'P‘之外,该三肽还可以含有任何其他氨基酸。我用以下方法提取它们。
from Bio import SeqIO
RGD = []
for record in SeqIO.parse("input.fasta", "fasta"):
rgd_count = record.seq.count('RGD')
if rgd_count >= 1:
RGD.append(record)
SeqIO.write(RGD, "RGD_Proteins.fasta", "fasta")在这种情况下,RGD(N)是很好的,除了RGDP之外,我如何引入regex呢?
提前谢谢。
接入点
发布于 2017-06-22 12:51:12
您可以使用re.findall查找str(record.seq)中所有不重叠的正则表达式匹配项。替换record.seq.count('RGD')
len(re.findall(r"RGD(?!P)", str(record.seq)))另外,确保添加了import re。
RGD(?!P)模式匹配没有跟随P的RGD子字符串。如果在当前位置的右侧立即找到(?!P)的模式,则称为负前瞻性,这会使匹配失败。
见常规-Expressions.info“查找周遭”部分。
见regex演示。
https://stackoverflow.com/questions/44677271
复制相似问题