exponenta event banner

createSimFunction (model)

Создайте объект SimFunction

Описание

пример

F = createSimFunction(model,params,observables,dosed) создает SimFunction object F который можно выполнить как указатель на функцию. The params и observables аргументы определяют входы и выходы функции F когда она выполняется, и dosed определяет информацию о дозах видов. Посмотрите SimFunction object для получения дополнительной информации о том, как выполнить F.

пример

F = createSimFunction(model,params,observables,dosed, variants) создает SimFunction object, применение значений, хранимых в variantsвектор исполнительных объектов в качестве значений базовой линии модели.

пример

F = createSimFunction(___,Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

Примечание

  • Активные дозы и варианты модели игнорируются при F выполняется.

  • F является неизменяемым после создания.

  • F автоматически ускоряется при первом выполнении функции, если вы не задаете значение 'AutoAccelerate' false. Ускорите объект вручную, если необходимо ускорить его работу в приложениях развертывания.

Входные параметры

свернуть все

SimBiology модель, заданная как SimBiology model object.

Функция использует то же configset настройки путем создания копии Configset объект model объект. Однако функция игнорирует следующее configset настройки: StatesToLog, OutputTimes, StopTime, и SensitivityAnalysisOptions потому что эти настройки обеспечиваются другими входами в функцию.

Входы SimFunction F, заданный как вектор символов, массив ячеек из векторов символов, пустой массив ячеек {}, или SimBiology.Scenarios объект. Векторы символов представляют имена величин модели (видов, отделов или параметров), которые определяют входы F. Используйте пустой массив ячеек {} или пустые Scenarios SimBiology.Scenarios.empty() объекта для создания SimFunction object который не имеет параметров.

Чтобы однозначно назвать количество модели, используйте квалифицированное имя, которое включает имя отделения. Чтобы назвать параметр области реакции, используйте имя реакции, чтобы определить параметр. Если имя не является допустимым MATLAB® имя переменной, окружайте ее квадратными скобками, такими как [reaction 1].[parameter 1].

Выходы SimFunction F, заданный как вектор символов или массив ячеек из векторов символов. Векторы символов представляют имена величин модели (виды, отделения или параметры) или observable объекты, которые определяют выходы F.

Дозированные виды или объекты дозы, заданные как вектор символов, клеточный массив векторов символов, вектор объектов дозы или пустой массив [].

Если это [], никакие виды не дозируются во время симуляции, если вы не задаете Scenarios объект, который имеет дозы, определенные в его записях.

Если это массив ячеек из векторов символов, это должен быть 1-бай- N массив, где N количество дозированных имен видов. Можно использовать повторяющиеся имена видов, если вы планируете использовать несколько доз для одного и того же вида при запуске SimFunction F. Использование только дозированных имен видов не содержит информации о свойствах дозы. Если у вас есть объект дозы, который содержит параметризованные свойства, такие как Amount, используйте объект дозы как вход вместо имен просто видов, чтобы передать такую информацию о параметре в созданную SimFunction F.

Если это вектор объектов дозы, это должен быть вектор 1 байт N, где N количество объектов дозы. Если объекты дозы имеют свойства с нецелевыми числовыми значениями, эти значения игнорируются и выдается предупреждение. Только TargetName, DurationParameterName, LagParameterNameи параметризованные свойства используются для создания объекта SimFunction F, то есть определить Dosed свойство F. Для получения дополнительной информации о том, как Dosed заполнена таблица свойств, см. «Сводные данные свойств».

Информация о дозах, которую вы задаете во время создания SimFunction объект должен соответствовать информации о дозах, заданной во время выполнения объекта. Другими словами, количество элементов в Dosed свойство SimFunction F должен равняться общему количеству доз в вход Scenarios объект в phi и дозы в входной параметр u при выполнении объекта.

Альтернативные значения модели, заданные как вариант или вектор объектов варианта. Эти значения применяются как базовые значения модели, когда SimFunction создается объект. Если существует несколько вариантов, ссылающихся на один и тот же элемент модели, используется последнее вхождение.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'UseParallel',true задает выполнение SimFunction F параллельно.

Флаг для выполнения SimFunction F параллельно, задается как разделенная разделенными запятой парами, состоящая из 'UseParallel' и true или false. Если true и Parallel Computing Toolbox™ доступна, SimFunction F выполняется параллельно.

Пример: 'UseParallel', true

Флаг для ускорения модели при первой оценке SimFunction объект, заданный как разделенная разделенными запятой парами, состоящая из 'AutoAccelerate' и true или false.

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

Пример: 'AutoAccelerate', false

Выходные коэффициенты чувствительности, заданные как разделенная разделенными запятой парами, состоящая из 'SensitivityOutputs' и массив ячеек из векторов символов. Векторы символов являются именами величин модели (видов и параметров), для которых необходимо вычислить чувствительности. Значение по умолчанию является {} что означает отсутствие выходных факторов. Выходные факторы являются числителями зависящих от времени производных, объясненных в Sensitivity Analysis в SimBiology.

Используйте ключевое слово 'all' или "all" для задания всех величин модели в качестве выходов чувствительности. Однако {'all'} означает величину модели с именем all в модели. ["all","x"] устанавливает входные коэффициенты чувствительности или выходные коэффициенты для вида с именем all и x.

Необходимо указать оба 'SensitivityOutputs' и 'SensitivityInputs' аргументы пары "имя-значение" для вычислений чувствительности.

Пример: 'SensitivityOutputs', 'all'

Входные коэффициенты чувствительности, заданные как разделенная разделенными запятой парами, состоящая из 'SensitivityInputs' и массив ячеек из векторов символов. Векторы символов являются именами величин модели (видов, отделов и параметров), относительно которых вы хотите вычислить чувствительности. Значение по умолчанию является {} что означает отсутствие входных факторов. Входные факторы являются знаменателями зависящих от времени производных, объясненных в Sensitivity Analysis in SimBiology.

Используйте ключевое слово 'all' или "all" для задания всех величин модели в качестве выходов чувствительности. Однако {'all'} означает величину модели с именем all в модели. ["all","x"] устанавливает входы или выходы чувствительности для вида с именем all и x.

Необходимо указать оба 'SensitivityOutputs' и 'SensitivityInputs' аргументы пары "имя-значение" для вычислений чувствительности.

Пример: 'SensitivityInputs', {'Reaction1.c1','Reaction1.c2'}

Нормализация для вычисленных чувствительности, заданная как разделенная разделенными запятой парами, состоящая из 'SensitivityNormalization' и 'None', 'Half', или 'Full'.

  • 'None' - Нормализация отсутствует (по умолчанию)

  • 'Half' - Нормализация только к числителю

  • 'Full' - Полная дедименсионизация

Для получения дополнительной информации смотрите Normalization.

Пример: 'SensitivityNormalization', 'Full'

Выходные аргументы

свернуть все

SimFunction, возвращается как a SimFunction object или SimFunctionSensitivity object. Можно выполнять F как указатель на функцию.

F является SimFunctionSensitivity object если вы задаете непустой 'SensitivityOutputs' и 'SensitivityInputs' Аргументы пары "имя-значение".

Примеры

свернуть все

Этот пример использует модель радиоактивного распада с реакцией первого порядка dzdt=cx, где x и z являются видами и c - константа прямой скорости.

Загрузите проект выборки, содержащий модель радиоактивного распада m1.

sbioloadproject radiodecay;

Создайте SimFunction object, определение параметра Reaction1.c подлежащих сканированию и видовых x как выход функции без дозированных видов.

f = createSimFunction(m1, 'Reaction1.c','x', [])
f = 
SimFunction

Parameters:

         Name          Value        Type            Units    
    _______________    _____    _____________    ____________

    {'Reaction1.c'}     0.5     {'parameter'}    {'1/second'}

Observables: 

    Name        Type           Units    
    _____    ___________    ____________

    {'x'}    {'species'}    {'molecule'}

Dosed: None

Если на UnitConversion опция была установлена на false когда SimFunction f объекта был создан, в таблице не отображаются модули величин модели.

Чтобы проиллюстрировать это, сначала установите UnitConversion опция для false.

cs = getconfigset(m1);
cs.CompileOptions.UnitConversion = false;

Создайте SimFunction объект как и прежде и обратите внимание, что переменная с именем Units исчезает.

f = createSimFunction(m1, {'Reaction1.c'},{'x'}, [])
f = 
SimFunction

Parameters:

         Name          Value        Type     
    _______________    _____    _____________

    {'Reaction1.c'}     0.5     {'parameter'}

Observables: 

    Name        Type    
    _____    ___________

    {'x'}    {'species'}

Dosed: None

Если какой-либо из видов в модели дозируется, укажите имена дозированных видов в качестве последнего аргумента. Например, если вид x дозируется, задайте его как последний аргумент.

f = createSimFunction(m1, {'Reaction1.c'},{'x'}, 'x')
f = 
SimFunction

Parameters:

         Name          Value        Type     
    _______________    _____    _____________

    {'Reaction1.c'}     0.5     {'parameter'}

Observables: 

    Name        Type    
    _____    ___________

    {'x'}    {'species'}

Dosed: 

    TargetName
    __________

      {'x'}   

Один раз в SimFunction создается объект, можно выполнить его как указатель на функцию и выполнить сканы параметров (параллельно, если доступен Parallel Computing Toolbox™), симуляции Монте-Карло и сканы с множественными или векторизованными дозами. Посмотрите SimFunction object для дополнительных примеров.

Этот пример создает SimFunction объект с информацией о дозах с использованием RepeatDose или ScheduleDose объект или вектор этих объектов. Однако, если какой-либо объект дозы содержит такие данные, как StartTime, Amount, и Rateтакие данные игнорируются, и выдается предупреждение. Только данные, если они доступны, используются TargetName, LagParameterName, и DurationParameterName объекта дозы.

Загрузите проект выборки, содержащий модель радиоактивного распада m1.

sbioloadproject radiodecay;

Создайте RepeatDose object и определить его свойства.

rdose = sbiodose('rd');
rdose.TargetName = 'x';
rdose.StartTime = 5;
rdose.TimeUnits = 'second';
rdose.Amount = 300;
rdose.AmountUnits = 'molecule';
rdose.Rate = 1;
rdose.RateUnits = 'molecule/second';
rdose.Interval = 100;
rdose.RepeatCount = 2;

Добавьте параметр задержки и параметр длительности к модели.

lagPara = addparameter(m1,'lp');
lagPara.Value = 1;
lagPara.ValueUnits = 'second';
duraPara = addparameter(m1,'dp');
duraPara.Value = 1;
duraPara.ValueUnits = 'second';

Установите эти параметры в объект дозы.

rdose.LagParameterName = 'lp';
rdose.DurationParameterName = 'dp';

Создайте SimFunction f объекта использование RepeatDose rdose объекта что ты только что создал.

f = createSimFunction(m1,{'Reaction1.c'},{'x','z'},rdose)
Warning: Some Dose objects in DOSED had data. This data
will be ignored. 
> In SimFunction>SimFunction.SimFunction at 847
  In SimFunction>SimFunction.createSimFunction at 374 

f = 

SimFunction

Parameters:

        Name         Value       Type          Units   
    _____________    _____    ___________    __________

    'Reaction1.c'    0.5      'parameter'    '1/second'

Observables: 

    Name      Type         Units   
    ____    _________    __________

    'x'     'species'    'molecule'
    'z'     'species'    'molecule'

Dosed: 

    TargetName            TargetDimension        
    __________    _______________________________

    'x'           'Amount(e.g. mole or molecule)'


    DurationParameterName    DurationParameterValue
    _____________________    ______________________

    'dp'                     1                     


    DurationParameterUnits    LagParameterName
    ______________________    ________________

    'second'                  'lp'            


    LagParameterValue    LagParameterUnits
    _________________    _________________

    1                    'second'         

Появляется предупреждающее сообщение, поскольку rdose объект содержит данные (StartTime, Amount, Rate), которые игнорируются createSimFunction способ.

В этом примере показано, как выполнить различные сигнатуры SimFunction object для моделирования и сканирования параметров модели Лотка-Вольтерра (хищник-добыча), описанной Гиллеспи [1].

Загрузите образец проекта, содержащий модель m1.

sbioloadproject lotka;

Создайте объект SimFunction f с c1 и c2 в качестве входных параметров, которые нужно сканировать, и y1 и y2 как выход функции без дозированных видов.

f = createSimFunction(m1,{'Reaction1.c1', 'Reaction2.c2'},{'y1', 'y2'}, [])
f = 
SimFunction

Parameters:

          Name          Value        Type     
    ________________    _____    _____________

    {'Reaction1.c1'}      10     {'parameter'}
    {'Reaction2.c2'}    0.01     {'parameter'}

Observables: 

     Name        Type    
    ______    ___________

    {'y1'}    {'species'}
    {'y2'}    {'species'}

Dosed: None

Задайте матрицу входа, которая содержит значения для каждого параметра (c1 и c2) для каждой симуляции. Количество строк указывает общее количество симуляций, и в каждой симуляции используются значения параметров, заданные в каждой строке.

phi = [10 0.01; 10 0.02];

Выполняйте симуляции до тех пор, пока время остановки не составит 5, и стройте график результатов симуляции.

sbioplot(f(phi, 5));

Figure contains an axes. The axes with title States versus Time contains 4 objects of type line. These objects represent Run 1 - y1, Run 1 - y2, Run 2 - y1, Run 2 - y2.

Можно также задать вектор с различными временами остановки для каждой симуляции.

t_stop = [3;6];
sbioplot(f(phi, t_stop));

Figure contains an axes. The axes with title States versus Time contains 4 objects of type line. These objects represent Run 1 - y1, Run 1 - y2, Run 2 - y1, Run 2 - y2.

Далее задайте выход в виде вектора.

t_output = 0:0.1:5;
sbioplot(f(phi,[],[],t_output));

Figure contains an axes. The axes with title States versus Time contains 4 objects of type line. These objects represent Run 1 - y1, Run 1 - y2, Run 2 - y1, Run 2 - y2.

Задайте выходное время как массив ячеек из векторов.

t_output = {0:0.01:3, 0:0.2:6};
sbioplot(f(phi, [], [], t_output));

Figure contains an axes. The axes with title States versus Time contains 4 objects of type line. These objects represent Run 1 - y1, Run 1 - y2, Run 2 - y1, Run 2 - y2.

Этот пример показывает, как вычислить чувствительность некоторых видов в модели Лотки-Вольтерры с помощью SimFunctionSensitivity объект.

Загрузите образец проекта.

sbioloadproject lotka;

Определите входные параметры.

params = {'Reaction1.c1', 'Reaction2.c2'};

Определите наблюдаемые виды, которые являются выходами симуляции.

observables  = {'y1', 'y2'};

Создайте SimFunctionSensitivity объект. Установите выходные коэффициенты чувствительности ко всем видам (y1 и y2), указанный в observables аргумент и входные коэффициенты для тех, кто в params аргумент (c1 и c2) путем установки аргумента пары "имя-значение" 'all'.

f = createSimFunction(m1,params,observables,[],'SensitivityOutputs','all','SensitivityInputs','all','SensitivityNormalization','Full')
f = 
SimFunction

Parameters:

          Name          Value        Type     
    ________________    _____    _____________

    {'Reaction1.c1'}      10     {'parameter'}
    {'Reaction2.c2'}    0.01     {'parameter'}

Observables: 

     Name        Type    
    ______    ___________

    {'y1'}    {'species'}
    {'y2'}    {'species'}

Dosed: None

Sensitivity Input Factors: 

          Name              Type     
    ________________    _____________

    {'Reaction1.c1'}    {'parameter'}
    {'Reaction2.c2'}    {'parameter'}

Sensitivity Output Factors: 

     Name        Type    
    ______    ___________

    {'y1'}    {'species'}
    {'y2'}    {'species'}

Sensitivity Normalization: 

Full

Вычислим чувствительности путем выполнения объекта с c1 и c2 установите значение 10 и 0,1 соответственно. Установите время выхода от 1 до 10. t содержит временные точки, y содержит данные моделирования и sensMatrix - матрица чувствительности, содержащая чувствительности y1 и y2 относительно c1 и c2.

[t,y,sensMatrix] = f([10,0.1],[],[],1:10);

Извлеките информацию о чувствительности в момент времени 5.

temp = sensMatrix{:};
sensMatrix2 = temp(t{:}==5,:,:);
sensMatrix2 = squeeze(sensMatrix2)
sensMatrix2 = 2×2

   37.6987   -6.8447
  -40.2791    5.8225

Строки sensMatrix2 представляют факторы выхода (y1 и y2). Столбцы представляют входные факторы (c1 и c2).

sensMatrix2=[y1c1y2c1y1c2y2c2]

Установите время остановки равным 15, не задавая время выхода. В этом случае выход является временными точками решателя по умолчанию.

sd = f([10,0.1],15);

Извлеките вычисленные чувствительности из SimData sd объекта.

[t,y,outputs,inputs] = getsensmatrix(sd);

Постройте график чувствительности видов y1 и y2 относительно c1.

figure;
plot(t,y(:,:,1));
legend(outputs);
title('Sensitivities of species y1 and y2 with respect to parameter c1');
xlabel('Time');
ylabel('Sensitivity');

Figure contains an axes. The axes with title Sensitivities of species y1 and y2 with respect to parameter c1 contains 2 objects of type line. These objects represent y1, y2.

Постройте график чувствительности видов y1 и y2 относительно c2.

figure;
plot(t,y(:,:,2));
legend(outputs);
title('Sensitivities of species y1 and y2 with respect to parameter c2');
xlabel('Time');
ylabel('Sensitivity');

Figure contains an axes. The axes with title Sensitivities of species y1 and y2 with respect to parameter c2 contains 2 objects of type line. These objects represent y1, y2.

Также можно использовать sbioplot.

sbioplot(sd);

Figure contains an axes. The axes with title States versus Time contains 6 objects of type line. These objects represent y1, y2, d[y1]/d[Reaction1.c1], d[y2]/d[Reaction1.c1], d[y1]/d[Reaction2.c2], d[y2]/d[Reaction2.c2].

Можно также построить график матрицы чувствительности с помощью интеграла времени для вычисленных чувствительности y1 и y2. График указывает y1 и y2 более чувствительны к c1 чем c2.

[~, in, out] = size(y);
result = zeros(in, out);
for i = 1:in
    for j = 1:out
        result(i,j) = trapz(t(:),abs(y(:,i,j)));
    end
end
figure;
hbar = bar(result);
haxes = hbar(1).Parent;
haxes.XTick = 1:length(outputs);
haxes.XTickLabel = outputs;
legend(inputs,'Location','NorthEastOutside');
ylabel('Sensitivity');

Figure contains an axes. The axes contains 2 objects of type bar. These objects represent Reaction1.c1, Reaction2.c2.

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

Загрузите модель глюкозо-инсулиновой реакции. Для получения дополнительной информации о модели смотрите раздел «Фон» в Симуляции ответа глюкозы-инсулина.

sbioloadproject('insulindemo', 'm1')

Модель содержит различные начальные условия, сохраненные в различных вариантах.

variants = getvariant(m1);

Получите начальные условия для пациента с диабетом 2 типа.

type2 = variants(1)
type2 = 
   SimBiology Variant - Type 2 diabetic (inactive)

   ContentIndex:     Type:        Name:             Property:           Value:
   1                 parameter    Plasma Volume ... Value               1.49
   2                 parameter    k1                Value               0.042
   3                 parameter    k2                Value               0.071
   4                 parameter    Plasma Volume ... Value               0.04
   5                 parameter    m1                Value               0.379
   6                 parameter    m2                Value               0.673
   7                 parameter    m4                Value               0.269
   8                 parameter    m5                Value               0.0526
   9                 parameter    m6                Value               0.8118
   10                parameter    Hepatic Extrac... Value               0.6
   11                parameter    kmax              Value               0.0465
   12                parameter    kmin              Value               0.0076
   13                parameter    kabs              Value               0.023
   14                parameter    kgri              Value               0.0465
   15                parameter    f                 Value               0.9
   16                parameter    a                 Value               6e-05
   17                parameter    b                 Value               0.68
   18                parameter    c                 Value               0.00023
   19                parameter    d                 Value               0.09
   20                parameter    Stomach Glu Af... Value               125
   21                parameter    kp1               Value               3.09
   22                parameter    kp2               Value               0.0007
   23                parameter    kp3               Value               0.005
   24                parameter    kp4               Value               0.0786
   25                parameter    ki                Value               0.0066
   26                parameter    [Ins Ind Glu U... Value               1
   27                parameter    Vm0               Value               4.65
   28                parameter    Vmx               Value               0.034
   29                parameter    Km                Value               466.21
   30                parameter    p2U               Value               0.084
   31                parameter    K                 Value               0.99
   32                parameter    alpha             Value               0.013
   33                parameter    beta              Value               0.05
   34                parameter    gamma             Value               0.5
   35                parameter    ke1               Value               0.0007
   36                parameter    ke2               Value               269
   37                parameter    Basal Plasma G... Value               164.18
   38                parameter    Basal Plasma I... Value               54.81

Подавить информационное предупреждение, которое выдается во время симуляций.

warnSettings = warning('off','SimBiology:DimAnalysisNotDone_MatlabFcn_Dimensionless');

Создайте объекты SimFunction, чтобы симулировать ответ глюкоза-инсулин для нормальных и диабетических субъектов.

  • Задайте пустой массив {} для второго входного параметра, чтобы обозначить, что модель будет моделироваться с помощью базовых значений параметров (то есть сканирование параметра не будет выполнено).

  • Укажите концентрации глюкозы и инсулина в плазме в качестве ответов (выходы функции, которая будет нанесена).

  • Определите вид Dose в качестве дозированного вида. Этот вид представляет начальную концентрацию глюкозы в начале симуляции.

normSim = createSimFunction(m1,{},...
             {'[Plasma Glu Conc]','[Plasma Ins Conc]'},'Dose')
normSim = 
SimFunction

Parameters:

Observables: 

            Name                Type                 Units         
    _____________________    ___________    _______________________

    {'[Plasma Glu Conc]'}    {'species'}    {'milligram/deciliter'}
    {'[Plasma Ins Conc]'}    {'species'}    {'picomole/liter'     }

Dosed: 

    TargetName       TargetDimension   
    __________    _____________________

     {'Dose'}     {'Mass (e.g., gram)'}

Для диабетического пациента укажите начальные условия с помощью варианта type2.

diabSim = createSimFunction(m1,{},...
             {'[Plasma Glu Conc]','[Plasma Ins Conc]'},'Dose',type2)
diabSim = 
SimFunction

Parameters:

Observables: 

            Name                Type                 Units         
    _____________________    ___________    _______________________

    {'[Plasma Glu Conc]'}    {'species'}    {'milligram/deciliter'}
    {'[Plasma Ins Conc]'}    {'species'}    {'picomole/liter'     }

Dosed: 

    TargetName       TargetDimension   
    __________    _____________________

     {'Dose'}     {'Mass (e.g., gram)'}

Выберите дозу, которая представляет один прием пищи из 78 граммов глюкозы в начале симуляции.

singleMeal = sbioselect(m1,'Name','Single Meal');

Преобразуйте информацию о дозах в формат таблицы.

mealTable  = getTable(singleMeal);

Моделируйте ответ глюкоза-инсулин для нормального субъекта в течение 24 часов.

sbioplot(normSim([],24,mealTable));

Figure contains an axes. The axes with title States versus Time contains 2 objects of type line. These objects represent Glucose appearance.Plasma Glu Conc, Insulin secretion.Plasma Ins Conc.

Моделируйте ответ глюкоза-инсулин для субъекта с диабетом в течение 24 часов.

sbioplot(diabSim([],24,mealTable));

Figure contains an axes. The axes with title States versus Time contains 2 objects of type line. These objects represent Glucose appearance.Plasma Glu Conc, Insulin secretion.Plasma Ins Conc.

Выполните скан с использованием вариантов

Предположим, что вы хотите выполнить скан параметра, используя массив вариантов, которые содержат различные начальные условия для различных нарушений инсулина. Для примера, модель m1 имеет варианты, которые соответствуют низкой чувствительности к инсулину и высокой чувствительности к инсулину. Можно симулировать модель для обоих условий через один вызов объекта SimFunction.

Выберите варианты для сканирования.

varToScan = sbioselect(m1,'Name',...
                    {'Low insulin sensitivity','High insulin sensitivity'});

Проверьте, какие параметры модели хранятся в каждом варианте.

varToScan(1)
ans = 
   SimBiology Variant - Low insulin sensitivity (inactive)

   ContentIndex:     Type:        Name:             Property:           Value:
   1                 parameter    Vmx               Value               0.0235
   2                 parameter    kp3               Value               0.0045

varToScan(2)
ans = 
   SimBiology Variant - High insulin sensitivity (inactive)

   ContentIndex:     Type:        Name:             Property:           Value:
   1                 parameter    Vmx               Value               0.094
   2                 parameter    kp3               Value               0.018

Оба варианта хранят альтернативные значения для Vmx и kp3 параметры. Вы должны задать их как входные параметры, когда вы создаете объект SimFunction.

Создайте объект SimFunction для сканирования вариантов.

variantScan = createSimFunction(m1,{'Vmx','kp3'},...
          {'[Plasma Glu Conc]','[Plasma Ins Conc]'},'Dose');

Симулируйте модель и постройте график результатов. Run 1 включите результаты симуляции низкой чувствительности к инсулину и Run 2 для высокой чувствительности к инсулину.

sbioplot(variantScan(varToScan,24,mealTable));

Figure contains an axes. The axes with title States versus Time contains 4 objects of type line. These objects represent Run 1 - Glucose appearance.Plasma Glu Conc, Run 1 - Insulin secretion.Plasma Ins Conc, Run 2 - Glucose appearance.Plasma Glu Conc, Run 2 - Insulin secretion.Plasma Ins Conc.

Низкая чувствительность к инсулину приводит к повышенной и длительной концентрации глюкозы в плазме.

Восстановите параметры предупреждения.

warning(warnSettings);

Ссылки

[1] Gillespie, D.T. (1977). Точная стохастическая симуляция связанных химических реакций. Журнал физической химии. 81(25), 2340–2361.

Расширенные возможности

Введенный в R2014a