目的是在Python中编码蛋白质序列的理论胰蛋白酶切割。胰蛋白酶的切割(切割)规则是:在R或K之后,但不在P之前(即胰蛋白酶在每个K或R之后切割蛋白质序列,除非(K或R)后面跟着一个P)。
这是我的正则表达式:
pattern = re.compile('[KR]?[^P].*?[KR](?!P)')
peptides = pattern.findall('GGRGAGSAAWSAAVRYLTMMSSLYQT')输出:
GGR and GAGSAAWSAAVR我想要的是:
GGR and GAGSAAWSAAVR and YLTMMSSLYQTFindall只返回被剪切的部分,而不返回剩余的部分。谢谢
发布于 2014-03-13 07:19:49
这是一个非常好的解决问题的方法,也是最简单的方法:
peptideo=""
proteina=raw_input("Digite a sequencia da proteina a ser digerida: ")
i=0
for i in range (0,len(proteina)):
peptideo=peptideo+proteina[i]
if (proteina[i]==("R") and not (proteina[i+1]=="P")):
print "Peptideo digerido", peptideo
peptideo=""
if (proteina[i]==("P") and not (proteina[i+1]=="P")):
print "Peptideo digerido", peptideo
peptideo=""
print "Peptideo digerido", peptideo https://stackoverflow.com/questions/18364380
复制相似问题