定性建模框架
在本节中,我们简要回顾了勒内·托马斯(RenéThomas)最初在文献中介绍的形式框架[38,39].
定义1
(生物调控网络)“生物调控网络(BRN)是一个标记有向图G公司=(五,E类),其中五是一组有限的顶点,也称为生物实体E类⊆五×五是交互的集合。
生物实体的继承者和前身表示为\(G_{\nu _{i}}^{+}\)和\(G{\nu{i}}^{-}\)分别是。每个顶点都有一个限制\(\ell_{\nu_{i}}=\left|G_{\nu_{i{}^{+}\right|\)什么时候\(\left|G_{\nu_{i}}^{+}\right|\geq1\)、和\(\ell_{\nu_{i}}=1\)什么时候\(\left|G_{\nu_{i}}^{+}\right|=0\)。边缘用一对标记(τ,σ),其中\(tau\leq\ell_{nu_{x}})是影响阈值,以及σ={+,−}称为相互作用符号(+表示激活,-表示抑制)。每个实体ν我∈五在集合中具有其抽象表达式级别\(E_{nu_{i}}\,=\,\left\{0,1,….,r_{nu_i}}\right\}\)哪里\(r{\nu{i}}\!\leq\!l{\nu}}\). The状态的棕色是所有生物实体在特定时间瞬间的表达水平的配置。
定义2
(状态)BRN的状态是n元组\(S=\left\{S_{nu_{1}},..,S_{nu_{n}}\right\}\),\(对于E_{\nu_{i}}中的所有s_{\nu_{i}}),其中\(s_{\nu_{i}}\)是的抽象表达级别ν我.
的状态空间棕色是在所有实体的表达式级别范围内获得的笛卡尔积,可以使用公式计算1.
$$\prod\limits_{i=1}^{n}E_{nu_{i}}$$
(1)
在给定状态下,每个生物实体ν我由其前身管理\(G_{\nu}^{-}\),正式表示为集合资源,\(W_{\nu_{i}}\)定义如下:;
定义3
(资源)出租G公司=(五,E类)成为BRN。资源集\(W_{nu_{y}}\)变量的ν年∈五,在级别\(s_{nu_{y}}\),定义为:;\(W_{nu_{y}}=G中的左^{-}_{nu_{y}}|\左(s_{nu_x}}\geq\tau_{nu_2x},nu_y}}和\\alpha_{nu_3x}、nu_y{}=+\右)或\左右\}\)
为了确定资源实体的ν我,激活剂的存在和抑制剂的缺乏被视为资源。因此,\(W{\nu{i}}\)包含的抑制剂和激活剂ν我变量水平的目标ν我进化,取决于正整数集\(左(右),也称为逻辑参数,索引者\(W{\nu{i}}\).进化算子(△)在下面的公式中显示了下一个状态ν我进化。
$$s_{\nu_{i}}\bigtriangleup K_{\nu_{i{}\left(W_{\nu _{i}\right)=\left\{begin{array}{lll}s_{nu_{i{}+1&\texttt{if}&s_{\nu_i}}texttt{if}&s_{\nu{i}}>K{\nu_i}}\左(W_{\nu i}}\right)\\s_{\n i}}&\texttt{if}&s_{\nu i}}=K{\nu\对$$
(2)
When变量ν我具有一定的表达水平\(s_{\nu_{i}}\)其演变有三种可能性:(1)何时\(s_{nu{i}}<K{nu{i}}\左(W{nu{i}}\右)\),的值\(s_{\nu_{i}}\)增加一个单位。相反,如果\(s_{nu{i}}>K_{nu_i}}\左(W_{nu}}\右)\),\(s_{\nu_{i}}\)减去一个单位。然而,\(s_{\nu_{i}}\)不会进化并保持不变,如果\(s_{\nu_{i}}=K_{\nu_{i}}\left(W_{\nu_{i}}\right)\).
可能的参数组合数(参数化)即使对于一个小网络,也可能是巨大的。让G公司=(五,E类)成为棕色具有n个变量、和|G公司−(v(v)我)|成为ν我∈G公司,然后可能的数量参数化可以使用公式计算三.
$$\prod\limits_{i=1}^{n}\left(\ell_{v_{i}}+1 \right)^{2^{\left|G^{-}\ left(v_{i}\ right)\right|}}$$
(3)
定义4
(状态图)LetG公司成为BRN并且\(s_{nu_{a}}\)表示生物实体的表达水平一处于某种状态秒∈S公司然后是状态图R(右)=(S公司,T型)第页,共页G公司=(五,E类)是有向图,其中S公司表示一组状态,以及T型⊆S公司×S公司是状态之间的关系,也称为过渡关系秒→秒′∈T型如果:
-
∃独一无二的x个 ε 五这样的话\(s_{nu_{x}})和\(s_{nu_{x}}'=s_{nu_{x{}}\bigtriangleupK{x}\left(W_{nux}}\right)\)、和
-
∀\(y~\epsilon~\mathcal{V}\setminus\{x\}~s_{nu_{y}'=s_{nu_y}}\).” [38,39].
针对生物调控网络的定性建模,提出了不同的更新方案。这些更新方法遵循同步或异步方案[40]. 在同步定性模型中,网络中的所有变量都会随着时间同步演化。同步机制的计算成本较低[40]. 然而,它也不太准确,因为生物系统被认为是异步的,其中基因或蛋白质的表达水平的变化不是同时发生的,并且发生在不同的时间点[16,21]. 在这项工作中,我们使用异步更新方案来构建状态图。异步方案的计算成本很高,因此,我们使用并行计算来减少处理时间[40].
为了解释异步定性建模框架的工作,我们将定性框架应用于铜绿假单胞菌。它是一种机会性病原体,常见于环境中,并负责受影响的人类肺部粘液的产生囊性纤维化.的BRN铜绿假单胞菌如图所示2a.它由两个实体组成,即ALGU(由节点/顶点“x”表示)和其抑制剂蛋白Anti-ALGU。激活和抑制关系用定义1的加权有向边表示。
为了测量参数,将实验观测值编码为时序逻辑公式。万一铜绿假单胞菌,图2b显示了两个CTL公式ψ1和ψ2代表正常的体内平衡和可接受的致病反应。在正常反应中,基因x的表达水平从(x个=0),未达到(x个=2). 然而,当出现致病性疾病时,生物系统会达到基因x过度表达的状态,最终导致粘液生成。
图2c显示了满足实验观测的单参数组合的模型构造。对于生物系统中的每个状态,其后续状态都是使用定义3和定义4生成的。模型构建产生了一个动态模型,该模型提供了有用的见解,如稳定的稳态和死锁。图2d表示动态模型为状态图(见定义4)。
模型检查
模型检查用于评估动态模型M(M)用公式CTL表示的实验观察值ϕ验证过程决定了ϕ在里面M(M)通过使用一个详尽探索系统整个状态空间的图形理论过程。最后,模型检查器确认ϕ,如果满足公式,或它生成一个反例来提供违反的执行路径的跟踪ϕ反例生成是用于诊断目的的有用功能。
在CTL公式中,我们将布尔值true表示为⊤布尔值false为⊥.公式\((s_{\nu_{i}}=n)是变量的真iff表达式级别ν我,在当前状态下,等于n个CTL公式结合了一组连接词:-(否定),∧(逻辑与),∨(逻辑OR)和⇒(暗示)用时间操作符。时间操作符是一对符号;其中第一个元素是A类(所有路径)或E类(至少一条路径),后跟X(X)(下一状态),F类(任何未来状态)或G公司(所有未来状态)。
定义5
(CTL公式)LetG公司=(五,E类)成为BRN.CTL配方Φ在G公司定义如下:
-
原子公式是⊤,⊥或任何形式的原子命题(ν我=n个),其中ν我是状态图中的变量,并且\(n\in\left[0,\ell_{\nu_{i}}\right]\).
-
如果ϕ和ψ是原子公式,那么也是(ϕ), (ϕ∧ψ), (ϕ∨ψ), (ϕ⇒ψ),X(X)ϕ,E类X(X)ϕ,A类G公司ϕ,E类G公司ϕ,E类F类ϕ,A类F类ϕ,\((A \phi \bigcup \psi)\)和\((E\phi\bigcup\psi))
MPJ express中的并行实现
通常,并行计算根据计算阶段的通信需求分为两类。在不同计算阶段不需要任何通信的应用程序称为易并行计算。另一方面,需要在不同计算阶段之间进行频繁通信的应用程序通常称为同步计算。实现令人尴尬的并行计算的一种编程方法是使用“主/从”模型。由于我们在本研究中处理的参数估计问题本质上是令人尴尬的并行问题,因此我们使用主/从模型来生成并行代码[1].
令人尴尬的是,并行应用程序使用主/从模型进行并行化,通常涉及三个阶段。在第一阶段,主进程读取输入数据,执行域分解,并将相关块传递给每个从属进程。第二个阶段是计算阶段,所有工作进程都对自己的数据进行参数估计。在第三阶段和最后一阶段,所有从进程将结果传回主进程,主进程为最终用户生成输出。在所有三个阶段中,第二阶段即计算阶段通常需要最多的处理时间。在令人尴尬的并行应用程序中,在计算阶段不需要通信,导致几乎线性加速[1].
问题分解
这里,我们使用两种方法进行参数分解[1].
-
第一种方法利用参数估计问题的数据并行性[31]. 参数状态空间在可用处理器之间进行分区。我们将其称为采用高级数据并行的粗粒度并行。
-
第二种方法利用并行模型检查器中可用的细粒度并行性[26,41–43]其中,底层算法划分一个状态图,用于验证时序逻辑中编码的生物行为。
粗粒度并行
我们在研究中使用的第一种划分方案将参数空间划分为相互排斥的区域,这些区域由不同的工作进程展开。由于需要为每个参数组合构建一个新模型,因此可以通过称为处理元素(PE)的过程集合并行地探索这些区域。每个PE只检查参数空间的子集;并且对于该空间中的每个组合生成状态图/模型。通过调用模型检查器作为外部过程来执行验证,以确定CTL观察是否为真。最后,归约操作涉及用于接收接受的参数集的通信步骤。单独处理每个参数的赋值可以将参数估计任务描述为高级数据并行问题,并且分解是令人尴尬的并行,没有任何重要的通信。
在本研究中,我们使用主/从计算模型来实现高级数据并行。并行化代码的一个重要步骤是在主进程中对输入数据执行域分解或分区。我们使用原始块域分解为每个工作进程生成大小相等的独立输入数据块。
我们使用SMBioNet的当前实现来实现分区策略。图三显示了使用粗粒度分解的伪代码。这个对于图中的回路(第11行)三显示了每个工作进程执行一个块分解,以确定它需要探索的总参数空间的子集。对于该空间中的每个组合,都会生成一个新模型并提供给符号模型检查器NuSMV[19,44]以确定CTL属性的正确性。如果模型检查器满足公式,参数估计算法将模型附加到所选模型列表中。
一旦计算阶段结束,就需要缩减步骤将选定的模型参数写入单个输出文件中。此时,每个工作进程将其所选参数列表发送给主进程,主进程接收所选参数并生成单个输出文件。就满足CTL特性的模型数量而言,简化步骤中涉及的通信的复杂性是线性的。
细粒度并行分解
尽管由于通信成本低,高级分解方案为分布式内存体系结构(HPC集群)提供了良好的分区策略,但由于共享内存多核计算机的计算能力不断增强,因此需要对参数估计进行较低级别的分解。此外,高级数据并行实现的最大加速比受串行因子的限制,以评估一组参数。理论上,集成多线程模型检查器实现,如Java时态逻辑框架(JTLV)[45]在多核级可以进一步减少处理时间。但潜在的加速取决于任务的粒度。实际上,参数估计问题由大量小“工作单元”组成,因此每个任务的复杂性为哦(|S公司|.ψ). 符号模型检查算法使用二进制决策图(BDD)作为状态表示的内部数据结构。JTLV等多线程包不会并行化BDD计算中涉及的核心操作。反过来,当需要独立验证几个CTL公式时,使用JTLV的任务并行模拟可以提供相对更好的性能。其中一种情况是使用时序逻辑模式检查特定属性的所有潜在定性状态[36]. 在多核处理器的核心BDD操作并行化方面的相关工作明显缺乏[46]. 范迪克和范德波尔[47]介绍一个BDD软件包Sylvan,它在大型模型上演示了12倍的非线性加速。