Rでベータ分布

PRMLも再読してるが、手動かしながら読むほうがしっくりくる。 p.70のベータ分布の逐次学習ってのが面白そうなのでやってみた。

ProductName パターン認識と機械学習 上 - ベイズ理論による統計的予測
C. M. ビショップ
シュプリンガー・ジャパン株式会社 / ¥ 6,825 ()
在庫あり。

data <- rbinom(30,1,0.5)

plot_dbeta <- function(data){
a <- 0
b <- 0
x <- seq(0.01, 1.0, len = 500)
for (i in 1:length(data)) {
    if(data[i] == 1) { a = a + 1 } 
    else             { b = b + 1 }
    if(i>3){
    if(i==4){ plot(x, dbeta(x,a,b),type = "l",col=i,ylim=c(0,5)) }
    else    { plot(x, dbeta(x,a,b),type = "l",col=i,xlab="",ylab="",axes=F,ylim=c(0,5)) }
    par(new=T)
    }
}
}

二項分布で30個のリストを発生させて読みながらa,bのデータを更新していきつつその時のベータ分布の密度を求めつつプロットしていくという操作。

> data
 [1] 1 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0
[30] 1

データはこんな感じで、4番目のデータからプロットしていくとだんだん二項分布に近づいていく様がみてとれる。

beta

OCamlでlablgtk2

labltkではなくてlablgtk2を使ってみる

lablgtk2

let hello () =
  print_endline "Hello World";
  flush stdout

let delete_event ev =
  print_endline "Delete event occurred";
  flush stdout;
  true

let destroy () = GMain.Main.quit ()

let main () =
  let window = GWindow.window ~border_width:10 () in
  window#event#connect#delete ~callback:delete_event;
  window#connect#destroy ~callback:destroy;
  let button = GButton.button ~label:"Hello World" ~packing:window#add () in
  button#connect#clicked ~callback:hello;
  button#connect#clicked ~callback:window#destroy;
  window#show ();
  GMain.Main.main ()

let _ = main ()

ファーマコキネティクスの演習一通りやった

一通りやった。

ファーマコキネティクスを解いていく(Rで)

ProductName ファーマコキネティクス―演習による理解
杉山 雄一
南山堂 / 6300円 ( 2003-08 )


2章のデコンボリューションはExcel依存だったのでスキップ。6章の薬物間相互作用と9章のトランスポーターは、今は必要なさそうなのでこれまたスキップ。

感想としてはクリアランス、吸収の章は理解が深まって良かった。PBPKモデリングとアロメトリーも同様。一方、PK-PDに関してはちょっと物足りなかった。あと、エクセルのマクロ(VBA?)依存の解答が多少目立ったので、普通はExcel必須かも。

一通りやってみて分かったことは、chemoinformaticsな自分のスタンスだと、PBPKモデリングがLeadOptimizationには親和性が高いかなというあたりと、Population PharmacokineticsよりはPK-PDをきちんと押さえないといかんなぁと。

ちゅうわけで、RでPK-PDをやる場合にはどの本読むのがいいんじゃろかね?

ProductName Pharmacokinetic-Pharmacodynamic Modeling And Simulation
Peter L., Ph.D. Bonate
Springer / 7596円 ( 2005-11 )


ProductName Pharmacometrics: The Science of Quantitative Pharmacology

Wiley-Interscience / 17858円 ( 2007-04-06 )


ProductName Adaptive Design Methods in Clinical Trials (Chapman & Hall/CRC Biostatistics Series)
Shein-Chung Chow
Chapman and Hall/CRC / 8227円 ( 2006-11-16 )


PK8-4

Caco-2細胞のモデリング

ProductName ファーマコキネティクス―演習による理解
杉山 雄一,山下 伸二,加藤 基浩
南山堂 / ¥ 6,300 ()
通常2~5週間以内に発送

設問1

Vmax は結合サイト数、ATPターンオーバー、細胞総数からもとまる

> 100000*1e+6*25/6.02e+23*60
[1] 2.491694e-10

つまり2.491694(nmol/min)

library(odesolve)
params = c(Vmax=2.491694*10^-3,S=4.71,Pa=5e-6,Pb=3e-6,Km=0.3,Va=1.5,Vc=0.025,Vb=3.0)
times=c(0,(1:60))

dydt <- function(t,y,p){
Vmax <- p['Vmax']
S <- p['S']
Pa <- p['Pa']
Pb <- p['Pb']
Km <- p['Km']
Va <- p['Va']
Vc <- p['Vc']
Vb <- p['Vb']
Ca <- (S*Pa*(y[2]-y[1]) + Vmax*y[2]/(Km+y[2]))/Va
Cc <- (S*(Pa*(y[1]-y[2]) + Pb*(y[3]-y[2])) - Vmax*y[2]/(Km+y[2]))/Vc
Cb <- (S*Pb*(y[2]-y[3]))/Vb
return(list(c(Ca,Cc,Cb)))
}

濃度リストをあたえるとPeffのリストを返す関数を書いておく。

calc <- function(dose_list){
l <- c()
for (dose in dose_list){
    y <- lsoda(c(Ca=dose,Cc=0.0,Cb=0.0),times,dydt,params)  
    Y <- data.frame(y)
    res <- lm(Cb ~ time,Y[c("time","Cb")][seq(41,61),])
    Peff <- res$coefficients[2]*3/(4.71*dose)
    l <- append(l,Peff)
}
return(l)
}

d <- c(0.1,0.3,0.6,1,3,6,10,30,60,100,300,600,900,1000)
peffs <- calc(d)
plot(d,peffs)

pk8-4

Pgpが飽和した後(高濃度側)ではシグモイド。

設問2

省略

PK8-3

膜透過性の解釈

ProductName ファーマコキネティクス―演習による理解
杉山 雄一,山下 伸二,加藤 基浩
南山堂 / ¥ 6,300 ()
通常2~5週間以内に発送

> Mw = 350
> pKa = 9.5
> sigma = 1.0
> R = 8.62
> e_g = 1.22
> kai = 0.7
> Nav = 6.02 * 10^23
> kb = 1.38 * 10 ^ -16
> T = 273.15 + 37
> n = 0.006915
> r <- (3*Mw/(4*pi*Nav*sigma))^(1/3)
> r
[1] 5.17759e-08
> D <- kb*T/(6*pi*n*r)
> D
[1] 6.342054e-06

> r= 5.17759 # A
> F_r_R <- (1-(r/R))^2*(1-2.104*(r/R)+2.109*(r/R)^3-0.95*(r/R)^5)
> F_r_R
[1] 0.01897611
> r= 5.17759
> F_r_R <- (1-(r/R))^2*(1-2.104*(r/R)+2.109*(r/R)^3-0.95*(r/R)^5)
> F_r_R
[1] 0.0189761
> Ppara <- e_g*D*F_r_R*(kai/(1-exp(-kai)))
> Ppara
[1] 2.041593e-07
> 2.041593e-07/0.42e-6 * 100
[1] 48.60936 # %

PK8-2

経口投与量とAUCの関係

ProductName ファーマコキネティクス―演習による理解
杉山 雄一,山下 伸二,加藤 基浩
南山堂 / ¥ 6,300 ()
通常2~5週間以内に発送

設問1

> data <- read.csv("/Users/kzfm/PK/pk8-2.csv")
> data$dose*1000/(data$AUCp_oral*0.8)
[1]  833.3333 1059.3220 2155.1724

設問2

CLtot(iv)は

> 10*1000/(45*0.8)
[1] 277.7778

題意よりCLh = CLtot(iv) さらにEh*Qh = CLhだから

> Eh <- 277.7778/1500
> Eh
[1] 0.1851852

> Foral <- 277.7778/833.3333
> Foral
[1] 0.3333334

> Fa <- Foral/(1-Eh)
> Fa
[1] 0.409091

設問3

Faで考える

PK8-1

幾つかの消化管吸収性評価モデル

ProductName ファーマコキネティクス―演習による理解
杉山 雄一,山下 伸二,加藤 基浩
南山堂 / ¥ 6,300 ()
通常2~5週間以内に発送

設問1

logM-logM0 = -ka*tより ka = (logM0 - logM)/t = (log(100)-log(20*3.25))/15

> (log(100)-log(20*3.25))/15
[1] 0.02871886

Peff = ka*V/(2*pi*r*L)

ここで r = sqrt(0.1/pi)

> ka*1/(2*pi*0.178*12.5)/60
[1] 3.423782e-05 # cm/sec

設問2

単回灌流試験。水の吸収、分泌補正の項を 入れて、定常状態の幾つかの平均を取る。

設問3

plotしてみて直線になっているポイントを選択。

> time <- c(0,15,30,45,60)
> conc <- c(0,0.12,0.28,0.52,0.75)
> plot(time,conc)
> mylist = list(time=time[3:5],conc=conc[3:5])
> data <- data.frame(mylist)
> mylist = list(time=time[3:5],conc=conc[3:5]*2.6)
> data <- data.frame(mylist)
> res<-lm(conc ~ time,data)
> res

Call:
lm(formula = conc ~ time, data = data)

Coefficients:
(Intercept)         time  
   -0.48967      0.04073  

Peff = 0.04073/4.2/100 = 9.69762e-05

設問4

省略

今日の畑(草むしり)

草むしりメインで。

それにしてもうちの畑は、土地の利用効率も時間の利用の効率も悪くて、収穫のタイミングがまちまちで、継続的な収穫が出来なかったり、畝の間隔が空きすぎてて雑草が生えやすくなってたりと、ダメなとこだらけだ。隣の畑から色々学ぶことが多いなぁ。

秋撒きはレイアウトとかちゃんと考えてまく。

1249427660

わけぎと唯一定期的に収穫できるゴーヤ

1249427650 1249427654

アシタバとモロヘイヤ。アシタバはどのタイミングで摘み取ればいいのか分からないのでとりあえず放っておいたらでかくなってきた。

1249427665 1249427669

PK7-2

PK-PD

multirtが必要なのだけど、これをRでどうやるかわからんのでスキップ

ProductName ファーマコキネティクス―演習による理解
杉山 雄一,山下 伸二,加藤 基浩
南山堂 / ¥ 6,300 ()
通常2~5週間以内に発送

南伊豆旅行

先週末から夏の短期休暇で、南伊豆のあたりに、家族4人with犬一匹。犬連れだとコテージとかそんなんしかない感じで宿泊施設の選択肢は狭まるが、(色々と)気にしなければそれなりに楽しい。

1249381548

子浦海岸で海水浴。海の家すらないこじんまりした海水浴場だが、子供が小さいのでかえって楽。カヌーの教室のゴールにもなってるっぽい。楽しそう、カヌー。今度やる。

で、近場の定食屋さんの今津屋

あじのてこね寿司と磯炊きご飯。ここは美味しいですな。

1249381540 1249381551

泳いで、コテージに戻って、BBQしたり花火したりして就寝。ホピアというところを利用したんだけど、現地で調達できる食材(酒も含めて)はなにもないのと、BBQセットは別料金なので、コンロを持っていれば持参するという手もあった。宿泊者が少なかったというのもあるんだけど風呂はのんびりできてよかった(コテージのユニットは入る気おきんかった)。

二日目は下田〜河津を通って帰るコース。途中下田で昼食。

亀遊で金目のかき揚げ丼と金目の釜飯。

1249381555

味付けも濃すぎず薄すぎず好み。

1249381532 1249381543

帰りに撮った下田。下田の海は芋荒い場みたいだったな。

1249381536

南伊豆-西伊豆はのんびりできてよいですな。また行きたい。

かいとく丸ねらってるんだけどなぁ。