主要内容

SSA和显式tau -跳变随机求解器的比较

这个例子展示了如何使用SSA随机求解器和显式陶跳求解器建立和模拟一个模型。

构建以下衰变-二聚反应并进行随机模拟:

  • 反应1:s1 ->为零,反应速率恒定,c1 = 1.0

  • 反应2:2 s1 < - > s2,反应速率常数为正:c2f = 0.002反:c2r = 0.5

  • 反应3:s2 -> s3,反应速率恒定,c3 = 0.04

  • 初始条件:s1 = 100000分子,s2 = s3 = 0

这个例子使用了Daniel T. Gillespie, 2001年“化学反应系统的近似加速随机模拟”中描述的参数和条件,《化学物理杂志》,第115卷第1期。4、1716 - 1733页。

创建Decaying-Dimerizing模型

模型= sbiomodel (“Decaying-Dimerizing反应组”);

输入的反应

r1 = addreaction(模型,“s1 - >空”);r2 = addreaction(模型,'2 s1 <-> s2');r3 = addreaction(模型,“s2 - > s3”);

将反应设置为MassAction

kl1 = addkineticlaw (r1,“MassAction”);kl2 = addkineticlaw (r2,“MassAction”);kl3 = addkineticlaw (r3,“MassAction”);

为每个反应添加速率常数

p1 = addparameter (kl1,“c1”“价值”, 1.0);p2f = addparameter (kl2,“c2f”“价值”, 0.002);p2r = addparameter (kl2,“c2r”“价值”, 0.5);p3 = addparameter (kl3,“c3”“价值”, 0.04);

为每个运动定律设置运动定律常数。

kl1。ParameterVariableNames = {“c1”};kl2。ParameterVariableNames = {“c2f”“c2r”};kl3。ParameterVariableNames = {“c3”};

指定每个物种的初始数量

model.species(1)。InitialAmount = 100000;% s1model.species(2)。InitialAmount = 0;% s2model.species(3)。InitialAmount = 0;% s3

显示已完成的模型对象

模型
模型= SimBiology模型-衰变二聚反应集模型组分:室:1事件:0参数:4反应:3规则:0物种:3可观察物:0

显示反应对象

模型。反应
ans = SimBiology反应阵列索引:反应:1 s1 -> null 2 2 s1 <-> s2 3 s2 -> s3

显示物种对象

模型。物种
ans = SimBiology物种阵列索引:隔间:名称:取值:单位:1无名s1 100000 2无名s2 0 3无名s3 0

获取模型的活动配置集。

c = getconfigset(模型,“活跃”);

利用SSA随机求解器和绘图模拟模型

Tfinal = 30,每10个数据点记录一次。

cs。SolverType =“ssa”;cs。StopTime = 30;解算器= cs.SolverOptions;解算器。LogDecimation = 10;cs.CompileOptions.DimensionalAnalysis = false;[t_ssa, x_ssa] = sbiosimulation (model);h1 =次要情节(2,1,1);情节(h1、t_ssa x_ssa (: 1),“。”);h2 =次要情节(2,1,2);情节(h2, t_ssa x_ssa (: 2:3),“。”);网格(h1,“上”);网格(h2,“上”);标题(h1,的衰变二聚反应);ylabel (h1,量的S1 ');ylabel (h2,“S2 & S3的金额”);包含(h2,“时间”);传奇(h2,“S2”“S3”);

图中包含2个轴对象。标题为Decay Dimerizing Reactions的Axes对象1包含一个类型为line的对象。坐标轴对象2包含两个line类型的对象。这些对象表示S2, S3。

用显式tau -跳跃求解器和同图绘制模型模拟

在不关闭图形窗口的情况下,绘制使用显式陶跳求解器得到的结果。

Tfinal = 30,每10个数据点记录一次。解算器的可接受误差,0.03。

cs。StopTime = 30;cs。SolverType =“explTau”;解算器= cs.SolverOptions;解算器。LogDecimation = 10;[t_etl, x_etl] = sbiosimulation (model);(h1,“上”);(h2,“上”);情节(h1、t_etl x_etl (: 1),“o”);情节(h2, t_etl x_etl (: 2:3),“o”);传奇(h2,“S2 (SSA)”S3 (SSA)的“S2 (Expτ)。”“S3 (Expτ)。”);(h1,“关闭”);(h2,“关闭”);

图中包含2个轴对象。标题为Decay Dimerizing Reactions的坐标轴对象1包含两个类型为line的对象。Axes对象2包含4个line类型的对象。这些对象表示S2 (SSA), S3 (SSA), S2 (Exp. Tau), S3 (Exp. Tau)。

SSA算法与显式tau -跳变算法的步数比较

流('大约SSA步骤数:%d\n',(长度(t_ssa) * 10));
大约SSA步骤数:616010
流('显式陶跳步骤的大致数量:%d\n'...(长度(t_etl) * 10));
大致数量的显式陶跳步骤:620
Baidu
map