Этот пример показывает, как моделировать глюкозно-инсулиновые реакции для нормальных и диабетических субъектов.
Загрузить модель глюкозно-инсулиновой реакции. Для получения подробной информации о модели см. раздел «Фон» в разделе «Моделирование реакции глюкоза-инсулин».
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));

Имитировать глюкозно-инсулиновый ответ для субъекта диабета в течение 24 часов.
sbioplot(diabSim([],24,mealTable));

Предположим, что вы хотите выполнить сканирование параметров с использованием массива вариантов, которые содержат различные начальные условия для различных нарушений инсулина. Например, модель 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));

Низкая чувствительность к инсулину приводит к увеличению и увеличению концентрации глюкозы в плазме.
Восстановить параметры предупреждения.
warning(warnSettings);