如何检查序列是否是蛋白质序列?

时间:2014-02-06 17:05:14

标签: python biopython

给定一个随机序列,我该如何检查该序列是否为蛋白质?

from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
my_prot = Seq("'TGEKPYVCQECGKAFNCSSYLSKHQR")
my_prot


my_prot.alphabet #How to make a check here ??

1 个答案:

答案 0 :(得分:2)

如果您的Seq对象有指定的字母,您可以检查该字母是否是蛋白质字母:

from Bio.Seq import Seq
from Bio.Alphabet import IUPAC, ProteinAlphabet
my_prot = Seq("TGEKPYVCQECGKAFNCSSYLSKHQR", alphabet=IUPAC.IUPACProtein())

print isinstance(my_prot.alphabet, ProteinAlphabet)

但是,如果您没有已知的字母表,则必须使用一些启发式方法来猜测它是否是蛋白质序列。这可以像检查序列是完全“ATC [GU]”一样简单,还是使用其他字母代码。

但这并不完美。例如,序列“ATCG”可以是丙氨酸,苏氨酸,半胱氨酸,甘氨酸(即蛋白质),或者它可以是腺嘌呤,胸腺嘧啶,胞嘧啶,鸟嘌呤(DNA)。类似地,“ACG”可以是蛋白质,RNA或DNA。从技术上讲,不可能确定序列是DNA,而不是蛋白质序列。但是,如果SeqRecordSeq的其他上下文,您可以检查它是否是蛋白质序列。