Поверхностная аппроксимация пользовательскими уравнениями к биофармпластическим данным

В этом примере показано, как использовать 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 );

Figure contains an axes. The axes contains 2 objects of type surface, line.

Подбор поверхности к Tetany

Повторно используйте ту же 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 );

Figure contains an axes. The axes contains 2 objects of type surface, line.

Подбор поверхности к седации

[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 );

Figure contains an axes. The axes contains 2 objects of type surface, line.

Подбор поверхности к лариингоскопии

[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 );

Figure contains an axes. The axes contains 2 objects of type surface, line.