Добавьте наблюдаемые выражения в SimData
возвращает новое sdout = addobservable(sdin,obsNames,obsExpressions)SimData объект (или массив объектов) sdout после добавления к входу заданных наблюдаемых SimData
sdin. Входы obsNames и obsExpressions являются наблюдаемыми именами и их соответствующими выражениями. Количество выражений должно совпадать с количеством наблюдаемых имен.
Загрузите модель диспозиции лекарственных средств, опосредованных мишенью (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');

Постпроцессируйте результаты симуляции. Узнайте, какие суммарные дозы эффективны, соответствуют 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')

График показывает, что суммарные дозы в диапазоне от 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');
sdin - Входные данные моделированияSimData объект | массив SimData объектыВходные данные моделирования, заданные как SimData объект или массив объектов.
obsNames - Имена наблюдаемых выраженийИмена наблюдаемых выражений, заданные как вектор символов, строка, строковый вектор или массив ячеек векторов символов.
Каждое имя должно быть уникальным в SimData объект, означающий, что он не может совпадать с именем любого другого наблюдаемого, вида, отсека, параметра или реакции, указанной в SimData объект.
Пример: {'max_drug','mean_drug'}
Типы данных: char | string | cell
obsExpressions - Наблюдаемые выраженияНаблюдаемые выражения, заданные как вектор символов, строка, строковый вектор или массив ячеек из векторов символов. Количество выражений должно совпадать с количеством наблюдаемых имен.
Пример: {'max(drug)','mean(drug)'}
Типы данных: char | string | cell
units - Модули для наблюдаемых выраженийМодули для наблюдаемых выражений, заданные как вектор символов, строка, строковый вектор или массив ячеек векторов символов. Количество модулей должно совпадать с количеством наблюдаемых имен.
Пример: {'nanomole/liter','nanomole/liter'}
Типы данных: char | string | cell
sdout - Данные моделирования с наблюдаемыми результатамиSimData объект | массив SimData объектыДанные моделирования с наблюдаемыми результатами, возвращенные как SimData объект или массив объектов.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.