exponenta event banner

createSimFunction (модель)

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

Описание

пример

F = createSimFunction(model,params,observables,dosed) создает SimFunction object F , который можно выполнить, как дескриптор функции. 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-by-N массивом, где N - число дозированных названий видов. Повторяющиеся имена видов можно использовать, если при запуске SimFunction планируется использовать несколько доз для одного вида. F. Использование только дозированных названий видов не содержит информации о дозовых свойствах. Если у вас есть объект дозы, который содержит параметризованные свойства, такие как Amount, использовать объект дозы в качестве входных данных вместо только имен видов для передачи такой информации о параметрах в созданную SimFunction F.

Если это вектор дозовых объектов, то это должен быть 1-by-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 и Toolbox™ параллельных вычислений доступна, SimFunction F выполняется параллельно.

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

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

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

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

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

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

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

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

Входные коэффициенты чувствительности, указанные как пара, разделенная запятыми, состоящая из 'SensitivityInputs' и клеточный массив символьных векторов. Векторы символов - это имена величин модели (видов, отсеков и параметров), по которым требуется вычислить чувствительность. Значение по умолчанию: {} означает отсутствие входных факторов. Входные факторы являются знаменателями зависящих от времени производных, объясненных в анализе чувствительности в 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, возвращается как SimFunction object или SimFunctionSensitivity object. Можно выполнить F как дескриптор функции.

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

Примеры

свернуть все

В этом примере используется модель радиоактивного распада с dzdt=c⋅x реакции первого порядка, где 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 создается объект, его можно выполнять как функциональный дескриптор и выполнять сканирование параметров (параллельно при наличии 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.

В этом примере показано, как рассчитать чувствительность некоторых видов в модели Lotka-Volterra с помощью 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] Гиллеспи, Д. Т. (1977). Точное стохастическое моделирование связанных химических реакций. Журнал физической химии. 81(25), 2340–2361.

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

Представлен в R2014a