Симулируйте модель глюкозо-инсулиновой реакции с различными начальными условиями

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

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

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