exponenta event banner

случайный (LeastSquaresResults, OptimResults, NLINResults)

Моделируйте модель SimBiology, добавив изменения путем выборки ошибочной модели

Синтаксис

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

Описание

[ynew,parameterEstimates] = random(resultsObj) возвращает результаты симуляции ynew с добавленным шумом с помощью ошибочной информации модели, указанной свойством resultsObj.ErrorModelInfo и оцененными значениями параметров parameterEstimates.

[ynew,parameterEstimates] = random(resultsObj,data,dosing) использует заданный data и информацию о dosing.

Примечание

Шум только добавляется к состояниям, которые являются ответами, которые являются состояниями, включенными во входной параметр responseMap, когда вы вызвали sbiofit. Если существует отдельная ошибочная модель для каждого ответа, шум добавляется к каждому ответу отдельно с помощью соответствующей ошибочной модели.

Входные параметры

свернуть все

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

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

Если это - вектор моментов времени, random моделирует модель с новыми моментами времени с помощью оценок параметра от объекта resultsObj результатов.

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

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

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

Примечание

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

Дозирование информации, указанной как пустой массив [] или 2D матрица объектов дозы 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 является N.

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

N

0, то есть, dosing является пустой []

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

Никакие дозы не применяются во время симуляции.

N

1

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

Та же строка доз применяется к каждой симуляции.

NN

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

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

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

Предполагаемые значения параметров, возвращенные как таблица. Это идентично свойству resultsObj.ParameterEstimates.

Примеры

свернуть все

Этот пример использует дрожжи гетеротримерные данные модели белка G и экспериментальные данные, о которых сообщают [1]. Для получения дополнительной информации о модели, смотрите раздел Background в Сканировании Параметра, Оценке Параметра и Анализе чувствительности в Дрожжах Гетеротримерный Цикл Белка G.

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

sbioloadproject gprotein

Введите экспериментальные данные, содержащие курс времени для части активного белка G, как сообщается в ссылочной газете [1].

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]';

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

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

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

responseMap = 'GaFrac = GaFracExpt';

Используйте объект estimatedInfo задать параметр модели kGd в качестве параметра, чтобы быть оцененными.

estimatedParam = estimatedInfo('kGd');

Выполните оценку параметра. Используйте аргумент пары "имя-значение" 'ErrorModel', чтобы задать ошибочную модель, которая добавляет ошибку в данные моделирования.

fitResult = sbiofit(m1,grpData,responseMap,estimatedParam,'ErrorModel','proportional');

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

fitResult.ParameterEstimates
ans = 

    Name     Estimate    StandardError
    _____    ________    _____________

    'kGd'    0.11        0.00064116 

Используйте метод random, чтобы получить данные моделирования с добавленным шумом с помощью пропорциональной ошибочной модели, которая была задана sbiofit. Обратите внимание на то, что шум добавляется только к состоянию ответа, которое является параметром GaFrac.

[ynew,paramEstim] = random(fitResult);

Выберите данные моделирования для параметра GaFrac.

GaFracNew = select(ynew,{'Name','GaFrac'});

Постройте результаты симуляции.

plot(GaFracNew.Time,GaFracNew.Data)
hold on

Отобразите экспериментальные данные на графике, чтобы сравнить его с моделируемыми данными.

plot(time,GaFracExpt,'Color','k','Marker','o')
legend('GaFracNew','GaFracExpt')

Ссылки

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

Смотрите также

| |

Введенный в R2014a