Стохастическая симуляция радиоактивного распада

В этом примере показано, как создать и симулировать модель с помощью решателя стохастики SSA.

Будет построена и стохастически моделирована следующая модель:

  • Реакция 1: x - > z со скоростью реакции первого порядка, c = 0,5.

  • Начальные условия: x = 1000 молекул, z = 0.

Эта модель может также использоваться, чтобы представлять необратимую изомеризацию.

Этот пример использует параметры и условия, как описано в Daniel T. Gillespie, 1977, «Точная стохастическая симуляция связанных химических реакций», Журнал физической химии, том 81, № 25, стр. 2340-2361.

Чтение модели радиоактивного распада, сохраненной в формате SBML

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

Обновите Реакцию, чтобы использовать MassAction Kinetic Закон для стохастических решателей.

model.Reactions(1).KineticLaw(1).KineticLawName = 'MassAction';
model.Reactions(1).KineticLaw(1).ParameterVariableNames = {'c'};

Симулируйте модель с помощью решателя Стохастика (SSA) и графика

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)');

Figure contains an axes. The axes with title Stochastic Radioactive Decay Simulation contains 2 objects of type line. These objects represent x, z.

Повторите симуляцию, чтобы показать изменчивость выполнения

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

Figure contains an axes. The axes with title Multiple Stochastic Radioactive Decay Simulations contains 42 objects of type line. These objects represent x, z.

Наложение решения ОДУ реакции на красный цвет

cs = getconfigset(model,'active');
cs.SolverType = 'sundials';
cs.StopTime = 20;
[t,X] = sbiosimulate(model);
plot(t,X,'red');
hold off;

Figure contains an axes. The axes with title Multiple Stochastic Radioactive Decay Simulations contains 44 objects of type line. These objects represent x, z.