В этом примере показано, как симулировать ответы инсулина глюкозы для нормальных и диабетических предметов.
Загрузите модель ответа инсулина глюкозы. Для получения дополнительной информации о модели, смотрите раздел Background в Симуляции Ответа Инсулина Глюкозы.
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 kp1 Value 3.09 21 parameter kp2 Value 0.0007 22 parameter kp3 Value 0.005 23 parameter kp4 Value 0.0786 24 parameter ki Value 0.0066 25 parameter [Ins Ind Glu U... Value 1 26 parameter Vm0 Value 4.65 27 parameter Vmx Value 0.034 28 parameter Km Value 466.21 29 parameter p2U Value 0.084 30 parameter K Value 0.99 31 parameter alpha Value 0.013 32 parameter beta Value 0.05 33 parameter gamma Value 0.5 34 parameter ke1 Value 0.0007 35 parameter ke2 Value 269 36 parameter Basal Plasma G... Value 164.18 37 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)'} TimeUnits: hour
Для страдающего от диабета пациента задайте начальные условия с помощью варианта 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)'} TimeUnits: hour
Выберите дозу, которая представляет одну еду 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);