单步执行一系列分组逻辑门

时间:2016-04-08 07:27:06

标签: python logic simulation boolean-logic

我正在进行蛋白质 - 蛋白质相互作用的模拟。我正在使用 Python 来编写逻辑门作为模拟蛋白质相互作用的函数。 我的模型基本上是一系列包含逻辑门的组(g4list)(见图)。最初,我设置了一个包含我的组的dict,然后为每个组设置一个seedValues,其中包含带有起始值的蛋白质(节点)(所谓的t=0,它们是在g0)处启动网络参数。

我的问题是:有没有办法迭代我的组(及其逻辑门函数),从t处的组0(图像中的t=t+1)开始,以及g0执行论坛g1g0,然后在g1执行三个论坛g2t=t+2t=m,等等直到m,其中g0是想要的迭代次数?

  

澄清:也许我不清楚。我的问题是:说我写了一个逐步遍历我的组的函数。它   从时间t=0的{​​{1}}开始,执行,存储和输出所有内容   该组中的大门,加上所有大门“前方”(g1到   g4)。完成后,该功能将时间向前一步   (t=t+1)并转到g1并再次执行,包括输出   群组g2g4。现在是错误蔓延的地方:准确无误   模型,我需要在时间g0执行t=t+1之前   程序步骤g2。如何使我的程序输出如此   执行的连续“波浪”?我想我可能需要使用   递归,但我不知道如何。

请参阅“群组”here的含义示例图片。 图像注释: A B 是开关(程序应该更改它们,作为研究扰动的一种方式), C 是一个常数(从未改变)。 J 是输出(主要用于显示)。只要 A = 0, D F 就会以振荡的方式构建。

我在Stack Exchange和Stack Overflow上搜索过这个;虽然我看到许多问题与我感兴趣的领域相关(12),但我没有看到任何我确定具体解决我的问题的问题。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

在我看来,你的问题减少了几个嵌套循环。如果将所有组放入名为gx的列表中,并将时间t逐步从0增加到某个值tmax,则在Python中看起来像这样......

for t in range(tmax):
    for i in range(t):
        nodeExecute(gx[i])

每次增加t时,除了之前的所有组之外,还会再执行一个组。如果我还没有理解,请道歉。