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