Добавьте наблюдаемые выражения в 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.