EventMode

Определите, как события, которые изменяют параметры дозы, влияют на происходящее дозирование

Описание

EventMode свойство RepeatDose и ScheduleDose объекты. Это свойство определяет, продолжить ли продолжающуюся дозу, то есть, дозу со скоростью введения не по умолчанию или длительностью дозы, к завершению, когда событие изменяет параметр, на который ссылается свойство дозы. Свойства дозы, которые можно параметрировать: Amount, RateИнтервалВремя начала, RepeatCount, LagParameterName, и DurationParameterName.

Если EventMode установлен в 'continue', продолжающаяся доза продолжается к завершению, когда параметры дозы изменений события и обновленные параметры влияют только на последующие дозы. Если EventMode установлен в 'stop', продолжающаяся доза останавливается сразу, когда параметры дозы изменяются, и последующие дозы используют обновленные параметры.

Чтобы решить, был ли параметр изменен, SimBiology сравнивает старое значение параметра к новому значению. Например, следующее событие не изменяет doseStartTime значение параметров: addevent(model,'time >= 5','doseStartTime = doseStartTime * 1').

Любое изменение в параметрах дозы влияет на расписание сгенерированных доз. Если симуляция достигает момента времени для запланированной дозы, доза применяется. Если событие изменяет параметры дозы, SimBiology обновляет расписание дозы, игнорирует любые дозы, запланированные перед текущим временем симуляции, и применяет только последующие дозы. Предположим, что вы параметрировали StartTime свойство дозы. Обновление параметра с событием вызывает, чтобы регенерировать расписание дозы. Если существуют какие-либо ранее запланированные дозы перед текущим временем симуляции, они проигнорированы.

По умолчанию SimBiology® использует следующее выражение MATLAB®, чтобы сгенерировать список времен дозы (расписание дозы) каждый раз, когда событие изменяет любой параметр дозы, с помощью обновленных значений параметров:

scheduledDoseTimes = StartTime  + (0:RepeatCount) * Interval + Lag,

где StartTime, RepeatCount и Interval являются свойствами объекта дозы. Lag является параметром задержки для дозы, на которую ссылается LagParameterName свойство.

Характеристики

ПрименяетсяОбъекты: RepeatDose, ScheduleDose
Тип данныхСимвольный вектор
Значения данных

'stop' (значение по умолчанию) или 'continue'

ДоступЧтение-запись

Примеры

развернуть все

Создайте простую модель с линейным устранением, параметром суммы и параметром уровня.

model                      = sbiomodel('simple model');
compartment                = addcompartment(model,'Central',1);
compartment.CapacityUnits  = 'liter';
species                    = addspecies(model,'drug');
species.InitialAmountUnits = 'milligram';

% Elimination rate
elimParam                  = addparameter(model,'kel',0.1);
elimParam.ValueUnits       = '1/hour';

% Elimination reaction
reaction                   = addreaction(model,'drug -> null');
reaction.ReactionRate      = 'kel*drug';

% Add amount and rate parameters
amountParam                = addparameter(model,'A',50);
amountParam.ConstantValue  = false;
amountParam.ValueUnits     = 'milligram'
amountParam = 
   SimBiology Parameter Array

   Index:    Name:    Value:    Units:   
   1         A        50        milligram

rateParam                  = addparameter(model,'R',10);
rateParam.ValueUnits       = 'milligram/hour'
rateParam = 
   SimBiology Parameter Array

   Index:    Name:    Value:    Units:        
   1         R        10        milligram/hour

Создайте дозу с ее Amount и Rate набор свойств к сумме и параметрам уровня и 'R', соответственно.

dose                       = adddose(model,'adaptive dose','repeat');
dose.Amount                = 'A';
dose.Rate                  = 'R';

Установите другие свойства дозы.

dose.TargetName            = 'drug';
dose.StartTime             = 0;
dose.TimeUnits             = 'hour';
dose.Interval              = 24;
dose.RepeatCount           = 7;

Подготовьте конфигурацию модели, чтобы симулировать модель в течение 7 дней.

configset           = getconfigset(model);
configset.StopTime  = 7*24;
configset.TimeUnits = 'hour';

Добавьте событие к сбросу суммарная доза к 10 во время> = 26.

event = addevent(model,'time >= 26','A = 10');

Установите EventMode свойство 'остановиться'. Эта установка заставляет любое продолжающееся событие дозы останавливаться в 26 часов.

dose.EventMode = 'stop';

Симулируйте модель. Вторые остановки события дозы в 26 часов и последующие события дозы продолжают новую суммарную дозу 10.

[time, drugAndAmount] = sbiosimulate(model,dose);
figure
plot(time, drugAndAmount); 
legend('drug','A');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent drug, A.

В качестве альтернативы можно позволить продолжающемуся событию дозы заканчиваться прежде, чем применить новую суммарную дозу установкой EventMode 'продолжаться'.

dose.EventMode = 'continue';

Симулируйте модель. В этом случае второе событие дозы продолжается к 26 часам.

[time, drugAndAmount] = sbiosimulate(model,dose);
figure
plot(time, drugAndAmount); 
legend('drug','A');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent drug, A.