Симулируйте и оцените подбиравшую модель SimBiology
[
возвращает результаты симуляции ynew
,parameterEstimates
]=
predict(resultsObj
)ynew
и параметр оценивает parameterEstimates
из подходящего SimBiology® модель.
[
возвращает результаты симуляции ynew
,parameterEstimates
]=
predict(resultsObj
,data
,dosing
)ynew
и оцененные значения параметров parameterEstimates
от оценки подбиравшей модели SimBiology с помощью заданного data
и dosing
информация.
Во время симуляций, predict
использует значения параметров в resultsObj.ParameterEstimates
свойство. Используйте этот метод, когда это необходимо, чтобы оценить подобранную модель и предсказать ответы с помощью новых данных и/или информации о дозах.
[
симулирует подобранную модель и применяет заданные варианты к каждой симуляции.ynew
,parameterEstimates
]=
predict(resultsObj
,data
,dosing
,'Variants',v
)
Этот пример использует дрожжи гетеротримерные данные модели белка G и экспериментальные данные, о которых сообщают [1]. Для получения дополнительной информации о модели, смотрите раздел Background в Сканировании Параметра, Оценке Параметра и Анализе чувствительности в Дрожжах Гетеротримерный Цикл Белка 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);
В этом примере показано, как оценить специфичный для категории (такой как молодой по сравнению со старым, штекерным по сравнению с розеткой) параметры PK с помощью данных о профиле от нескольких индивидуумов, использующих модель 2D отсека. Параметры, чтобы оценить являются объемами центрального и периферийного отсека, разрешения и межразделенного на отсеки разрешения.
Синтетические данные, используемые в этом примере, содержат ход времени плазменных концентраций нескольких индивидуумов после дозы шарика (100 мг), измеренных в разное время и для центральных и для периферийных отсеков. Это также содержит категориальные переменные, а именно, Пол и Возраст.
clear
load('sd5_302RAgeSex.mat');
Преобразуйте набор данных в объект groupedData, который является необходимым форматом данных для подходящей функции sbiofit. Объект groupedData позволяет вам устанавливать независимую переменную и имена переменных группы (если они существуют). Установите модули ID, Время, CentralConc, PeripheralConc, Возраст и переменные Sex. Модули являются дополнительными и только необходимыми для функции UnitConversion, которая автоматически преобразует соответствие с физическими количествами в одну сопоставимую модульную систему.
gData = groupedData(data); gData.Properties.VariableUnits = {'','hour','milligram/liter','milligram/liter','',''};
Свойства IndependentVariableName и GroupVariableName были автоматически установлены в переменные Time и ID данных.
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'
В целях рисунка используйте первые пять отдельных данных для обучения и 6-е отдельные данные для тестирования.
trainData = gData([gData.ID < 6],:); testData = gData([gData.ID == 6],:);
Отобразите данные об ответе для каждого индивидуума в наборе обучающих данных.
sbiotrellis(trainData,'ID','Time',{'CentralConc','PeripheralConc'});
Пользуйтесь встроенной библиотекой PK, чтобы создать модель 2D отсека с дозированием вливания и устранением первого порядка, где уровень устранения зависит от разрешения и объема центрального отсека. Используйте объект 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 как параметры, чтобы оценить. Объект estimatedInfo позволяет вам опционально указать, что параметр преобразовывает, начальные значения и границы параметра. С тех пор и Центральный и Периферийный ограничиваются быть положительным, задать логарифмическое преобразование для каждого параметра.
paramsToEstimate = {'log(Central)', 'log(Peripheral)', 'Q12', 'Cl_Central'}; estimatedParam = estimatedInfo(paramsToEstimate,'InitialValue',[1 1 1 1]);
Используйте свойство 'CategoryVariableName' объекта estimatedInfo задать который категория использовать во время подбора кривой. Используйте 'Пол' в качестве группы к пригодному для разрешения Cl_Central и параметры Q12. Используйте 'Возраст' в качестве группы к пригодному для Центральных и Периферийных параметров.
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);
Что касается тестирования целей, симулируйте ответы 6-го индивидуума, который является старым штекером. Поскольку вы оценили один набор параметров для категории Возраста (молодой по сравнению со старым) и другой набор для Сексуальной категории (штекер по сравнению с розеткой), можно симулировать ответы старого штекера даже при том, что нет такого индивидуума в обучающих данных.
Используйте предсказать метод, чтобы симулировать ответы. ynew содержит данные моделирования, и paramestim содержит оценки параметра, используемые в процессе моделирования.
[ynew,paramestim] = predict(categoryFit,testData,dose);
Постройте симулированные отклики старого штекера.
sbioplot(ynew);
paramestim переменная содержит предполагаемые параметры, используемые предсказать методом. Оценки параметра для соответствующих категорий были получены из categoryFit.ParameterEstimates свойства. А именно, Центральные и Периферийные оценки параметра получены из Старой группы, и Q12 и оценки параметра Cl_Central получены из Штекерной группы.
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)'});
resultsObj
— Результаты оценкиOptimResults
возразите | NLINResults
объектОценка заканчивается в виде OptimResults object
или NLINResults object
, который содержит результаты оценки, возвращенные sbiofit
. Это должен быть скалярный объект.
data
— Выведите времена или сгруппированные данныеgroupedData
объектВыведите времена или сгруппированные данные в виде вектора или массив ячеек векторов выходных времен, или groupedData
object
.
Если это - вектор из моментов времени, predict
симулирует модель с новыми моментами времени с помощью оценок параметра от объекта resultsObj
результатов.
Если это - массив ячеек векторов из моментов времени, predict
симулирует времена модели n с помощью выходных времен от каждого временного вектора, где n является длиной data
.
Если это - groupedData
объект, это должно иметь независимую переменную, такую как Время. Это должно также иметь переменную группы, если обучающие данные, используемые для подбора кривой, имеют такую переменную. Можно использовать groupedData
возразите, чтобы запросить различные комбинации категорий если resultsObj
содержит оценки параметра для каждой категории. predict
симулирует модель для каждой группы с заданными категориями. Например, предположите, что у вас есть набор оценок параметра для сексуальной категории (штекеры по сравнению с розетками) и категории возраста (молодой по сравнению со старым) в ваших обучающих данных. Можно использовать predict
симулировать ответы старого штекера (или любая другая комбинация) несмотря на то, что такой пациент не может существовать в обучающих данных.
Если resultsObj
от оценки специфичных для категории параметров, data
должен быть groupedData
объект.
Примечание
Если UnitConversion
включен для базовой модели SimBiology, которая использовалась для подбора кривой и data
groupedData
объект, data
должен задать модули действительной переменной через data.Properties.VariableUnits
свойство. Если это - числовой векторный массив или массив ячеек векторов из моментов времени, predict
использует TimeUnits
модели.
dosing
— Информация о дозах[]
| {}
| 2D матрица дозы возражает | вектор ячейки из объектов дозыИнформация о дозах в виде пустого []
или {}
, 2D матрица или вектор ячейки из объектов дозы SimBiology (ScheduleDose object
или RepeatDose object
).
Если dosing
пусто, никакие дозы не применяются в процессе моделирования, даже если модель имеет активные дозы.
Для матрицы объектов дозы это должно иметь одну строку или одну строку на группу во входных данных. Если это имеет одну строку, те же дозы применяются ко всем группам в процессе моделирования. Если это имеет несколько строк, каждая строка применяется к отдельной группе в том же порядке, как группы появляются во входных данных. Несколько столбцов позволены так, чтобы можно было применить несколько объектов дозы к каждой группе.
Для вектора ячейки из доз это должно иметь один элемент или один элемент на группу во входных данных. Каждым элементом должен быть []
или вектор из доз. Каждый элемент ячейки применяется к отдельной группе в том же порядке, как группы появляются во входных данных.
В дополнение к ручному построению использования объектов дозы sbiodose
, если вход groupedData
объект имеет информацию о дозах, можно использовать createDoses
метод, чтобы создать дозы.
Объекты дозы dosing
введите должно быть сопоставимо с исходными данными о дозировании, используемыми с sbiofit
. Объекты должны иметь те же значения для свойств дозы (таких как TargetName
) или должен быть параметрирован таким же образом как исходные данные о дозировании. Например, предположите, что исходная матрица дозирования имеет два столбца доз, где дозы в первом столбце предназначаются для разновидностей x и тех во вторых целевых разновидностях y столбца. Затем dosing
должен иметь дозы в первом столбце, предназначающемся для разновидностей x и тех во втором столбце, предназначающемся для разновидностей y. Параметрированный пример дозы следующие. Предположим что Amount
свойство дозы используется в оригинале sbiofit
вызов параметрируется к ограниченному по объему моделью параметру 'A'
. Все дозы для соответствующей группы (столбец) в dosing
матричный вход должен иметь Amount
свойство параметрируется к 'A'
.
Количество строк в dosing
элементы матрицы или число элементов в dosing
вектор ячейки и количество групп или выходных временных векторов в data
определите общее количество результатов симуляции в выходе ynew
. Для получения дополнительной информации см. таблицу в ynew
описание аргумента.
Примечание
Если UnitConversion
включен для базовой модели SimBiology, которая использовалась для подбора кривой, dosing
должен задать допустимую сумму и единицы измерения времени.
v
— Варианты, чтобы применяться[]
| {}
| 2D матрица вариантов | вектор ячейки из вариантовВарианты, чтобы применяться в виде пустого массива ([]
, {}
), 2D матрица или вектор ячейки из различных объектов.
Если вы не задаете этот аргумент, функция имеет следующее поведение в зависимости от ли второй входной параметр (data
) задан также или нет.
Если data
не задан, функция применяет специфичные для группы варианты от исходного вызова до sbiofit
.
Если data
векторный массив или массив ячеек выходных времен, функция не применяет специфичные для группы варианты.
Если data
groupedData
объект, функция применяет варианты только к группам, идентификатор группы которых совпадает с идентификатором группы в исходных обучающих данных, который использовался в вызове sbiofit
.
Примечание
Базовые варианты, которые были заданы вариантами позиционный входной параметр в исходном вызове sbiofit
всегда применяются к модели, и они применяются перед любыми специфичными для группы вариантами.
Если нет никаких базовых вариантов, то есть, вы не задавали variants
введите при вызове sbiofit
, predict
функция все еще применяет активные варианты модели, если существует кто-либо.
Если значением аргумента является []
или {}
, функция не применяет специфичных для группы вариантов.
Если это - матрица вариантов, это должно иметь или одну строку или одну строку на группу. Каждая строка применяется к отдельной группе в том же порядке, как группы появляются в data
или dosing
. Если это имеет одну строку, те же варианты применяются ко всем группам в процессе моделирования. Если существует несколько столбцов, варианты применяются в порядке от первого столбца до последнего.
Если это - вектор ячейки из различных объектов, количество ячеек должно быть один или должно совпадать с количеством групп во входных данных. Каждым элементом должен быть []
или вектор из вариантов. Если существует отдельная ячейка, содержащая вектор из вариантов, они применяются ко всем симуляциям. Если существует несколько ячеек, варианты в i th ячейка применяются к симуляции i th группа.
Функция задает количество групп путем исследования data
, и dosing
входные параметры.
data
может иметь 1
или группы N.
Если data
и dosing
аргументы не заданы, затем данные по умолчанию и дозирование определяются можно следующим образом:
Для необъединенных подгонок они - данные и дозирующий для одной группы, сопоставленной с этим результаты подгонки.
Для всех других подгонок они - целый набор данных и дозирования связанного с вызовом sbiofit
.
ynew
— Результаты симуляцииSimData
объектыРезультаты симуляции, возвращенные как вектор из SimData
объекты. О состояниях сообщают в ynew
состояния, которые были включены в responseMap
входной параметр sbiofit
а также любые другие состояния, перечисленные в StatesToLog
свойство опций во время выполнения (RuntimeOptions
) из модели SimBiology.
Общее количество результатов симуляции в ynew
зависит от количества групп или выходных временных векторов в data
и количество строк в dosing
матрица.
Количество групп или выходных временных векторов в data | Количество строк в dosing матрица | Результаты симуляции |
---|---|---|
1 | 0 | Общее количество Никакие дозы не применяются в процессе моделирования. |
1 | 1 | Общее количество Данная строка доз применяется во время симуляции. |
1 | N | Общее количество Каждая строка |
N | 0 | Общее количество Никакие дозы не применяются в процессе моделирования. |
N | 1 | Общее количество Та же строка доз применяется к каждой симуляции. |
N | N | Общее количество Каждая строка |
M | N | Функция выдает ошибку когда M ≠ N. |
parameterEstimates
— Предполагаемые значения параметровПредполагаемые значения параметров, возвращенные как таблица. Это идентично resultsObj.ParameterEstimates
свойство. predict
метод использует эти значения параметров в процессе моделирования.
[1] И, T-M., Kitano, H. и Саймон, M. (2003). Количественная характеристика дрожжей гетеротримерный цикл белка G. PNAS. 100, 10764–10769.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.