Hatena::ブログ(Diary)

驚異のアニヲタ社会復帰への道

Prima Project

2010-11-12

薬理学実習その2

CardioLabというシミュレーションソフトを用いて、交感神経・副交感神経作用薬の効果を調べ、容量反応曲線およびSchild plotを描いた。

シミュレーションと聞いてwktkだったのに、いざやってみると

教員「じゃ、私の言うとおりに数値入力して」

 

教員「じゃ、グラフを印刷して、増加分をものさしで測りましょう」

 

!?!?

 

β受容体アンタゴニストのpropranololを加えて受容体を競合阻害して、β受容体アゴニストのisoproterenolを加えたときの濃度反応曲線を描く。

ここでみているものは血圧上昇値。

a<- 80/22  # 印刷されたものを測って手で変換するというなんというハイテク
#cont<- c(-2,  -1.5, -1,-0.5,0,0.5, 1,1.5,  2,2.5,   3)
 cont<-    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                 # Score meant mean blood pressure difference
pro10  <- c(1,1,1,6,17,26,31,33,33,33,33)*a                 # on printed paper.
pro30  <- c(0,0,0,4,15,24,30,32,32,32,32)*a                 # a converted score into real blood pressure difference. 
pro100 <- c(0,1,1,1,11,21,29,32,33,33,33)*a                 # Dose of propranolol was from 0 to 3000.
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)
M<- max(pro0,pro10,pro30,pro100,pro300,pro1000,pro3000)
plot(cont,pro0   ,log="x",type="l",col=2,ylim=c(0,M),ylab="",xlab="")
par(new=T)
plot(cont,pro10  ,log="x",type="l",col=3,ylim=c(0,M),ylab="",xlab="")
par(new=T)
plot(cont,pro30  ,log="x",type="l",col=4,ylim=c(0,M),ylab="",xlab="")
par(new=T)
plot(cont,pro100 ,log="x",type="l",col=5,ylim=c(0,M),ylab="",xlab="")
par(new=T)
plot(cont,pro300 ,log="x",type="l",col=6,ylim=c(0,M),ylab="",xlab="")
par(new=T)
plot(cont,pro1000,log="x",type="l",col=7,ylim=c(0,M),ylab="",xlab="")
par(new=T)
plot(cont,pro3000,log="x",type="l",col=8,ylim=c(0,M),
     ylab="Blood pressure [mmHg]",xlab="Isoproterenol concentration [nM/kg]")
legend(100,40,c(0,10,30,100,300,1000,3000),col=c(2:8),lty=1)
text(270,43,"propranolol")
title("Isoproterenol dose response curve")

f:id:MikuHatsune:20101112163409j:image

ここからSchild plotを描く。

プログラム組んだらできるんだろうけど、図の曲線を近似する関数を作成するものがわからなかったので、CardioLabからデータを拝借してSchild plotを作成する。

EC50<- c(0.8442,0.9240,1.116,1.968,4.064,11.79,30.89)                      # 反応が50%となるアゴニスト濃度
r<- EC50/EC50[1]                                                           # 容量比というものらしい
r<- r[-c(1)]
plot(pro.cont[c(2:length(pro.cont))],(r-1),log="xy",
     xlab="log([propranolol])",
     ylab="log(r-1)")
abline(h=0)
# 直線近似をします。
lm(log(pro.cont[c(2:length(pro.cont))],10)~log((r-1),10))
# 上の結果
Call:
lm(formula = log(pro.cont[c(2:length(pro.cont))], 10) ~ log((r -     1), 10))

Coefficients:
     (Intercept)  log((r - 1), 10)  
          1.9426            0.9584  

f:id:MikuHatsune:20101112164614j:image

傾きが0.9584、x切片1.9426の直線となった。

Schild plotは競合阻害アンタゴニストを想定しており、そうなると傾き1になるのでよっしゃぁぁぁぁぁぁ。

x切片はアンタゴニスト(propranolol)の解離定数の対数で、これからK_{B}は87.6。

配布資料ではK_{B}は83らしい。