我的问题是:我有一个代表一个环状肽的序列,我试图创建一个能产生所有可能的亚肽的功能。当两个氨基酸之间的键被破坏时,就会产生一个亚肽。例如:对于肽“ABCD”,它的子肽是“A”、“B”、“C”、“D”、“AB”、“BC”、“CD”、“DA”、“ABC”、“BCD”、“CDA”、“DAB”。因此,长度为n的肽的可能的亚肽量将始终为n*(n-1)。注意,不是所有的都是肽('DA','CDA'…)的子串。在
我写了一个生成组合的代码。但也有一些过量的元素,如不连氨基酸(‘AC’、‘BD’…)。有人能告诉我怎样才能消除这些,因为每次调用这个功能时肽的长度可能不同?以下是我目前所掌握的情况:
def Subpeptides(peptide):
subpeptides = []
from itertools import combinations
for n in range(1, len(peptide)):
subpeptides.extend(
[''.join(comb) for comb in combinations(peptide, n)]
)
return subpeptides
以下是肽“ABCD”的结果:
^{pr2}$氨基酸的顺序并不重要,如果它们代表一个真正的肽序列。例如,“ABD”是“DAB”的有效形式,因为D和a在环肽中有键。在
我用的是Python。在
你可以用这个
它给你:
C=['A'、'B'、'C'、'D'、'AB'、'BC'、'CD'、'DA'、'ABC'、'BCD'、'CDA'、'DAB'、'ABCD']
我希望这有帮助,顺便说一句,我也在做coursera课程,如果有兴趣的话,请告诉我
可能更容易生成它们:
它给出了:
^{pr2}$(如果您想要一个列表而不是打印,只需将
print(...)
更改为yield ...
,您就有了一个生成器)。在上面所做的只是列举第一个键可能断裂的不同位置,然后是在一个、两个或三个(在这种情况下)酸之后下一个键断裂时,你会得到不同的产物。
looped
只是一种简单的避免“循环”逻辑的方法。在上学期没来 你可以使用下面的代码
相关问题 更多 >
编程相关推荐