exponenta event banner

Подогнать однокамерную модель к индивидуальному профилю ПК

Фон

Этот пример показывает, как подогнать данные профиля ПК индивидуума к однокамерной модели и оценить фармакокинетические параметры.

Предположим, что у вас есть данные о концентрации лекарственного средства в плазме от человека и вы хотите оценить объем центрального отделения и клиренс. Предположим, что концентрация лекарственного средства в сравнении с профилем времени следует за моноэкспоненциальным снижением Ct = C0e-ket, где Ct - концентрация лекарственного средства в момент t, C0 - начальная концентрация, и ke - постоянная скорости удаления, которая зависит от зазора и объема центрального отделения ke = Cl/V.

Синтетические данные в этом примере были получены с использованием следующей модели, параметров и дозы:

  • Однокамерная модель с болюсным дозированием и устранением первого порядка

  • Объем центрального отсека (Central) = 1,70 литра

  • Параметр зазора (Cl_Central) = 0,55 л/час

  • Модель постоянной ошибки

  • Болюсная доза 10 мг

Загрузка данных и визуализация

Данные хранятся в виде таблицы с переменными. Time и Conc которые представляют собой временной курс концентрации в плазме человека после внутривенного введения болюса, измеренный в 13 различных временных точках. Переменные единицы для Time и Conc час и миллиграмм/литр соответственно.

clear all
load('data15.mat')
plot(data.Time,data.Conc,'b+')
xlabel('Time (hour)');
ylabel('Drug Concentration (milligram/liter)');

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

Преобразуйте в Формат groupedData

Преобразовать набор данных в groupedData объект, который является требуемым форматом данных для функции фитинга sbiofit для последующего использования. A groupedData объект также позволяет задавать независимые имена переменных и групп (если они существуют). Установка единиц измерения Time и Conc переменные. Установки являются необязательными и обязательными только для UnitConversion функция, которая автоматически преобразует соответствующие физические величины в одну согласованную систему единиц измерения.

gData = groupedData(data);
gData.Properties.VariableUnits = {'hour','milligram/liter'};
gData.Properties
ans = struct with fields:
                Description: ''
                   UserData: []
             DimensionNames: {'Row'  'Variables'}
              VariableNames: {'Time'  'Conc'}
       VariableDescriptions: {}
              VariableUnits: {'hour'  'milligram/liter'}
         VariableContinuity: []
                   RowNames: {}
           CustomProperties: [1x1 matlab.tabular.CustomProperties]
          GroupVariableName: ''
    IndependentVariableName: 'Time'

groupedData автоматически установить имя IndependentVariableName к свойству Time переменная данных.

Построение однокамерной модели

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

pkmd                    = PKModelDesign;
pkc1                    = addCompartment(pkmd,'Central');
pkc1.DosingType         = 'Bolus';
pkc1.EliminationType    = 'linear-clearance';
pkc1.HasResponseVariable = true;
model                   = construct(pkmd);
configset               = getconfigset(model);
configset.CompileOptions.UnitConversion = true;

Дополнительные сведения о создании моделей компартментальных ПК с использованием встроенной библиотеки SimBiology ® см. в разделе Создание фармакокинетических моделей.

Определение дозирования

Определите единичную болюсную дозу в 10 миллиграммов, заданную в момент времени = 0. Для получения подробной информации о настройке различных графиков дозирования см. Дозы в моделях SimBiology.

dose                = sbiodose('dose');
dose.TargetName     = 'Drug_Central';
dose.StartTime      = 0;
dose.Amount         = 10;
dose.AmountUnits    = 'milligram';
dose.TimeUnits      = 'hour';

Сопоставление данных ответа с соответствующим компонентом модели

Данные содержат данные о концентрации лекарственного средства, хранящиеся в Conc переменная. Эти данные соответствуют Drug_Central виды в модели. Поэтому сопоставьте данные с Drug_Central следующим образом.

responseMap = {'Drug_Central = Conc'};

Укажите параметры для оценки

Параметры для соответствия в этой модели - объем центрального отсека (Central) и скорость клиренса (Cl_Central). В этом случае укажите логарифмическое преобразование для этих биологических параметров, поскольку они ограничены положительными. estimatedInfo объект позволяет при необходимости задавать преобразования параметров, начальные значения и границы параметров.

paramsToEstimate    = {'log(Central)','log(Cl_Central)'};
estimatedParams     = estimatedInfo(paramsToEstimate,'InitialValue',[1 1],'Bounds',[1 5;0.5 2]);

Параметры оценки

Теперь, когда вы определили однокамерную модель, данные для подгонки, сопоставленные данные ответа, параметры для оценки и дозирование, использование sbiofit для оценки параметров. Функция оценки по умолчанию, которая sbiofit использование будет изменяться в зависимости от доступных панелей инструментов. Чтобы увидеть, какая функция использовалась во время фитинга, проверьте EstimationFunction свойства соответствующего объекта результатов.

fitConst = sbiofit(model,gData,responseMap,estimatedParams,dose);

Отображение расчетных параметров и результатов графика

Обратите внимание, что оценки параметров не были далеки от истинных значений (1,70 и 0,55), которые использовались для генерации данных. Можно также попробовать различные модели ошибок, чтобы увидеть, могут ли они еще больше улучшить оценки параметров.

fitConst.ParameterEstimates
ans=2×4 table
         Name         Estimate    StandardError      Bounds  
    ______________    ________    _____________    __________

    {'Central'   }     1.6993       0.034821         1      5
    {'Cl_Central'}    0.53358        0.01968       0.5      2

s.Labels.XLabel     = 'Time (hour)';
s.Labels.YLabel     = 'Concentration (milligram/liter)';
plot(fitConst,'AxesStyle',s);

Figure contains an axes. The axes with title Group One group contains 2 objects of type line. These objects represent OBS1 (Conc), PRED1 (Central.Drug_Central).

Использовать различные модели ошибок

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

fitProp = sbiofit(model,gData,responseMap,estimatedParams,dose,...
                      'ErrorModel','proportional');
fitExp  = sbiofit(model,gData,responseMap,estimatedParams,dose,...
                      'ErrorModel','exponential');
fitComb = sbiofit(model,gData,responseMap,estimatedParams,dose,...
                      'ErrorModel','combined');

Использовать веса вместо модели ошибки

Можно указать веса как числовую матрицу, где количество столбцов соответствует количеству ответов. Установка для всех весов значения 1 эквивалентна модели постоянной ошибки.

weightsNumeric = ones(size(gData.Conc));
fitWeightsNumeric = sbiofit(model,gData,responseMap,estimatedParams,dose,'Weights',weightsNumeric);

Можно также использовать дескриптор функции, который принимает вектор прогнозируемых значений отклика и возвращает вектор весов. В этом примере используйте дескриптор функции, эквивалентный модели пропорциональной ошибки.

weightsFunction = @(y) 1./y.^2;
fitWeightsFunction = sbiofit(model,gData,responseMap,estimatedParams,dose,'Weights',weightsFunction);

Сравнение информационных критериев для выбора модели

Сравните логические данные, значения AIC и BIC каждой модели, чтобы увидеть, какая модель ошибок лучше всего подходит для данных. Большее значение правдоподобия указывает, что соответствующая модель лучше подходит для модели. Для AIC и BIC меньшие значения лучше.

allResults = [fitConst,fitWeightsNumeric,fitWeightsFunction,fitProp,fitExp,fitComb];
errorModelNames = {'constant error model','equal weights','proportional weights', ...
                   'proportional error model','exponential error model',...
                   'combined error model'};
LogLikelihood = [allResults.LogLikelihood]';
AIC = [allResults.AIC]';
BIC = [allResults.BIC]';
t = table(LogLikelihood,AIC,BIC);
t.Properties.RowNames = errorModelNames;
t
t=6×3 table
                                LogLikelihood      AIC        BIC  
                                _____________    _______    _______

    constant error model            3.9866       -3.9732    -2.8433
    equal weights                   3.9866       -3.9732    -2.8433
    proportional weights           -3.8472        11.694     12.824
    proportional error model       -3.8257        11.651     12.781
    exponential error model         1.1984        1.6032     2.7331
    combined error model            3.9163       -3.8326    -2.7027

На основе информационных критериев модель постоянных ошибок (или равных весов) лучше всего подходит к данным, поскольку она имеет наибольшую стоимость средств к существованию и наименьшую AIC и BIC.

Отображение оценочных значений параметров

Отображение расчетных значений параметров каждой модели.

Estimated_Central       = zeros(6,1);
Estimated_Cl_Central    = zeros(6,1);
t2 = table(Estimated_Central,Estimated_Cl_Central);
t2.Properties.RowNames = errorModelNames;
for i = 1:height(t2)
    t2{i,1} = allResults(i).ParameterEstimates.Estimate(1);
    t2{i,2} = allResults(i).ParameterEstimates.Estimate(2);
end
t2
t2=6×2 table
                                Estimated_Central    Estimated_Cl_Central
                                _________________    ____________________

    constant error model             1.6993                0.53358       
    equal weights                    1.6993                0.53358       
    proportional weights             1.9045                0.51734       
    proportional error model         1.8777                0.51147       
    exponential error model          1.7872                0.51701       
    combined error model             1.7008                0.53271       

Заключение

Этот пример показал, как оценить параметры ПК, а именно объем центрального отсека и параметр зазора индивидуума, путем подгонки данных профиля ПК к однокамерной модели. Вы сравнили информационные критерии каждой модели и оценочные значения параметров различных моделей ошибок, чтобы увидеть, какая модель лучше всего объяснила данные. Окончательные подогнанные результаты предлагали как постоянные, так и комбинированные модели ошибок, предоставляющие самые близкие оценки к значениям параметров, используемым для генерации данных. Тем не менее, модель постоянной ошибки является лучшей моделью, о чем свидетельствуют критерии источника информации, AIC и BIC.

См. также

Связанные темы