此示例演示如何使用SSA随机解算器和显式Tau跳跃解算器构建和模拟模型。
以下衰变二聚反应将被构建和随机模拟:
反应1:s1->null,反应速率常数为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卷,第5期。4、1716 - 1733页。
模型=sbiomodel(“衰变二聚反应装置”);
r1=添加反应(模型,“s1 - >空”);r2 = addreaction(模型,'2 s1 <-> s2');r3=添加反应(模型,“s2 - > s3”);
kl1 = addkineticlaw (r1,“按摩”);kl2 = addkineticlaw (r2,“按摩”);kl3=addkineticlaw(r3,“按摩”);
p1 = addparameter (kl1,“c1”,“价值”, 1.0);p2f = addparameter (kl2,“c2f”,“价值”,0.002);p2r=添加参数(kl2,“c2r”,“价值”,0.5);p3=添加参数(kl3,“c3”,“价值”, 0.04);
kl1。ParameterVariableNames = {“c1”}; kl2.ParameterVariableNames={“c2f”,“c2r”};kl3。ParameterVariableNames = {“c3”};
model.species(1)。InitialAmount = 100000;%s1模型。物种(2)。初始数量=0;%s2模型。物种(3)。初始数量=0;%s3
模型
组件:分隔: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(模型,“主动的”);
tfinal=30,每10个数据点记录一次。
cs。SolverType =“ssa”;cs。StopTime = 30;解算器= cs.SolverOptions;解算器。LogDecimation = 10;cs.CompileOptions.DimensionalAnalysis = false;[t_ssa, x_ssa] = sbiosimulate(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”);
在不关闭图形窗口的情况下,使用显式tau - jumper求解器绘制结果。
tfinal=30,每10个数据点记录一次。解算器的可接受误差公差为0.03。
cs。StopTime = 30;cs。SolverType =“explTau”;解算器= cs.SolverOptions;解算器。LogDecimation = 10;[t_etl, x_etl] = sbiosimulate(model);(h1,“上”);(h2,“上”);情节(h1、t_etl x_etl (: 1),“哦”);情节(h2, t_etl x_etl (: 2:3),“哦”);传奇(h2,“S2 (SSA)”,‘S3(SSA)’,“S2 (Expτ)。”,“S3 (Expτ)。”);(h1,“关闭”);(h2,“关闭”);
流(' SSA步数的近似:%d\n', (length(t_ssa) * 10));
SSA步数:616010
流('显式t -跳跃步骤的近似数量:%d\n',...(长度(t_etl)*10);
近似的显式牛跳跃步骤数:620