赵霁巍, 石晓龙
(1.华中科技大学 人工智能与自动化学院, 湖北 武汉 430074; 2. 广州大学 计算科技研究院, 广东 广州 510006)
生物分子计算是指利用生物分子在分子规模上执行计算的一系列方法,包括分子计算[1]、膜计算[2]、基于细菌视紫红质的信息存储等[3-4].近年来可编程的DNA计算逐渐成为一项热门研究方向,其中DNA链置换技术是实现DNA计算的一种重要手段.DNA链置换技术是一种等温、无酶的体外DNA扩增技术[5-6],该技术对序列的识别具有高度的选择性[7].在DNA纳米技术的帮助下,DNA链置换已用于第二代DNA探针系统的基因信号检测[7-11],并有潜力作为体内智能分子系统用于DNA信号的检测和处理.目前,利用DNA链置换技术已经开发出了一些生物分子信号处理系统,如无酶核酸逻辑电路[12]、遗传编程和可进化分子机器[13]及可执行自动联想记忆计算的Hopfield网络[14]等.
基于DNA链置换设计的电路可以分为数字电路和模拟电路两种[15-16],DNA数字电路的一项重要任务是构建稳定且可扩展的逻辑门.自Adleman[17]展示DNA计算以来,很多学者都独立地提出了不同DNA逻辑门的结构和实验操作[18],但是这些逻辑门无法组装成为具有一定规模的电路系统.Seelig等[19]首次提出了基于DNA的大规模无酶电路,然而依靠支点作为链置换媒介的反应速度较慢,所以该电路不仅要花费数个小时才能完成计算,还需要引入复杂的操作阻止泄漏反应.相比之下,Qian等[20]提出了一种更优秀的解决方案,即一种基于支点(Toehold)交换机制的“跷跷板”门结构,这种DNA计算结构可扩展性、模块化性较好,并且具有较高的鲁棒性.在这种结构中,每个逻辑门被抽象为表示支点交换的一个跷跷板节点.输入链与逻辑门的反应在直觉上类似于一个跷跷板,在燃料链的作用下,正向反应将向跷跷板门的一侧移动,由此产生输出链.因为输入链与逻辑门的反应是可逆反应,而输入链与阈值链的反应是不可逆反应,所以输入链更倾向于与阈值链结合,这样阈值链将在输入链与逻辑门反应之前吸收期望浓度的输入链.随后Qian提出了基于跷跷板门的逻辑与、逻辑或门,并借助双轨逻辑表示法实现了非门,最后通过组合上述逻辑门实现了具有14个逻辑门的4位平方根电路.
但是基于跷跷板门结构的逻辑门仍存在一些问题:①跷跷板门本质上是一个单位阶跃函数,但是跷跷板门在阈值附近的敏感度较低,突变较平缓.如文献[17]中提到的,当阈值为0.5,输入为0.6时,理想情况下输出信号应该为1,而实际上输出信号的稳态值只有0.5左右.②因为逻辑门的输入信号在0~0.2时表示"0"信号,所以逻辑门无法区分输入信号为"0"和无输入信号之间的差别.也正因为这个原因,基于跷跷板门直接构造逻辑非门显得很困难,只能使用双轨表示方法从逻辑上间接表示非门.针对上述问题,本文提出了一种灵敏度更高的阶跃函数门,使逻辑门能够区分输入信号为"0"和无输入信号之间的差别,并构造了具有较高精度的与、或、非和异或门.
本文通过“四域”信号来表示编码信号链[21],如图1所示.四域信号链X由4个部分组成:历史域Xh、识别Xb,以及环绕识别域左右的2个支点域Xa和Xc.历史域仅用来表明产生该链信号的反应,并不作为区分信号链的标识.假设一个信号链由多个反应产生,虽然其历史域可能不同,但只要其识别域相同,就认为这些链属于同一种链信号.只要信号链完全处于单链状态,就将其视作激活态.阶跃函数门由两个模块组成:信号阶跃模块和阈值限制模块.这两个模块都以输入链X作为启动信号,通过控制输入链X与两个模块之间的反应速率,使信号阶跃模块滞后于阈值限制模块而与输入链X发生反应.只有当输入链超过规定阈值以后,才会经信号阶跃模块产生阶跃输出信号.
图1 四域信号链的表示
Fig.1 Representation of four-domain signal strand
在讨论阶跃信号模块时,暂时不考虑阈值限制模块,只考虑阈值为0的情况.定义任意信号链X的初始浓度为[X]0,逻辑门释放的信号链X的稳态浓度为[X]∞.
(1)
阈值为0的阶跃函数方程定义为
(2)
其中,X信号链作为输入信号决定了阶跃信号的有无,G信号链作为增益信号决定了阶跃信号的增益幅值,也就是说,输出信号链的稳态浓度[Y]∞完全由增益信号链的初始浓度[G]0和输入信号链[X]0决定.只要输入信号链X的初始浓度大于0,输入信号链Y的稳态浓度就是[G]0.
阶跃信号模块通过4个反应完成.其中X是输入信号链,G是增益信号链,S1、S2和S3是阶跃信号模块的辅助DNA链,I1、I2和B均为中间产物,Ø代表无信号链产出.
S1+G↔I1+B
(3a)
S2+B→Ø
(3b)
X+I1→I2
(3c)
S3+I2→X+Y
(3d)
阶跃信号模块的反应方程如图2所示.
图2 阶跃信号模块反应方程Fig.2 Equations of step signal module reaction
图2中辅助链S1与增益信号链G通过可逆的链置换反应产生中间产物I1和B.为了使反应3a的正向反应向右移动,等效的成为不可逆反应,反应3b中S2将不可逆地消耗反应3a产生的中间产物B.随后,反应物X通过结合I1暴露的支点域Xa不可逆地置换出中间反应链I2.最后,中间反应链I2通过与S3的支点域 Xc置换出产物Y.由于反应3d的产物中仍存在X,所以反应过程中X的浓度不会发生变化,理论上只要存在X,就能不断地催化产出Y,直到所有的G消耗殆尽,无法通过反应3a产生中间产物I1为止.为了加快反应速度,S1、S2和S3的浓度应远远大于反应物X.
阈值限制模块的反应方程如图3所示.考虑阈值大于0的情况,需要设置一个阈值链T.类似跷跷板门那样,在阈值链存在的情况下会发生反应T+X→Ø,这种反应也被称为湮灭反应[22].
图3 阈值限制模块反应方程Fig.3 Equations of threshold limit module reaction
参与湮灭反应的信号链本身不会直接发生反应,同样需要辅助DNA链A1和A2间接激发反应.湮灭反应的反应方程如下:
A1+T↔I1+B
(4a)
A2+B→Ø
(4b)
X+I1→Ø
(4c)
实际上,湮灭反应的方法并不唯一,类似的方法如Soloveichik 提出的双分子反应[21],湮灭反应的信号链并不一定是四域信号链,Yordanov等[22]和Lakin等[23]就分别提出了两域信号和三域信号的湮灭反应.同时Soloveichik还提出部分支点链置换比率常数的概念[21],Yordanov将其进一步明确为“互补度”,并在Visual DSD仿真中拓展了相关功能[22].实验测量的链置换结合比率在10-7nM-1S-1~10-3nM-1S-1的范围内浮动[24].假设完全体支点域x*以最大速率qmax置换产物,互补度为c的部分支点域记为x*c,其中c是大于0小于1的常数.在实验设置中,改变互补度会改变两个互补的支点域的结合率.由于DNA序列与杂交反应动力学之间的确切关系尚不明确,所以互补度被建模为速率qmax的修饰因子.也就是说,如果c=1,那么该支点域为完全支点域,链置换将以最大速率qmax置换产物;如果c<1,那么支点域为部分支点域,反应将以较小速率qmax*c进行.
比较两组满意程度;维持性血液透析配合程度、心理自我调节能力;护理前后心理健康指标汉密尔顿相关指数;维持性血液透析过程不良事件。
在跷跷板门的结构中,输入链与逻辑门的反应是可逆链置换反应,与阈值链的反应是不可逆链置换反应,它们利用不可逆反应的速率较高、输入链更倾向于和阈值链结合的特性,在输入链与逻辑门发生反应前消耗期望数量的输入链,以此达到设定阶跃函数突变点的目的.事实上,笔者也可以利用完全支点域的反应速率大于部分支点域的反应速率这一特性达到同样的目的.在阈值等于0的阶跃函数中,输入链X通过与中间链I2的完全支点域结合,置换出输出链Y,而在阈值大于0的情况下,输入链X则通过完全支点域与阈值信号链T反应,通过部分支点域置换出输出链Y.
图4展示了完整的阶跃函数门反应方程.通过支点互补度控制输入链X与两个模块之间的反应速率.输入链X作为反应的启动信号,输入链X首先和阈值限制模块反应,如果初始浓度高于阈值链浓度,才会和信号阶跃模块反应,催化地释放期望浓度的输出链.此外,S1、S2和S3的浓度应远远大于反应物X.
本文利用Visual DSD[25-26](该软件可用在域级别可视化DNA链置换过程,常用于设计DNA分子计算器件)作为工具建立四域DNA信号的链置换反应模型,模拟了阶跃信号门电路,同时也模拟了跷跷板门电路作为对照.两组实验的单位浓度均为1×10-7nM,输入链浓度从0.1递增至1.0,步长为0.1,支点域长度为6,非支点域长度为20.其中跷跷板门电路信号链的阈值链、输出门信号链和燃料链分别为0.5×,1×,2×,支点正相结合速率为0.002 nM-1s-1,逆向结合速率为1.3 s-1,阶跃信号门的支点互补度为0.003,阈值链浓度为0.5×,增益链浓度为1×,所以过量的辅助DNA链浓度均为100×.
图4 阶跃函数门的反应方程Fig.4 Equations of step function gate
图5和图6分别表示跷跷板门和阶跃函数门输出随时间的变化曲线.输入链浓度小于阈值的曲线均用虚线表示,大于阈值的曲线均用实线表示.
图5 跷跷板门输出随时间的变化曲线Fig.5 Time curve of seesaw gate output
图6 阶跃函数门输出随时间的变化曲线Fig.6 Time curve of step function gate output
跷跷板门的输出信号在0~0.3的范围内被认为是低位信号,在0.7~1.0的范围内被认为是高位信号.在跷跷板门的输入信号处于0.1~0.4的区间时,输出经较快的时间达到稳态,在输入信号等于阈值0.5时,虽然输出有较大程度的上升,但并未达到高位信号的水平.当输入信号超过阈值浓度,输出信号达到稳态的时间逐渐缩短,稳态浓度逐渐提高.
这一情况与阶跃信号门的情况类似,其原因在于反应过程中两组实验的反应速率相对稳定,经过阈值限制模块消耗以后,如果反应浓度较低,也就是说当输入链浓度距离阈值链浓度的差值较小(如输入链浓度为0.6)时,那么输出链浓度达到稳态的时间较长.可以看到虽然浓度差对阶跃函数门的反应时间较跷跷板门更为显著,但是一方面达到稳态后,阶跃函数门能较精确的稳定在1×的浓度水平,增益可控且相对稳定,另一方面基于阶跃函数门构建的逻辑门能利用低位/高位信号相对稳定的特点,避免信号处于阈值附近,规避反应时间较长的信号区间,提高逻辑门的反应时间.
图7和图8表示跷跷板门和阶跃函数门输出随输入的变化曲线.观察跷跷板门的模拟结果可以发现:①在跷跷板门的输入链浓度处于0.1~0.4的范围内,虽然其输出信号处于相对较低的水平,但其输出信号随输入信号的增加仍有小幅度增长,造成基于跷跷板门的逻辑门低位信号的浮动范围较大;②在阈值附近虽然函数值发生突变,但梯度较低,突变较平缓;③在超过阈值以后,跷跷板门的稳态输出不能稳定在某个期望的值以内,仍随输入信号的增加而增加.
图7 跷跷板门稳态输出随输入的变化曲线Fig.7 Steady-state output with input of seesaw gate
图8 阶跃函数门稳态输出随输入的变化曲线Fig.8 Steady-state output with input of step function gate
本文提出的阶跃函数门基于支点互补度不同控制反应的先后顺序,首先降低了阈值左侧输出链的浮动范围,输出浓度近似为0,其次,相比跷跷板门提高了阈值附近的突变梯度,最后,由于在信号阶跃模块添加了增益信号链,能够较为精确地控制阶跃信号的幅值,使最终构成的阶跃信号门更趋近理想函数状态.表1和表2列出了跷跷板门和阶跃函数门在输入小于等于阈值和输入大于等于阈值时的稳态输出.在输入小于等于阈值时,跷跷板门的平均稳态输出是0.081 6,方差是0.010 4,阶跃函数门的平均稳态输出是0.007 4,方差是1.256×10-4,其均值降低了91.3%,方差下降了98.79%;在输入大于等于阈值时,跷跷板门的平均稳态输出是0.696 4,方差是2.124×10-4,阶跃函数门的平均稳态输出是0.999 5,方差是1.214×10-6,其均值提高了30.33%,方差降低了99.43%,显著提高了逻辑门的运算精度.
表1 输入小于等于阈值时的稳态输出
Table 1 Steady-state outpout when input is less than threshold
输 入 0.10.20.30.40.5跷跷板门0.010 50.023 80.042 00.071 80.2597阶跃函数门0.001 50.002 70.004 80.027 3
表2 输入大于等于阈值时的稳态输出
Table 2 Steady-state outpout when input is greater than threshold
输 入 0.60.70.80.91.0跷跷板门0.677 40.687 50.697 00.705 90.714 3阶跃函数门0.997 51.000 01.000 01.000 01.000 0
将形如X1→Y1+Y2的反应称为单分子反应[21],反应的方程如下:
U1+X→I
(5a)
U2+I→Y1+Y2
(5b)
单分子反应的反应方程如图9所示.在辅助反应链U1和U2存在的情况下,X将首先和U1不可逆的置换出中间链I,随后I和U2反应置换出Y1和Y2.由于这两个反应都是不可逆反应,实际上单分子反应可以简化为
X+U1+U2→Y1+Y2
(5c)
图9 单分子反应的反应方程
Fig.9 Equations of unimolecular reaction
构建与门和或门的流程十分类似.如图10所示,首先通过单分子反应X1→T1+T2和X2→T1+T2将输入链X1和X2都转化为T1和T2.一旦产生T1信号链,说明逻辑门接收到输入信号,T1信号链随即通过阈值为0、增益为0.1的阶跃信号门产生0.1浓度的输出信号链Y;在构建与门的结构中,Y2信号链经过阈值为1.2、增益为0.8的阶跃信号门,只有当信号链X1和X2均为逻辑”1”,即T2信号链浓度可达1.8大于阈值时,产生出0.8浓度的输出信号Y,这样输出信号Y的总浓度将是0.9,表示达到高位信号.
图10 逻辑与门和或门的反应流程图Fig.10 Reactions flowchart of AND and OR gate
构建逻辑或门的原理相同,只需要将阈值减少到0.4即可.
传统的逻辑门通常使用输入DNA信号链的存在与否表示逻辑门输入为1或0状态,如基于跷跷板门的逻辑门,它将输入DNA链浓度在0~0.3的范围内视作输入为逻辑0状态,在0.7~1.0的范围内视为逻辑1状态,这会导致在缺失输入信号链时,非门错误地认为此时输入信号是0,从而输出保持在逻辑1的状态,这就使得直接构建非门比较困难,通常采用双轨逻辑表示法间接表示.
表3 使用双轨逻辑的或非门真值表
双轨逻辑的不足在于它无法直接表示非门,即便可以间接表示,完成逻辑操作所需的逻辑门数量也会翻倍.而本文提出的逻辑门以信号链浓度0.1为低位信号,以浓度0.9为高位信号,不以信号链的有无区分逻辑1和逻辑0,能够区分“低位信号”与“无输入信号”的区别,因此,无需使用双轨逻辑间接表示逻辑非,可以直接构建非门.
如图11展示了使用阶跃函数门构建的非门的反应流程图.首先输入链X经单分子反应X→T1+T2,当输入链为低位信号,即输入浓度为0.1时,输出链浓度仅由与T1相关的阈值为0、增益为0.9的阶跃信号门决定;当输入链为高位信号,即输入浓度为0.9时,单分子反应产生的T2链浓度大于其相关阶跃函数门的阈值链浓度0.4,将产生0.8浓度的Y′信号链.最后通过湮灭反应辅助链的存在,Y和Y′将成对湮灭,最终只剩0.1浓度的输出链Y,回到低位信号.
图11 逻辑非门的反应流程图Fig.11 Reactions flowchart of NOT gate
通常来说异或门可以通过组合与或非这三种逻辑门得到,这里提出一种直接构建异或逻辑的办法,可以减少相关逻辑门的数量.
如图12所示,输入链X1和X2经单分子反应X1→T1+T2+T3 和 X2→T1+T2+T3,产生信号检测链T1,、T2和T3.当X1和X2均为低位信号时,将会产生0.2浓度的T1、T2和T3,由于T2信号链和T3信号链的浓度均为超过各自阶跃函数门的阈值,输出链Y仅通过与T1相关的阈值为0的阶跃函数门产生,最终的稳态浓度为0.1,表示低位信号;当X1或X2中有一个低位信号和一个高位信号时,T1、T2和T3的浓度将为 0.1+0.9=1.0,其中T3的浓度为超过其阶跃函数门的阈值,而T2的浓度已经超过阶跃函数门的阈值0.4, 这样T2相关阶跃函数门会被激活,产生0.8浓度的Y,和T1检测链产生的0.1浓度的输出链Y相加后,输出信号链Y的稳态浓度最终稳定在0.9,表示高位信号;当X1和X2均为高位信号时,T1、T2和T3的浓度为 0.9+0.9=1.8,除了T1和T2的阶跃函数门外,T3相关阶跃函数门也被激活,此时产生的不是输出信号链Y,而是0.8个相对浓度的Y的湮灭信号链Y′.在过量湮灭辅助链存在的情况下,会发生湮灭反应 Y+Y′→Ø,从而减少0.8浓度的输出链Y,使输出链Y的浓度降到0.1,表示低位信号.
图12 逻辑异或门的反应流程图Fig.12 Reactions flowchart of XOR gate
和阶跃函数门类似,同样使用Visual DSD仿真逻辑与、或、非和异或门的实验过程.仿真结果如图13所示.仿真实验的支点正相结合速率为1.3 s-1,阶跃信号门的支点互补度为0.003,除了非门外,每个逻辑门都有3组输入信号"00"、 "01"和"11",分别表示输入均为低位信号、一个输入为低位信号而另一个输入为高位信号和输入均为高位信号的情况.
在逻辑与门中,当输入为"00"和"01"时输出链浓度为0.1,表示输出信号为低位信号;当输入为"11"时,阶跃函数门释放的信号检测链T2浓度将大于阈值1.2,输出链浓度最终稳定在0.9,表示高位信号.
在逻辑或门中,当输入为"00"时,输出链浓度为0.1,当输入为"01"和"11"时,输出链浓度为0.9.输入信号为"01"时虽然达到稳态的时间较输入信号为"11"时长一些,但其稳态值与输入为"11"时相同.
图13 逻辑与门、或门、非门和异或门实验结果
Fig.13 Simulation results of AND, OR, NOT and XOR gate
在逻辑非门中,输入为"0"时,输出链浓度稳定于0.9,输入为"1"时,输出链浓度先快速增加到0.9,在后续湮灭反应的作用下,其浓度逐渐减少至0.1,回到低位信号的水平.
在逻辑异或门中,输入为"00"和"11"时,输出链的稳态浓度均为0.1,输入为"01"时,输出链的稳态浓度为0.9.注意到当输入为"11"时,输出链浓度首先增长至0.3左右,然后持续下降直到0.1,异或门在阈值为0.4和1.2的两个阶跃函数模块共同作用下,形成了输出链浓度先上升后下降的情形.
本文基于DNA链置换反应,以四域信号链作为统一的DNA编码形式,通过湮灭反应设定阈值信号,通过支点互补程度控制反应顺序,构建了具有较高精度的阶跃函数门.Visual DSD的仿真结果表明,在输入小于等于阈值时,阶跃函数门的平均稳态输出为0.007 4,方差为1.256×10-4,相比跷跷板门均值降低了91.3%,方差降低了98.79%;在输入小于等于阈值时的平均稳态输出为0.999 5,方差为1.214×10-6,均值提高了30.33%,方差降低了99.43%.基于阶跃函数门构建的逻辑门不再以信号链的有无作为区分逻辑1和逻辑0的标准,而能够根据信号链浓度的高低,将相对浓度0.1视作逻辑0,相对浓度0.9视作逻辑1,相对浓度0视作无输入信号,这就解决了传统逻辑非门难以区分“无输入信号”和“输入信号为0”的问题,进而无需使用双轨逻辑间接表示逻辑非,使得直接构建逻辑非门成为可能.阶跃函数门不仅提高了阈值附近的突变梯度,而且提高了输出链浓度的可控性和稳定性.基于阶跃函数门可以实现其他逻辑门或其他函数,如同或门、三态门、分段函数、感知机等,或进一步构建可编程的分子识别系统.