基于MATLAB的药代动力学实验数据处理及参数估计
李历民 朱珊珊 2008-03-17
【关键词】 药代动力学;,,实验数据处理;,,MATLAB;,,评价,,,,
摘 要: 介绍了MATLAB在药代动力学中实验数据处理的基本方法并对利用MATLAB进行双指数模型拟合与常用EXCEL软件进行双指数模型拟合以及参数求解的方便性、准确性作出了评价。
关键词: 药代动力学; 实验数据处理; MATLAB; 评价
药代动力学是临床药理学、药剂学、毒理学等科学的专业基础,对于新药设计、剂型改革、合理用药等方面都有直接指导意义。如何对实验数据进行正确的处理以及选择正确的处理方式是准确表达药物动力学过程的关键,以便对临床用药和药物设计等方面提供可靠的依据。目前大多数的药物的药代动力学过程基本符合二室模型,其原理是将人体分为两个房室即中央室和周边室,以中央室的消除为主不考虑周边室的消除,并假设药物的吸收交换和消除都是一级过程。
1 模型及参数
二室模型的药物动力学[1]方程为:C=Ae-αt+Be-βt其中C表示血药浓度,t表示时间,A、B、α、β表示各项常系数。二室模型的其它参数计算公式分别为:① 药物的分布相半衰期:t1 2α=0.693 α② 药物的消除半衰期:t1 2β=0.693 β③ 药物从周边室向中央室的分布速率常数: k21=Aβ+Bα A+B④ 药物中央室消除速率常数: k10=αβ k21⑤ 药物的中央室向周边室的分布速率常数: k12=α+β-k10-k21⑥ 药物的中央室分布容积: V1=D0 A+B⑦ 药物的消除率: CL=V1k10以上是药代动力学过程中的各个参数的计算公式,求得模型中的各项常系数即可取得各个参数值。
2 MATLAB处理数据[2]
以磺胺噻唑(D0=250mg/kg)二室模型动力学参数测定为例,利用MATLAB对实验数据浓度时间作非线性曲线拟合。实验测得的数据为: 时间(min) 2 5 10 20 30 60 90 120 150 180 210浓度(mg/L) 766 659 470 300 239 180 160 145 132 123 112MATLAB中引入了两个命令来进行曲线的拟合定义非线性方程的命令(inline)和拟合曲线方程命令(nlinfit),其进行曲线拟合的程序为:% 输入数据 t=[2 5 10 20 30 60 90 120 150 180 210]; c=[766 659 470 300 239 180 160 145 132 123 112];% x0为给A,alpha, B, beta初值 x0=[0 0 0 0];% 定义模型函数f=inline(’x(1)*exp(-x(2)*t)+x(3)*exp(-x(4)*t)’,’x’,’t’);% 进行非线性曲线拟合 [b,r,j]=nlinfit(t,c,f,x0);b=b’;% 得到各个系数值 A=b(1),alpha=b(2),B=b(3),beta=b(4)通过该程序得到了各个系数的值为:A=683.1323 α=0.0908B=208.0097 β=0.0030将各系数带入方程就直接得到了磺胺噻唑药代动力学模型方程为:C=683.1323e-0.0908t+208.0068e-0.003t将其模型函数与实验点利用MATLAB作图,见图1,其调用的命令为plot与ezplot。从图形看,拟合曲线和实际数据点吻合很好,此外引入一个可决系数[3]R2值作进一步说明,R2一般大于0.99说明效果较好,越接近于1就越好。其计算公式为:R2=1-∑n i=1(Ci-i)/∑n i=1(Ci-)通过MATLAB按照此计算公式得出可决系数R2为099877,拟合效果较好。
图1 磺胺噻唑药代动力学略
3 MATLAB与EXCEL处理比较
在用EXCEL处理二室模型的数据时,常把模型分为分布相和消除相,采用分段拟合来进行,由于指数可以转化为对数而成直线,以此分两段直线进行拟合而得各个系数以及各个参数值,具体处理过程略。由于其不是把整个模型连续起来且前后选点的个数均受到实验、自身条件等因素不能正确选择,处理时可能带来误差、计算的麻烦及处理的不准确性,另外EXCEL对整个拟合不能做出很好的评价。用EXCEL处理得到的磺胺噻唑药代动力学模型方程为:C=593.3711e-0.077752t+206.7486e-0.00291t利用EXCEL拟合曲线与实验点的可决系数R2为0.9886<0.99877,说明拟合效果不是很好,较MATLAB差,不能更好的表达磺胺噻唑的药代动力学过程,因此EXCEL处理的其他参数也不能更准确的计算。将利用MATLAB和EXCEL处理的参数分别带入前面的参数计算公式得到各个参数的值列于下表:参数 t1 2α t1 2β k21 k10 k12 V1 CLMATLAB 7.6332 231.00 0.0235 0.0116 0.0587 0.2805 3.5EXCEL 8.9130 238.14 0.0222 0.0102 0.0483 0.3125 3.2由表中数据可知,MATLAB得出的参数与EXCEL得出的参数有一定的出入,这与曲线拟合的好坏是有关系的,拟合的越准确,参数的意义就大,提供信息就越好。以上说明了EXCEL进行非线性拟合只能在将数据转化为直线的时候进行,不能直接表达或不能表达非线性的连续性。在实际应用中很多两两之间的关系往往都是非线性的,常用的EXCEL不能直接转化为线性而进行拟合,基于此问题,建议利用MATLAB软件进行非线性曲线拟合。下面利用饮酒[4]的血药浓度的数据再次讨论MATLAB进行非线性曲线的拟合,虽然酒清浓度的变化也呈双指数模型,但饮酒的过程是吸收、分布、消除同时进行,拟合时不宜用EXCEL进行处理,这样造成的误差会更大。饮酒的酒精血药浓度(mg/100ml)时间(h)数据如下表:t 0.25 0.5 0.75 1 1.5 2 2.5 3C 30 68 75 82 77 68 68t 3.5 4 4.5 5 6 7 8 9C 58 51 50 41 38 35 28 25t 10 11 12 13 14 15 16 10C 18 15 12 10 7 7 4 18利用前面所介绍的MATLAB进行曲线拟合的方法,进行拟合得到的实际点和曲线图为:
图2 略
饮酒动力学模型其拟合的模型方程为:C=108.717e-0.177t+152.1453e-2.9311t可决系数R2为09932,效果较好。此外,MATLAB还介绍了更多的非线性拟合方法如命令(curvefit)、(lsqcurvefit)、(lsqnonlin)等。
4 结论
本研究对利用MATLAB处理数据和EXCEL处理数据进行了比较,MATLAB处理简单、方便、准确,并能进行非线性曲线的拟合,用于药代动力学模型中能够很好的为临床用药和药物设计提供有效措施,此外还可以用于其它很多方面的数据处理,读者可参考有关书籍。
参 考 文 献
1 周红,陈晓红. 药理学实验教程成都:四川大学出版社,2003,22~30
2 薛毅数值分析与实验北京:北京工业大学出版社,2005,144~150
3 毛宗秀高等数学第3版北京:人民卫生出版社,1999,325~329
4 李大潜工程数学学报工程数学学报编辑委员会,2004,21(7):8~9