В этом примере показано, как использовать Curve Fitting Toolbox™ для подгонки поверхностей ответа к некоторым данным анестезии для анализа эффектов взаимодействия с лекарственными средствами. Модели поверхности ответа обеспечивают хороший метод для понимания фармакодинамического взаимодействия комбинаций лекарств.
Эти данные основаны на результатах в этой статье: Kern SE, Xie G, White JL, Egan TD. Опиоидно-гипнотическая синергия: Поверхностный анализ реакции на фармакодинамическое взаимодействие пропофол-ремифентанил у добровольцев. Анестезиология 2004; 100: 1373-81.
Анестезия обычно представляет собой процесс с двумя лекарственными средствами, состоящий из опиоида и седативного гипнота. Этот пример использует Пропофол и Реминфентанил в качестве прототипов класса препарата. Их взаимодействие измеряется четырьмя различными показателями обезболивающего и седативного ответа на комбинацию препарата. Алгометрия, тетания, седация и лариингоскопия включают четыре меры суррогатных лекарственных эффектов при различных комбинациях концентраций пропофола и реминфентанила.
Следующий код, используя методы Curve Fitting Toolbox, воспроизводит интерактивное поверхностное создание с Аппроксимированием кривыми Инструмента, описанной в Surface Fitting to Biopharmaceutical Данных.
Загрузите данные из файла.
data = importdata( 'OpioidHypnoticSynergy.txt' );
Propofol = data.data(:,1);
Remifentanil = data.data(:,2);
Algometry = data.data(:,3);
Tetany = data.data(:,4);
Sedation = data.data(:,5);
Laryingoscopy = data.data(:,6);
Можно использовать fittype
функция для определения модели из бумаги, где CA
и CB
концентрации лекарственных средств и IC50A
, IC50B
, alpha
, и n
- коэффициенты, которые будут оценены. Создайте тип модели подгонки.
ft = fittype( 'Emax*( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n /(( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n + 1 )', ... 'independent', {'CA', 'CB'}, 'dependent', 'z', 'problem', 'Emax' )
ft = General model: ft(IC50A,IC50B,alpha,n,Emax,CA,CB) = Emax*( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n /(( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n + 1 )
Предположим Emax = 1
потому что выход эффекта нормирован.
Emax = 1;
Установите опции подгонки для устойчивого подбора кривой, границ и начальных точек.
opts = fitoptions( ft );
opts.Lower = [0, 0, -5, -0];
opts.Robust = 'LAR';
opts.StartPoint = [0.0089, 0.706, 1.0, 0.746];
[f, gof] = fit( [Propofol, Remifentanil], Algometry, ft,... opts, 'problem', Emax )
Fitting stopped because the number of iterations or function evaluations exceeded the specified maximum.
General model: f(CA,CB) = Emax*( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n /(( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n + 1 ) Coefficients (with 95% confidence bounds): IC50A = 4.148 (4.123, 4.173) IC50B = 9.042 (8.969, 9.116) alpha = 8.498 (8.312, 8.683) n = 8.299 (8.141, 8.457) Problem parameters: Emax = 1
gof = struct with fields:
sse: 0.0842
rsquare: 0.9991
dfe: 393
adjrsquare: 0.9991
rmse: 0.0146
plot( f, [Propofol, Remifentanil], Algometry );
Повторно используйте ту же fittype
чтобы создать поверхность отклика для тетании.
[f, gof] = fit( [Propofol, Remifentanil], Tetany, ft, opts, 'problem', Emax )
General model: f(CA,CB) = Emax*( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n /(( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n + 1 ) Coefficients (with 95% confidence bounds): IC50A = 4.544 (4.522, 4.567) IC50B = 21.22 (21.04, 21.4) alpha = 14.94 (14.67, 15.21) n = 6.132 (6.055, 6.209) Problem parameters: Emax = 1
gof = struct with fields:
sse: 0.0537
rsquare: 0.9993
dfe: 393
adjrsquare: 0.9993
rmse: 0.0117
plot( f, [Propofol, Remifentanil], Tetany );
[f, gof] = fit( [Propofol, Remifentanil], Sedation, ft, opts, 'problem', Emax )
General model: f(CA,CB) = Emax*( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n /(( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n + 1 ) Coefficients (with 95% confidence bounds): IC50A = 1.843 (1.838, 1.847) IC50B = 13.7 (13.67, 13.74) alpha = 1.986 (1.957, 2.015) n = 44.27 (42.56, 45.98) Problem parameters: Emax = 1
gof = struct with fields:
sse: 0.0574
rsquare: 0.9994
dfe: 393
adjrsquare: 0.9994
rmse: 0.0121
plot( f, [Propofol, Remifentanil], Sedation );
[f, gof] = fit( [Propofol, Remifentanil], Laryingoscopy, ft, opts, 'problem', Emax )
General model: f(CA,CB) = Emax*( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n /(( CA/IC50A + CB/IC50B + alpha*( CA/IC50A ) * ( CB/IC50B ) )^n + 1 ) Coefficients (with 95% confidence bounds): IC50A = 5.192 (5.177, 5.207) IC50B = 37.77 (37.58, 37.97) alpha = 19.67 (19.48, 19.86) n = 37 (35.12, 38.87) Problem parameters: Emax = 1
gof = struct with fields:
sse: 0.1555
rsquare: 0.9982
dfe: 393
adjrsquare: 0.9982
rmse: 0.0199
plot( f, [Propofol, Remifentanil], Laryingoscopy );