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 объект должен иметь независимую переменную, например Time. Она также должна иметь переменную группы, если данные обучения, используемые для подгонки, имеют такую переменную. Вы можете использовать groupedData объект для запроса различных комбинаций категорий, если resultsObj содержит оценки параметров для каждой категории. random моделирует модель для каждой группы с заданными категориями. Например, предположим, что у вас есть набор оценок параметров для категории пола (мужчины против женщин) и возрастной категории (молодые против пожилых) в ваших данных обучения. Вы можете использовать random для моделирования ответов старого мужчины (или любой другой комбинации), хотя такой пациент может не существовать в тренировочных данных.

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

Примечание

Если UnitConversion включен для базовой модели SimBiology, которая использовалась для подгонки и data является groupedData объект, data необходимо указать допустимые переменные единицы через data.Properties.VariableUnits собственность. Если это числовой вектор или клеточный массив векторов временных точек, random использует модель 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 собственность.

Примеры

свернуть все

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

Ссылки

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

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