addobservable

Добавьте заметный объект в модель SimBiology

Описание

пример

obsObj = addobservable(modelObj,obsName,obsExpression) добавляет observable возразите против модели modelObj SimBiology®. Входные параметры obsName и obsExpression заметное имя объекта и его выражение, соответственно.

пример

obsObj = addobservable(modelObj,obsName,obsExpression,Name,Value) устанавливает значения свойств obsObj использование одного или нескольких аргументов пары "имя-значение". Name имя свойства и Value соответствующее значение Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN. Для списка свойств смотрите заметные свойства объектов.

Примеры

свернуть все

Загрузите модель Установленного целью расположения препарата (TMDD).

sbioloadproject tmdd_with_TO.sbproj

Установите целевое заполнение (TO) как ответ.

cs = getconfigset(m1);
cs.RuntimeOptions.StatesToLog = 'TO';

Получите информацию дозирования.

d = getdose(m1,'Daily Dose');

Добавьте два скаляра observables, которые представляют пороги безопасности и эффективности для TO. В этом примере предположите что любой TO значение выше 0.85 небезопасно, и любой TO значение ниже 0.15 не имеет никакой эффективности.

safetyTO = addobservable(m1,'SafetyThreshold','0.85','Unit','dimensionless');
efficacyTO = addobservable(m1,'EfficacyThreshold','0.15','Unit','dimensionless');

Отсканируйте по различным суммарным дозам с помощью SimBiology.Scenarios объект. Для этого сначала параметрируйте Amount свойство дозы. Затем варьируйтесь соответствующее значение параметров с помощью Scenarios объект.

amountParam = addparameter(m1,'AmountParam','Units',d.AmountUnits);
d.Amount = 'AmountParam';
d.Active = 1;
doseSamples = SimBiology.Scenarios('AmountParam',linspace(0,300,31));

Создайте SimFunction симулировать модель. Установите TO и два порога (observables) как симуляция выходные параметры.

% Suppress informational warnings that are issued during simulation.
warning('off','SimBiology:SimFunction:DOSES_NOT_EMPTY');
f = createSimFunction(m1,doseSamples,{'TO','SafetyThreshold','EfficacyThreshold'},d)
f = 
SimFunction

Parameters:

         Name          Value        Type            Units    
    _______________    _____    _____________    ____________

    {'AmountParam'}      1      {'parameter'}    {'nanomole'}

Observables: 

            Name                  Type               Units      
    _____________________    ______________    _________________

    {'TO'               }    {'parameter' }    {'dimensionless'}
    {'SafetyThreshold'  }    {'observable'}    {'dimensionless'}
    {'EfficacyThreshold'}    {'observable'}    {'dimensionless'}

Dosed: 

      TargetName                 TargetDimension                  Amount         AmountValue    AmountUnits 
    _______________    ___________________________________    _______________    ___________    ____________

    {'Plasma.Drug'}    {'Amount (e.g., mole or molecule)'}    {'AmountParam'}         1         {'nanomole'}

warning('on','SimBiology:SimFunction:DOSES_NOT_EMPTY');

Симулируйте модель с помощью суммарных доз, сгенерированных Scenarios объект. В этом случае объект генерирует 31 различную дозу; следовательно модель симулирована 31 раз и генерирует SimData массив.

doseTable = getTable(d);
sd = f(doseSamples,cs.StopTime,doseTable)
 
   SimBiology Simulation Data Array: 31-by-1
 
   ModelName:        TMDD
   Logged Data:
     Species:        0
     Compartment:    0
     Parameter:      1
     Sensitivity:    0
     Observable:     2
 

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

sbioplot(sd);

Постобработайте результаты симуляции. Узнайте, какие суммарные дозы являются эффективными, соответствуя TO ответы в порогах безопасности и эффективности. Для этого добавьте заметное выражение в данные моделирования.

% Suppress informational warnings that are issued during simulation.
warning('off','SimBiology:sbservices:SB_DIMANALYSISNOTDONE_MATLABFCN_UCON');
newSD = addobservable(sd,'stat1','max(TO) < 0.85 & min(TO) > 0.15','Units','dimensionless')
 
   SimBiology Simulation Data Array: 31-by-1
 
   ModelName:        TMDD
   Logged Data:
     Species:        0
     Compartment:    0
     Parameter:      1
     Sensitivity:    0
     Observable:     3
 

addobservable функция выполняет новое заметное выражение для каждого SimData в sd и возвращает оцененные результаты как новый SimData массив. newSD имеет три observables. Первые два соответствуют порогам безопасности и эффективности. Третьим является добавленное заметное (stat1).

SimBiology хранит заметные результаты в двух различных свойствах SimData объект. Если результаты со скалярным знаком, они хранятся в SimData.ScalarObservables. В противном случае они хранятся в SimData.VectorObservables. В этом примере, stat1 заметное выражение со скалярным знаком.

Извлеките скалярные заметные значения и постройте их против суммарных доз.

scalarObs = vertcat(newSD.ScalarObservables);
doseAmounts = generate(doseSamples);
plot(doseAmounts.AmountParam,scalarObs.stat1,'o','MarkerFaceColor','b')

График показывает, что суммарные дозы в пределах от 50 - 180 нанородинок обеспечивают TO ответы, которые лежат в целевых порогах эффективности и безопасности.

Можно обновить заметное выражение с различными пороговыми суммами. Функция повторно вычисляет выражение и возвращает результаты в новый SimData objectArray.

newSD2 = updateobservable(newSD,'stat1','max(TO) < 0.75 & min(TO) > 0.30');

Переименуйте заметное выражение. Функция переименовывает заметное, обновляет любые выражения, которые ссылаются на переименованное заметное (если применимо), и возвращает результаты в новый SimData objectArray.

newSD3 = renameobservable(newSD2,'stat1','EffectiveDose');

Восстановите настройки предупреждения.

warning('on','SimBiology:sbservices:SB_DIMANALYSISNOTDONE_MATLABFCN_UCON');

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

свернуть все

Модель SimBiology в виде SimBiology model object.

Имя заметного объекта в виде вектора символов или строки.

Имя

  • Не может содержать символы [ ], ->, или <->.

  • Не может быть пустым, слово time, слово null или весь пробел.

  • Должно быть уникальным в модели, означая, что никакой заметный объект не может иметь то же имя как другой заметный, разновидности, отсек, параметр, реакция, вариант или доза в модели.

Для получения дополнительной информации см. Инструкции для Именования Компонентов модели.

Пример: 'AUC_obs'

Типы данных: char | string

Выражение заметного объекта в виде вектора символов или строки.

Пример: 'trapz(time,drug)'

Типы данных: char | string

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

свернуть все

Заметный объект, возвращенный как observable объект.

Введенный в R2020a
Для просмотра документации необходимо авторизоваться на сайте