《武汉工程大学学报》  2009年07期 30-32   出版日期:2009-07-28   ISSN:1674-2869   CN:42-1779/TQ
改进单纯形法计算药物动力学参数


0引言药物动力学是研究药物吸收、分布、代谢、排泄的时间过程并涉及到这种时间过程同药理作用强度及时间过程关系的一门学科.药物动力学常用隔室模型来模拟机体系统[1].药物动力学的基本任务,一是在理论上创建模型,提出各种有合理依据的模型,求出模型的特解和通解,推证与建立包括输入与输出、体内与体外、药动与药效的的相关关系在内的一系列重要公式;二是在实验中求参数,对未知药物,根据机体给药后体液样本中药物浓度或药效的经时数据,选择合适的模型,求出该模型中的有关参数,使该模型与试验值能紧密的嵌合,即“模型嵌合”;三是应用参数,即根据已知的药物动力学参数,应用有关动力学公式,设计理想制剂与合理的给药方案[2].运用现代控制理论中的系统方块图,对隔室模 型进行处理,大大易化了对隔室模型的理解,记忆和应用[3] .通常由实验数据用最小二乘法得出未知参数的估计值.本研究引入使用目标函数值的改进单纯形法,给出了一个用Delphi编写的计算机程序.能用于各种给药途径隔室模型线性药物动力学和非线性药物动力学参数的计算.1方法与程序1.1改进单纯形法单纯形法是通过搜索来寻找最优目标的一种方法.该方法开始在一个单纯形各顶点上做计算,然后对结果进行比较,根据结果的情况来判断其变化的大致趋势,作为下一步选点参考.单纯形是在一定空间中的最简单的图形.二维空间中的单纯形是三角形.如图1.图1基本单纯性示意图
Fig.1 Basic simplex diagram由GHL构成一个单纯形,在各顶点上对应条件下,求出结果.若比较后,L点最好,H点最差,G点次差.为寻找最优点,一般可在最差点的对称位置找.即图中的R点.得到新的单纯形GLR.然后在R点做实验.重复此过程,直至按预定精度充分接近最优点.改进的单纯形法在单纯形法的反射操作基础上,还视各H、L、G等各点情况,增加扩张、压缩及整体收缩规则,加速了单纯形向最优点区域推进速度.还可以单纯形法中确定主元素的两个新法则来提高单纯形法的效率[4].1.2改进单纯形法程序框图此图如图2所示.图 2程序设计流程图
Fig.2The flow of programming1.3改进单纯形法药动学计算程序
procedure simplex(arrt,arrc,w:array of double;var arrcl,xx0:array of double;k0,tstop:double;alpha,simpsize,u: integer; var AIC: double);
const miu=1.8;lamda=0.75;eps=0.000 001;
var m,n,xl,xh,xg,count,number2:integer;
ys,yg,yh,yhl,yl,ye,yr,h:double;
xxr,xxs,xxe,xxc,y,yo: array[0..6] of double;
xx:array[0..6]of array [0..6] of double;

begin ys:=2;yg:=1; count:=0; number2:=1;
if mainform.Ivl.Checked or mainform.Ifl.Checked or
mainform.Pol.Checked then h:=1.7 else h:=0.5;
for n:=o to nn-1 do if arrc[n]>1e-10
then count:=count+1;
for m:=0 to 6 do //数组清零
for n:=0 to 6 do
xx[m,n]:=0.
for m:=0 to simpsize do
for n:=alpha to simpsize+alpha-l do
if m=(n-alpha+1)
then xx[m,n-alpha+l]:=(1+h)*xx0[n]
else xx[m,n-alpha+1]:=xx0[n];
repeat numbers2: =number2+1;
for m:=0 to simpsize do
for n:=1 to simpsize do
if xx[m,n]<=0 then xx[m,n]:=0.00001;
if ys>yg then
for m:=0 to simpsize do
y[m]: =remnant (arrcl,arrc,arrt,w,xx [m],k0,tstop,u,simpsize);//求各顶点值
yo:=y;sort(y,yo,yl,xl,0,simpsize,0,0); //根据值的大小,确定yl,yg,yh
yo:=y:sort(y,yo,yh,xh,0,size)size,1,0):yhl:=yh;
yo:=y,yo[xh]:=0; sort (y,yo,yg,xg,0,simpsize,1,0);
for n:=1 to simpsize do
begin xxc[n]:=0;
for m:=0 to simpsize do
If m<>xh then xxc[n]:=xxc [n]+xx[m,n];
xxc [n] := (xxc [n] -xx [xh,n]) /simpsize;
xxr[n] :=2*xxc[n ]-xx [xh,n];
第7期邱迪华,等:改进单纯形法计算药物动力学参数
武汉工程大学学报第31卷
end:
yr: =remnant (arrcl,arrc,arrt,w,xxr,k0,tstop,u,simpsize);
If yr<yg then
begin
If ((1-miu)*yh+miu*yr)<yl then
begin
for n:=1 to simpsize do
xxe[n] :=(l-miu)*xx[xh,n]+miu*xxr[n];
ye:=remnant (arrc l,arrc,arrt,w,xxe,k0,tstop,u,simpsize);
if ye<yr then
begin ys:=ye:xxs:=xxe;end
else
begin ys:=yr;xxs:=xxr;end;
end
else
begin
begin ys:=yr; xxs:=xxr;end
end :
end
else
begin
for n:=1 to simpsize do
xxs [n] := (1-1amda) *xx [xh,n]+1amda*xxr [n];
ys:=remnant(arrcl,arrc,arrt,w,xxs,k0,tstop,u,simpsize);
end :
If ys<yg then
begin
for n:=1 to simpsize do xx[xh,n]:=xxs[n];
y[xh]:=ys;
end
else
begin
for m:=0 to simpsize do
for n:=1 to simpsize do
xx[m,n]:= (xx [m,n]+ xx [xl,n])/2;
end;
until (abs(yhl-yl)/abs(yl)<eps) or (number2=1000);
for n:=1 to simpsize do xx0[n+alpha-1]:=xx[xl,n];
remnant (arrcl,arrc,arrt,w,xx0,k0,tstop,u,simpsize);
AIC: =count*ln (y1) +2*simpsize;
end:
2实例分析2.1线性血管外一室模型C=A*[exp(-Ke*t)-exp(-Ka*t)],拟合方程为:C:=3.988[exp(-0.456t)-
exp(-3.478t)],AIC=-54.150,W=1,AUC(梯)=6.756.表1数据及拟合
Table 1Data and fitting
t/h实验血药浓度/(μg·mL-1)拟合血药浓度/(μg·mL-1)0.21.6501.6510.42.3302.3310.62.5502.5380.82.5102.5221.02.4002.4051.52.0001.9912.51.2701.2754.00.6000.6445.00.3900.4082.2非线性一室静注模型dc/dt=-Vm*C/(Km+C),拟合方程为: dc/dt=-0.2299*C/(0.1404+C),AIC=-55.303,W=1,AUC(梯)=10.045.
表2数据及拟合
Table 2Data and fitting
t/h实验血药浓度/(μg·mL-1)拟合血药浓度/(μg·mL-1) 0.02.0002.0111.01.8001.7972.01.5901.5844.01.1801.1686.00.7600.7678.00.3900.39910.00.0400.11511.00.6000.0383结语实验介绍了改进单纯形法的基本原理,给出了用Delphi编的可视化计算程序,能求出隔室模型线性药动学和非线性药动学各给药途径的药动学参数,对药动学的理论教学和实验中的计算均具意义.