exponenta event banner

Прогнозирование (Результаты TSquitingResults, OptimResults, NLINResults

)

Моделирование и оценка подогнанной модели SimBiology

Синтаксис

[ynew,parameterEstimates]= predict(resultsObj)
[ynew,parameterEstimates]= predict(resultsObj,data,dosing)

Описание

[ynew,parameterEstimates]= predict(resultsObj) возвращает результаты моделирования ynew и оценки параметров parameterEstimates встроенной модели SimBiology ®.

[ynew,parameterEstimates]= predict(resultsObj,data,dosing) возвращает результаты моделирования ynew и оценочные значения параметров parameterEstimates от оценки подогнанной модели SimBiology с использованием указанного data и dosing информация.

Во время моделирования, predict использует значения параметров в resultsObj.ParameterEstimates собственность. Этот метод используется при необходимости оценки подогнанной модели и прогнозирования ответов с использованием новых данных и/или информации о дозировке.

Входные аргументы

свернуть все

Результаты оценки, указанные как OptimResults object или NLINResults object, который содержит результаты оценки, возвращенные sbiofit. Это должен быть скалярный объект.

Время вывода или сгруппированные данные, указанные как вектор, или массив ячеек векторов времени вывода, или groupedData object.

Если это вектор временных точек, predict моделирует модель с новыми временными точками, используя оценки параметров из объекта результатов resultsObj.

Если это клеточный массив векторов временных точек, predict моделирует модель n раз с использованием времени вывода из каждого вектора времени, где n - длина data.

Если это groupedData объект должен иметь независимую переменную, например Time. Она также должна иметь переменную группы, если данные обучения, используемые для подгонки, имеют такую переменную. Вы можете использовать groupedData объект для запроса различных комбинаций категорий, если resultsObj содержит оценки параметров для каждой категории. predict моделирует модель для каждой группы с заданными категориями. Например, предположим, что у вас есть набор оценок параметров для категории пола (мужчины против женщин) и возрастной категории (молодые против пожилых) в ваших данных обучения. Вы можете использовать predict для моделирования ответов старого мужчины (или любой другой комбинации), хотя такой пациент может не существовать в тренировочных данных.

Если resultsObj из оценки специфичных для категории параметров, data должно быть groupedData объект.

Примечание

Если UnitConversion включен для базовой модели SimBiology, которая использовалась для подгонки и data является groupedData объект, data необходимо указать допустимые переменные единицы через data.Properties.VariableUnits собственность. Если это числовой вектор или клеточный массив векторов временных точек, predict использует модель TimeUnits.

Информация о дозировании, указанная как пустой массив [] или 2-D матрица объектов дозы SimBiology (ScheduleDose object или RepeatDose object). Если dosing является матрицей дозовых объектов, матрица должна содержать дозы по умолчанию или согласовываться с исходными дозирующими данными, используемыми с sbiofit. То есть дозовые объекты в dosing должны иметь одинаковые значения для свойств дозы (например, TargetName) или должны быть параметризованы таким же образом, как исходные данные дозирования. Например, предположим, что исходная матрица дозирования имеет два столбца доз, где дозы в первой колонке являются целевыми видами x, а дозы во второй колонке являются целевыми видами y. Тогда dosing должны иметь дозы в первой колонке, нацеленной на виды x, и дозы во второй колонке, нацеленной на виды y.

  • Если он пуст, во время моделирования дозы не применяются, даже если модель имеет активные дозы.

  • Если матрица не пуста, она должна содержать одну строку или одну строку на группу во входных данных. Если она имеет одну строку, во время моделирования ко всем группам применяются одинаковые дозы. Если она содержит несколько строк, каждая строка применяется к отдельной группе в том же порядке, что и группы во входных данных. Если для некоторых групп (или векторов времени) требуется больше доз, чем для других, заполните матрицу стандартными (фиктивными) дозами.

  • Допускается использование нескольких столбцов, что позволяет применять объекты с несколькими дозами к каждой группе или вектору времени. Все дозы в столбце должны быть дозами по умолчанию или должны ссылаться на одни и те же компоненты в модели (например, дозы должны иметь одинаковую целевую дозу TargetName) и должны иметь согласованные параметризованные свойства, как в исходных данных дозирования, используемых с sbiofit. Например, если Amount свойство дозы, используемой в оригинале sbiofit вызов параметризуется для параметра в области модели 'A', все дозы для соответствующей группы (колонка) в dosing должны иметь Amount свойство параметризовано для 'A'.

  • Доза по умолчанию имеет значения по умолчанию для всех свойств, за исключением Name собственность. Создайте дозу по умолчанию следующим образом.

    d1 = sbiodose('d1');

  • В дополнение к ручному построению дозовых объектов с помощью sbiodose, если входные данные являются groupedData объект и имеет информацию о дозировке, вы можете использовать createDoses СПОСОБ КОНСТРУИРОВАНИЯ ДОЗ ИЗ НЕГО.

Количество строк в dosing матрица и количество групп или векторов выходного времени в data определить общее количество результатов моделирования в выходных данных ynew. Для получения более подробной информации см. таблицу в ynew описание аргумента.

Примечание

Если UnitConversion включен для базовой модели SimBiology, которая использовалась для подгонки, dosing необходимо указать допустимое количество и единицы времени.

Выходные аргументы

свернуть все

Результаты моделирования, возвращенные как вектор SimData объекты. Штаты, о которых сообщалось в ynew являются состояниями, которые были включены в responseMap входной аргумент sbiofit а также любые другие государства, перечисленные в StatesToLog свойства параметров среды выполнения (RuntimeOptions) модели SimBiology.

Общее число результатов моделирования в ynew зависит от количества групп или выходных векторов времени в data и количество строк в dosing матрица.

Количество групп или выходных векторов времени в dataКоличество строк в dosing матрицаРезультаты моделирования

1

0, то есть dosing пуст []

Общее количество SimData объекты в ynew равно 1.

Во время моделирования дозы не применяются.

1

1

Общее количество SimData объекты в ynew равно 1.

Данный ряд доз применяют во время моделирования.

1

N

Общее количество SimData объекты в ynew является Н.

Каждая строка dosing применяется к каждому моделированию.

N

0, то есть dosing пуст []

Общее количество SimData объекты в ynew является Н.

При моделировании дозы не применяются.

N

1

Общее количество SimData объекты в ynew является Н.

Один и тот же ряд доз применяется для каждого моделирования.

NN

Общее количество SimData объекты в ynew является Н.

Каждая строка dosing применяется к отдельной группе в том же порядке, в котором отображаются группы data.

MNФункция выдает ошибку, когда MN.

Расчетные значения параметров, возвращаемые в виде таблицы. Это идентично resultsObj.ParameterEstimates собственность. predict использует эти значения параметров во время моделирования.

Примеры

свернуть все

В этом примере используется модель дрожжевого гетеротримерного G-белка и экспериментальные данные, представленные в [1]. Дополнительные сведения о модели см. в разделе Фон в разделе Сканирование параметров, Оценка параметров и Анализ чувствительности в цикле дрожжевого гетеротримерного G-белка.

Загрузите модель G-белка.

sbioloadproject gprotein

Хранят экспериментальные данные, содержащие временной курс для фракции активного G-белка.

time = [0 10 30 60 110 210 300 450 600]';
GaFracExpt = [0 0.35 0.4 0.36 0.39 0.33 0.24 0.17 0.2]';

Сопоставьте соответствующий компонент модели с экспериментальными данными. Другими словами, укажите, какие виды в модели соответствуют какой переменной ответа в данных. В этом примере сопоставьте параметр модели GaFrac в экспериментальную переменную данных GaFracExpt от grpData.

responseMap = 'GaFrac = GaFracExpt';

Создать groupedData объект на основе экспериментальных данных.

tbl = table(time,GaFracExpt);
grpData = groupedData(tbl);

Использовать estimatedInfo объект для определения параметра модели kGd в качестве параметра, подлежащего оценке.

estimatedParam = estimatedInfo('kGd');

Выполните оценку параметров.

fitResult = sbiofit(m1,grpData,responseMap,estimatedParam);

Просмотр расчетного значения параметра kGd.

fitResult.ParameterEstimates
ans=1×3 table
     Name      Estimate    StandardError
    _______    ________    _____________

    {'kGd'}    0.11307      3.4439e-05  

Предположим, что необходимо смоделировать подогнанную модель с использованием времени вывода, отличного от времени в данных обучения. Вы можете использовать predict способ для этого.

Создание новой переменной T с различным временем вывода.

T = [0;10;50;80;100;150;300;350;400;450;500;550];

Используйте predict метод моделирования подогнанной модели в новых точках времени. При первом запуске дозирование не было указано sbiofit. Следовательно, вы не можете использовать какую-либо информацию о дозировке с predict и пустой массив должен быть указан в качестве третьего входного аргумента.

ynew = predict(fitResult,T,[]);

Постройте график смоделированных данных с новым временем вывода.

sbioplot(ynew);

Figure contains an axes. The axes with title States versus Time contains 7 objects of type line. These objects represent G, Gd, Ga, RL, R, Gbg, GaFrac.

В этом примере показано, как оценить специфичные для категории (такие как молодой и старый, мужской и женский) параметры ПК с использованием данных профиля от нескольких лиц с использованием двухкамерной модели. Параметрами для оценки являются объемы центрального и периферийного отделения, клиренс и межотраслевой клиренс.

Синтетические данные, используемые в этом примере, содержат временной ход концентраций в плазме нескольких индивидуумов после болюсной дозы (100 мг), измеренной в разное время как для центрального, так и для периферического отделения. Он также содержит категориальные переменные, а именно пол и возраст.

clear
load('sd5_302RAgeSex.mat');

Преобразуйте набор данных в объект groupedData, который является необходимым форматом данных для подходящей функции sbiofit. Объект groupedData позволяет Вам устанавливать независимую переменную и имена переменной группы (если они существуют). Задайте единицы измерения переменных ID, Time, CentralConc, Conc, Age и Sex. Единицы измерения являются необязательными и обязательными только для функции UnitConversion, которая автоматически преобразует соответствующие физические величины в одну согласованную систему единиц измерения.

gData = groupedData(data);
gData.Properties.VariableUnits = {'','hour','milligram/liter','milligram/liter','',''};

Для свойств «» Имя вариации «» и «» Имя вариации «» автоматически установлены переменные «» Время «» и «» Идентификатор «» данных.

gData.Properties
ans = struct with fields:
                Description: ''
                   UserData: []
             DimensionNames: {'Row'  'Variables'}
              VariableNames: {1x6 cell}
       VariableDescriptions: {}
              VariableUnits: {1x6 cell}
         VariableContinuity: []
                   RowNames: {}
           CustomProperties: [1x1 matlab.tabular.CustomProperties]
          GroupVariableName: 'ID'
    IndependentVariableName: 'Time'

В целях иллюстрации используйте первые пять индивидуальных данных для обучения и шестые индивидуальные данные для тестирования.

trainData = gData([gData.ID < 6],:);
testData  = gData([gData.ID == 6],:);

Просмотрите данные ответа для каждого сотрудника в наборе обучения.

sbiotrellis(trainData,'ID','Time',{'CentralConc','PeripheralConc'});

Figure contains 6 axes. Axes 1 with title ID 1 contains 2 objects of type line. These objects represent CentralConc, PeripheralConc. Axes 2 with title ID 3 contains 2 objects of type line. Axes 3 with title ID 5 contains 2 objects of type line. Axes 4 with title ID 2 contains 2 objects of type line. Axes 5 with title ID 4 contains 2 objects of type line. Axes 6 is empty.

Используйте встроенную библиотеку ПК для построения двухкамерной модели с инфузионным дозированием и устранением первого порядка, где скорость устранения зависит от зазора и объема центрального отсека. Используйте объект configset для включения преобразования единиц измерения.

pkmd                                    = PKModelDesign;
pkc1                                    = addCompartment(pkmd,'Central');
pkc1.DosingType                         = 'Bolus';
pkc1.EliminationType                    = 'linear-clearance';
pkc1.HasResponseVariable                = true;
pkc2                                    = addCompartment(pkmd,'Peripheral');
model                                   = construct(pkmd);
configset                               = getconfigset(model);
configset.CompileOptions.UnitConversion = true;

Предположим, что каждый человек получает болюсную дозу 100 мг в момент времени = 0.

dose             = sbiodose('dose','TargetName','Drug_Central');
dose.StartTime   = 0;
dose.Amount      = 100;
dose.AmountUnits = 'milligram';
dose.TimeUnits   = 'hour';

Данные содержат измеренную концентрацию плазмы в центральном и периферийном отсеках. Сопоставьте эти переменные соответствующим компонентам модели, которые являются Drug_Central и Drug_Peripheral.

responseMap = {'Drug_Central = CentralConc','Drug_Peripheral = PeripheralConc'};

В качестве параметров для оценки укажите объемы центрального и периферийного отсеков, Q12 межотраслевого клиренса и Cl_Central клиренса. Объект equimateInfo позволяет дополнительно указать преобразования параметров, начальные значения и границы параметров. Так как и центральный, и периферийный параметры ограничены положительным значением, укажите логарифмическое преобразование для каждого параметра.

paramsToEstimate    = {'log(Central)', 'log(Peripheral)', 'Q12', 'Cl_Central'};
estimatedParam      = estimatedInfo(paramsToEstimate,'InitialValue',[1 1 1 1]);

Для указания категории, используемой во время фитинга, используйте свойство CategureVariiveName объекта estimateInfo. Используйте «Sex» в качестве группы для соответствия Cl_Central зазора и параметрам Q12. Используйте «Age» в качестве группы для соответствия параметрам Central и Peripheral.

estimatedParam(1).CategoryVariableName = 'Age';
estimatedParam(2).CategoryVariableName = 'Age';
estimatedParam(3).CategoryVariableName = 'Sex';
estimatedParam(4).CategoryVariableName = 'Sex';
categoryFit = sbiofit(model,trainData,responseMap,estimatedParam,dose)
categoryFit = 
  OptimResults with properties:

                   ExitFlag: 1
                     Output: [1x1 struct]
                  GroupName: []
                       Beta: [8x5 table]
         ParameterEstimates: [20x6 table]
                          J: [40x8x2 double]
                       COVB: [8x8 double]
           CovarianceMatrix: [8x8 double]
                          R: [40x2 double]
                        MSE: 0.1047
                        SSE: 7.5349
                    Weights: []
              LogLikelihood: -19.0159
                        AIC: 54.0318
                        BIC: 73.0881
                        DFE: 72
             DependentFiles: {1x3 cell}
    EstimatedParameterNames: {'Central'  'Peripheral'  'Q12'  'Cl_Central'}
             ErrorModelInfo: [1x3 table]
         EstimationFunction: 'lsqnonlin'

При подгонке по категории (или группе) sbiofit всегда возвращает один объект результатов, а не один для каждого уровня категории. Это связано с тем, что как мужчины, так и женщины считаются частью одной и той же оптимизации, используя одну и ту же модель ошибок и параметры ошибок, аналогично для молодых и старых людей.

Постройте график оценочных результатов для конкретной категории. Для параметров Cl_Central и Q12 все мужчины имели одинаковые оценки и аналогично для женщин. Для центральных и периферических параметров все молодые люди имели одинаковые оценки, и аналогично для старых людей.

plot(categoryFit);

Figure contains 6 axes. Axes 1 with title Group 1 contains 4 objects of type line. These objects represent OBS1 (CentralConc), OBS2 (PeripheralConc), PRED1 (Central.Drug_Central), PRED2 (Peripheral.Drug_Peripheral). Axes 2 with title Group 3 contains 4 objects of type line. Axes 3 with title Group 5 contains 4 objects of type line. Axes 4 with title Group 2 contains 4 objects of type line. Axes 5 with title Group 4 contains 4 objects of type line. Axes 6 is empty.

Что касается целей тестирования, смоделировать ответы 6-го человека, который является старым мужчиной. Поскольку вы оценили один набор параметров для возрастной категории (молодой или старый), а другой набор для сексуальной категории (мужчина или женщина), вы можете смоделировать ответы старого мужчины, даже если такой индивидуум отсутствует в данных обучения.

Используйте метод прогнозирования для моделирования ответов. ynew содержит данные моделирования, а paramestim содержит оценки параметров, используемые при моделировании.

[ynew,paramestim] = predict(categoryFit,testData,dose);

Постройте график смоделированных откликов старого мужчины.

sbioplot(ynew);

Figure contains an axes. The axes with title States versus Time contains 2 objects of type line. These objects represent Central.Drug_Central, Peripheral.Drug_Peripheral.

Переменная paramestim содержит оценочные параметры, используемые методом прогнозирования. Оценки параметров для соответствующих категорий были получены из свойства categureFit.ParameterEstimates. В частности, оценки параметров Central и Peripheral получают из группы Old, а оценки параметров Q12 и Cl_Central получают из группы Male.

paramestim
paramestim=4×6 table
         Name         Estimate    StandardError    Group    CategoryVariableName    CategoryValue
    ______________    ________    _____________    _____    ____________________    _____________

    {'Central'   }     1.1993       0.0046483        6            {'Age'}               Old      
    {'Peripheral'}    0.55195        0.015098        6            {'Age'}               Old      
    {'Q12'       }     1.4969        0.074321        6            {'Sex'}               Male     
    {'Cl_Central'}    0.56363       0.0072862        6            {'Sex'}               Male     

Наложение экспериментальных результатов на смоделированные данные.

figure;
plot(testData.Time,testData.CentralConc,'LineStyle','none','Marker','d','MarkerEdgeColor','b');
hold on
plot(testData.Time,testData.PeripheralConc,'LineStyle','none','Marker','d','MarkerEdgeColor','r');
plot(ynew.Time,ynew.Data(:,1),'b');
plot(ynew.Time,ynew.Data(:,2),'r');
hold off
legend({'OBS1(CentralConc)','OBS2(PeripheralConc)',...
        'PRED1(Central.Drug\_Central)','PRED2(Peripheral.Drug\_Peripheral)'});

Figure contains an axes. The axes contains 4 objects of type line. These objects represent OBS1(CentralConc), OBS2(PeripheralConc), PRED1(Central.Drug\_Central), PRED2(Peripheral.Drug\_Peripheral).

Ссылки

Yi, T-M., Kitano, H. и Simon, M. (2003). Количественная характеристика дрожжевого гетеротримерного G-белкового цикла. PNAS. 100, 10764–10769.

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