我正在进行蛋白质 - 蛋白质相互作用的模拟。我正在使用 Python 来编写逻辑门作为模拟蛋白质相互作用的函数。
我的模型基本上是一系列包含逻辑门的组(g4
到list
)(见图)。最初,我设置了一个包含我的组的dict
,然后为每个组设置一个seedValues
,其中包含带有起始值的蛋白质(节点)(所谓的t=0
,它们是在g0
)处启动网络参数。
我的问题是:有没有办法迭代我的组(及其逻辑门函数),从t
处的组0(图像中的t=t+1
)开始,以及g0
执行论坛g1
和g0
,然后在g1
执行三个论坛g2
,t=t+2
和t=m
,等等直到m
,其中g0
是想要的迭代次数?
澄清:也许我不清楚。我的问题是:说我写了一个逐步遍历我的组的函数。它 从时间
t=0
的{{1}}开始,执行,存储和输出所有内容 该组中的大门,加上所有大门“前方”(g1
到g4
)。完成后,该功能将时间向前一步 (t=t+1
)并转到g1
并再次执行,包括输出 群组g2
到g4
。现在是错误蔓延的地方:准确无误 模型,我需要在时间g0
执行t=t+1
,之前 程序步骤g2
。如何使我的程序输出如此 执行的连续“波浪”?我想我可能需要使用 递归,但我不知道如何。
请参阅“群组”here的含义示例图片。 图像注释: A 和 B 是开关(程序应该更改它们,作为研究扰动的一种方式), C 是一个常数(从未改变)。 J 是输出(主要用于显示)。只要 A = 0, D 和 F 就会以振荡的方式构建。
我在Stack Exchange和Stack Overflow上搜索过这个;虽然我看到许多问题与我感兴趣的领域相关(1,2),但我没有看到任何我确定具体解决我的问题的问题。谢谢你的时间。
答案 0 :(得分:0)
在我看来,你的问题减少了几个嵌套循环。如果将所有组放入名为gx
的列表中,并将时间t
逐步从0增加到某个值tmax
,则在Python中看起来像这样......
for t in range(tmax):
for i in range(t):
nodeExecute(gx[i])
每次增加t
时,除了之前的所有组之外,还会再执行一个组。如果我还没有理解,请道歉。