用量反応曲線 Dose Response Curve

MikuHatsune2011-10-05

用量反応曲線Hill's curve?)を描くことになった。
だがしかし、グーグル先生に聞くと、いろいろ引っかかる(これとかこれ)けれども、用量反応曲線を描いた人はなかなか引っかからない。
というわけでやってみる。
 
実は昔やろうとして挫折していた。ここでリベンジを果たす。

a<- 80/22  
conc    <- c(0.01,0.03,0.1, 0.3,1,  3,10, 30,100,300,1000)  # Dose of isoproterenol
pro0   <- c(1,1,1,7,18,22,31,33,33,34,33)*a 
pro10  <- c(1,1,1,6,17,26,31,33,33,33,33)*a        
pro30  <- c(0,0,0,4,15,24,30,32,32,32,32)*a                 
pro100 <- c(0,1,1,1,11,21,29,32,33,33,33)*a                 
pro300 <- c(1,1,1,1,4,15,25,30,32,33,33)*a
pro1000<- c(1,1,1,1,1,5,16,26,31,32,33)*a
pro3000<- c(1,1,1,1,1,1,7,18,27,31,32)*a
pro.cont<- c(0,10,30,100,300,1000,3000)
EC50<- c(0.8442,0.9240,1.116,1.968,4.064,11.79,30.89)  

library(drc)
data<- rbind(pro0,pro10,pro30,pro100,pro300,pro1000,pro3000)
ldata<- matrix(0,nrow(data),4)
for(p in 1:nrow(data)){
	res<- drm(data[p,]~conc,fct = LL.4())
	ldata[p,]<- res$start
	plot(res,col=p,ylim=c(0,130),type="none") # typeを指定しなければ観測データもプロットする。
	if(p!=nrow(data)){
		par(new=TRUE)
	}
}

fct<- LL.4()

という関数を使って、4つのパラメータをおいた推定ができる。
f(x)=c+\frac{d-c}{1+exp(b(\log x - \log e))}
という関数が出来上がる。らしい。
今回は
E_{min}:最小の反応量
E_{max}:最大の反応量
EC50:最大と最小の反応量の50%の反応を起こす濃度
n:ヒル係数、とかいうもの
を仮定して
E(x)=E_{min}+\frac{E_{max}-E_{min}}{1+10^{(EC50 - x)n}}
という関数を設定しているので、都合がよさそう。
ldataにはこれらの推定量を記録しておいた。どれがどれに当てはまるかについては調べていない。