exponenta event banner

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

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

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

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

  • Исходные условия: x = 1000 молекул, z = 0.

Эта модель может также использоваться для представления необратимой изомеризации.

В этом примере используются параметры и условия, описанные в Daniel T. Gillespie, 1977, «Точное стохастическое моделирование связанных химических реакций», The Journal of Physical Chemistry, vol. 81, no. 25, pp. 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 для стохастических решателей.

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.