主要内容

比较SSA和显式Tau-Leaping随机动力学

这个例子展示了如何构建和使用SSA随机模拟模型解算器和显式Tau-Leaping解算器。

以下decaying-dimerizing反应将建造和随机模拟:

  • 反应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

这个示例使用参数和条件如丹尼尔·t·吉莱斯皮所述,2001年,“近似加速化学反应系统的随机模拟,”化学物理学报,115卷,没有。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模型——Decaying-Dimerizing反应模型组件:隔间:1事件:0参数:4反应:3规则:0物种:3可见:0

显示对象的反应

model.Reactions
ans = SimBiology反应数组索引:反应:1 s1 - >零2 2 3 s1 < - > s2 s2 - > s3

显示物种对象

model.Species
ans = SimBiology物种数组索引:舱:名称:价值:单位:100000匿名s1 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] = sbiosimulate(模型);h1 =次要情节(2,1,1); plot(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轴对象。坐标轴对象1标题衰变二聚反应,ylabel的S1包含一行对象显示它的值只使用标记。坐标轴对象2包含时间,ylabel S2和S3包含2线类型的对象。一个或多个行显示的值只使用这些对象标记代表S2, S3。

使用显式Tau-Leaping模拟模型解算器和情节在同一个图

图窗口没有关闭,使用显式Tau-Leaping解算器阴谋的结果。

tfinal = 30,每10数据日志记录。可接受的误差对解算器,0.03。

cs。StopTime = 30;cs。SolverType =“explTau”;解算器= cs.SolverOptions;解算器。LogDecimation = 10;[t_etl, x_etl] = sbiosimulate(模型);(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轴对象。坐标轴对象1标题衰变二聚反应,ylabel S1包含2线类型的对象。一个或多个行显示它的值只使用标记轴对象2包含时间,ylabel的S2和S3包含4线类型的对象。一个或多个行显示的值只使用这些对象标记代表S2 (SSA), S3 (SSA), S2 (Expτ),S3 (Expτ)。

比较数量的步骤SSA和显式Tau-Leaping算法

流(近似数的SSA步骤:% d \ n '(长度(t_ssa) * 10));
近似数SSA步骤:616010
流(近似数的显式Tau-Leaping步骤:% d \ n ',(长度(t_etl) * 10));
近似数的显式Tau-Leaping步骤:620