给定一个随机序列,我该如何检查该序列是否为蛋白质?
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 ??
答案 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,而不是蛋白质序列。但是,如果SeqRecord
或Seq
的其他上下文,您可以检查它是否是蛋白质序列。