exponenta event banner

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

В этом примере показано, как использовать Curve Fitting Toolbox™ для подгонки поверхностей реакции на некоторые данные анестезии для анализа эффектов взаимодействия лекарств. Модели поверхности ответа обеспечивают хороший метод для понимания поведения фармакодинамического взаимодействия комбинаций лекарств.

Эти данные основаны на результатах этой работы: Kern SE, Xie G, White JL, Egan TD. Опиоидно-гипнотическая синергия: анализ поверхности ответа фармакодинамического взаимодействия пропофол-ремифентанил у добровольцев. Анестезиология 2004; 100: 1373-81.

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

Следующий код с использованием методов панели инструментов «Фитинг кривой» воспроизводит интерактивное построение поверхности с помощью инструмента «Фитинг кривой», описанного в разделе «Фитинг поверхности к биофармацевтическим данным».

Загрузить данные

Загрузите данные из файла.

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.

Вписать поверхность в тетан

Повторно использовать то же самое 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.