exponenta event banner

renameobservable

Переименование наблюдаемых объектов в SimData

Описание

пример

sdout = renameobservable(sdin,oldNames,newNames) возвращает новое SimData объект (или массив объектов) sdout после переименования наблюдаемых в sdin и перерасчет всех наблюдаемых выражений.

Примеры

свернуть все

Загрузить модель распределения лекарств, опосредованных мишенью (TMDD).

sbioloadproject tmdd_with_TO.sbproj

Установить целевую заполняемость (TO) в качестве ответа.

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

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

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

Сканирование по различным дозам с использованием 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 в качестве выходных данных моделирования.

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

Parameters:

         Name          Value        Type            Units    
    _______________    _____    _____________    ____________

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

Observables: 

     Name         Type               Units      
    ______    _____________    _________________

    {'TO'}    {'parameter'}    {'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:     0
 

Постройте график результатов моделирования. Также добавьте две опорные линии, которые представляют пороговые значения безопасности и эффективности для TO. В этом примере предположим, что любой TO значение выше 0,85 небезопасно, и любое TO значение ниже 0,15 не имеет эффективности.

h = sbioplot(sd);
time = sd(1).Time;
h.NextPlot = 'add';
safetyThreshold = plot(h,[min(time), max(time)],[0.85, 0.85],'DisplayName','Safety Threshold');
efficacyThreshold = plot(h,[min(time), max(time)],[0.15, 0.15],'DisplayName','Efficacy Threshold');

Figure contains an axes. The axes with title States versus Time contains 33 objects of type line. These objects represent Run 1 - TO, Run 2 - TO, Run 3 - TO, Run 4 - TO, Run 5 - TO, Run 6 - TO, Run 7 - TO, Run 8 - TO, Run 9 - TO, Run 10 - TO, Run 11 - TO, Run 12 - TO, Run 13 - TO, Run 14 - TO, Run 15 - TO, Run 16 - TO, Run 17 - TO, Run 18 - TO, Run 19 - TO, Run 20 - TO, Run 21 - TO, Run 22 - TO, Run 23 - TO, Run 24 - TO, Run 25 - TO, Run 26 - TO, Run 27 - TO, Run 28 - TO, Run 29 - TO, Run 30 - TO, Run 31 - TO, Safety Threshold, Efficacy Threshold.

Выполните постобработку результатов моделирования. Узнайте, какие количества доз эффективны, соответствующие 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:     1
 

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

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

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

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

Figure contains an axes. The axes contains an object of type line.

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

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

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

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

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

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

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

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

свернуть все

Входные данные моделирования, указанные как SimData объект или массив объектов.

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

Пример: {'max_drug','mean_drug'}

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

Новые имена наблюдаемых объектов, указанные как символьный вектор, строка, строковый вектор или массив ячеек символьных векторов. Количество новых имен должно соответствовать количеству старых имен.

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

Пример: {'MAX','MEAN'}

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

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

свернуть все

Данные моделирования с наблюдаемыми результатами, возвращенные как SimData объект или массив объектов.

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