オレも使ってみよう。
薬物動態学の続き。
薬を投与するのにはいくつか経路がある。
経口投与では、腸管で吸収されるときに初回通過効果を受けて、投与した内のいくらか損失する。
静脈注射では、血管内に薬物を打ち込むので、初回通過効果は受けない。投与した量すべてが体内に入る。
ある薬を経口および静脈注射で投与して、体内濃度をモニターしたら
xtime<- c(0,0.5,1,2,3,4,6,8,12,16,24) yiv<- c(8,7,6,5,4,3,2,1,0.5,0.2,0.03) ypo<- c(0,0.5,1,1.5,2,1.4,1,0.5,0.25,0.1,0.02)
となったとしよう。
ここで、時間-濃度でプロットしたとき、積分量が、生体が暴露された薬物量になる。
これをArea Under Curve(AUC)という。
AUC<- function(xvec,yvec){ # 台形の面積を計算する。 int<- 0 for(i in 1:(length(yvec)-1)){ int<- int + (yvec[i]+yvec[i+1])*(xvec[i+1]-xvec[i])/2 } return(int) } AUC(xtime,yiv) AUC(xtime,ypo)
ここで、経口投与と静脈注射投与のAUC比
AUC(xtime,ypo)/AUC(xtime,yiv)
は、生体が薬物をどれだけ体内に取り込んで利用できるか、という指標になる。これをBioavailabilityという。
layout関数を使ってみよう。
M<- matrix(c(1,1,1,1,3,2,2,2,2,4, 1,1,1,3,1,2,2,2,4,2, 1,1,1,1,1,2,2,2,2,2, 1,1,1,1,1,2,2,2,2,2, 1,1,1,1,1,2,2,2,2,2),nr=5,byrow=T) layout(M) # 1の領域 plot(xtime,yiv,type="n",xlab="",ylab="",xaxt="n") polygon(c(xtime,rev(xtime)),c(rep(0,length(xtime)),rev(yiv)),col=5,density=c(20,20)) par(new=T) plot(xtime,yiv,type="o",xlab="time",ylab="iv concentration",main="iv",xaxt="n",lwd=2) axis(1,xtime) # 2の領域 plot(xtime,ypo,type="n",xlab="",ylab="",ylim=c(0,max(yiv,ypo)),xaxt="n") polygon(c(xtime,rev(xtime)),c(rep(0,length(xtime)),rev(ypo)),col=2,density=c(20,20)) par(new=T) plot(xtime,ypo,type="o",xaxt="n",xlab="time",ylab="po concentration",main="po",lwd=2,ylim=c(0,max(yiv,ypo))) axis(1,xtime) # 3と4の領域 # ちなみに両方3にしてしまうと、びよ〜んと伸びた図が描かれてしまう。 for(i in 1:2){ plot(xtime,ypo,type="n",xlab="",ylab="", xlim=c(0,max(xtime)),ylim=c(0,max(ypo,yiv))) polygon(c(xtime,rev(xtime)),c(rep(0,length(xtime)),rev(yiv)),col=5,density=c(20,20)) polygon(c(xtime,rev(xtime)),c(rep(0,length(xtime)),rev(ypo)),col=2,density=c(30,30)) par(new=T) plot(xtime,ypo,type="o",xlab="",ylab="",lwd=2, xlim=c(0,max(xtime)),ylim=c(0,max(ypo,yiv))) par(new=T) plot(xtime,yiv,type="o",xlab="time",ylab="",lwd=2, xlim=c(0,max(xtime)),ylim=c(0,max(ypo,yiv))) }
病院では、ある薬物濃度をモニターするらしい。
それでこんな感じ。
xrenal<- c(0,1,2,4,8,12) yimmune<- c(9.1,15.4,36,26.1,14.4,11) plot(xrenal,yimmune,type="o",ylim=c(0,max(yimmune)),xaxt="n",lwd=2, xlab="time",ylab="drug concentration",main="Immune suppressant TDM") polygon(c(xrenal,rev(xrenal)),c(rep(0,length(xrenal)),rev(yimmune)),density=c(20,20)) axis(1,xrenal)