В этом примере показано, как создать и симулировать модель с помощью стохастического решателя SSA.
Следующая модель будет создана и стохастическим образом симулирована:
Реакция 1: x-> z со скоростью реакции первого порядка, c = 0.5.
Начальные условия: x = 1 000 молекул, z = 0.
Эта модель может также использоваться, чтобы представлять необратимую изомеризацию.
Этот пример использует параметры и условия как описано в Дэниеле Т. Гиллеспи, 1977, "Точная Стохастическая Симуляция Двойных Химических реакций", Журнал Физической Химии, издания 81, № 25, стр 2340-2361.
SBML = язык разметки системной биологии, www.sbml.org
model = sbmlimport('radiodecay.xml')
model = SimBiology Model - RadioactiveDecay Model Components: Compartments: 1 Events: 0 Parameters: 1 Reactions: 1 Rules: 0 Species: 2 Observables: 0
model.Species
ans = SimBiology Species Array Index: Compartment: Name: Value: Units: 1 unnamed x 1000 molecule 2 unnamed z 0 molecule
model.Reactions
ans = SimBiology Reaction Array Index: Reaction: 1 x -> z
model.Reactions(1).KineticLaw(1).Parameters
ans = SimBiology Parameter Array Index: Name: Value: Units: 1 c 0.5 1/second
model.Reactions(1).KineticLaw(1).KineticLawName = 'MassAction'; model.Reactions(1).KineticLaw(1).ParameterVariableNames = {'c'};
cs = getconfigset(model,'active'); cs.SolverType = 'ssa'; cs.StopTime = 14.0; cs.CompileOptions.DimensionalAnalysis = false; [t,X] = sbiosimulate(model); plot(t,X); legend('x', 'z', 'AutoUpdate', 'off'); title('Stochastic Radioactive Decay Simulation'); ylabel('Number of molecules'); xlabel('Time (seconds)');
title('Multiple Stochastic Radioactive Decay Simulations'); hold on; for loop = 1:20 [t,X] = sbiosimulate(model); plot(t,X); % Just plot number of reactant molecules drawnow; end
cs = getconfigset(model,'active'); cs.SolverType = 'sundials'; cs.StopTime = 20; [t,X] = sbiosimulate(model); plot(t,X,'red'); hold off;