Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

사용자 지정 방정식을 사용하여 생물약제 데이터에 곡면 피팅

이 예제에서는 Curve Fitting Toolbox™를 사용해 일부 마취 데이터에 반응 표면을 피팅하여 약물 상호작용 효과를 분석하는 방법을 보여줍니다. 반응 표면 모델은 약물 조합의 약역학적 상호작용 동작을 이해할 수 있는 좋은 방법입니다.

이 데이터는 다음 논문의 결과를 기반으로 합니다. Kern SE, Xie G, White JL, Egan TD. Opioid-hypnotic synergy: A response surface analysis of propofol-remifentanil pharmacodynamic interaction in volunteers. Anesthesiology 2004; 100: 1373-81.

마취는 일반적으로 오피오이드와 진정 작용의 수면제로 구성된 최소 2개의 약물 과정입니다. 이 예제에서는 Propofol(프로포폴)과 Reminfentanil(레미펜타닐)을 약물군 프로토타입으로 사용합니다. 이들 약물의 상호작용은 약물 조합에 대한 진통제 및 진정제 반응의 4가지 다른 측정값으로 측정됩니다. Algometry(통각 측정), Tetany(강직), Sedation(진정) 및 Laryingoscopy(후두경 검사)는 Propofol(프로포폴)과 Reminfentanil(레미펜타닐)을 다양한 농도로 조합했을 때 대리표지자 약물 효과의 4가지 측정값으로 구성됩니다.

Curve Fitting Toolbox 메서드를 사용한 다음 코드는 Surface Fitting to Biopharmaceutical Data 항목에 설명되어 있는 곡선 피팅 툴을 사용한 대화형 방식의 곡면 작성을 재현합니다.

데이터 불러오기

파일에서 데이터를 불러옵니다.

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 함수를 사용하여 논문의 모델을 정의할 수 있습니다. 여기서 CACB는 약물 농도이고, 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];

Algometry(통각 측정)에 대한 곡면 피팅 및 플로팅하기

[f, gof] = fit( [Propofol, Remifentanil], Algometry, ft,...
    opts, 'problem', Emax )
Success, but fitting stopped because change in residuals less than tolerance (TolFun).
     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.174)
       IC50B =       9.043  (8.97, 9.117)
       alpha =         8.5  (8.315, 8.686)
       n =       8.291  (8.133, 8.449)
     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 object. The axes object contains 2 objects of type surface, line. One or more of the lines displays its values using only markers

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 object. The axes object contains 2 objects of type surface, line. One or more of the lines displays its values using only markers

Sedation(진정)에 곡면 피팅하기

[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 object. The axes object contains 2 objects of type surface, line. One or more of the lines displays its values using only markers

Laryingoscopy(후두경 검사)에 곡면 피팅하기

[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 object. The axes object contains 2 objects of type surface, line. One or more of the lines displays its values using only markers