30072009 life
Let Over Lambdaを買っているヒトはミンスキー博士も買っているらしいとamazonに教えられてちょっと興味を持った。
もちろんlolも欲しいんだが、まだ買ってない。
プログラミング in OCamlは今日届いた。来週、夏休みなので読む。
30072009 life
Let Over Lambdaを買っているヒトはミンスキー博士も買っているらしいとamazonに教えられてちょっと興味を持った。
もちろんlolも欲しいんだが、まだ買ってない。
プログラミング in OCamlは今日届いた。来週、夏休みなので読む。
脳内のレセプターと薬物の結合のシミュレーション
odesolveで血中濃度が時間依存的に減少するとき(時間の関数になっているとき)どういう風に書けばいいのか悩んだが
Cp <- dose/mwt*(50*exp(-0.1*t) + 125*exp(-0.025*t))
とtそのまま使えることがわかったので解決
library(odesolve)
times=c(0,(1:120))
params = c(fb=0.2,mwt=250, Kp=8.0, kon=2,koff=0.2,Rt=1,Vt=1,Q=1,dose=0.2)
dydt <- function(t,y,p){
fb <- p['fb']
Kp <- p['Kp']
kon <- p['kon']
koff <- p['koff']
Rt <- p['Rt']
Vt <- p['Vt']
Q <- p['Q']
dose <- p['dose']
mwt <- p['mwt']
Cp <- dose/mwt*(50*exp(-0.1*t) + 125*exp(-0.025*t))
Ct <- (Q*(Cp-y[1]/Kp)-kon*fb*y[1]/Kp*Rt*(1-y[2])+koff*Rt*y[2])/Vt
PHAI <- kon*fb*y[1]/Kp*(1-y[2])-koff*y[2]
return(list(c(Ct,PHAI)))
}
y <- lsoda(c(Ct=0.0,PHAI=0.0),times,dydt,params)
y02 <- y
params = c(fb=0.2,mwt=250, Kp=8.0, kon=2,koff=0.2,Rt=1,Vt=1,Q=1,dose=1)
y <- lsoda(c(Ct=0.0,PHAI=0.0),times,dydt,params)
y1 <- y
params = c(fb=0.2,mwt=250, Kp=8.0, kon=2,koff=0.2,Rt=1,Vt=1,Q=1,dose=5)
y <- lsoda(c(Ct=0.0,PHAI=0.0),times,dydt,params)
y5 <- y
plot(y02[,1],y02[,3],ylim=c(0,1.0),xlab="time(min)",ylab="Phai",type="l",col="red")
par(new=T)
plot(y1[,1],y1[,3],ylim=c(0,1.0),xlab="",ylab="",axes=F,type="l",col="blue")
par(new=T)
plot(y5[,1],y5[,3],ylim=c(0,1.0),xlab="",ylab="",axes=F,type="l",col="green")

plot(y2[,2],y5[,3],ylim=c(0,1.0),xlab="Cb",ylab="Phai",type="l",col="red")

ヒステリシスがみられる
28072009 life
野菜の育つ過程をもとに美味しい野菜とは何かを考える。「健康に育った野菜は美味い」という前提に立ちすぎな気もするが。
根菜は成長輪が均等なもの(どこかで化成肥料が入ると急速に成長するため均等でなくなる)
ひげ根の出る位置も重要
ねぎはらっきょうのように根元がふくらんでいるもの
ゴーヤーは白っぽいもの(あまり緑にならないうちに収穫しよう)
葉物は葉っぱの出方が重要なので、茎のそろい方に注意
今度、菜園になんか植えた時に化成肥料の有無で比較してみよう
PBPKモデリング
library(odesolve)
params = c(Vh=44,Vr=8,Qh=58,Qr=45.6,Vsys=1000,Kph=1,Kpr=1,RB=1.5,fp=0.1,Fa=1,Vmax=1000,Km=0.1,GFR=6)
times=c(0,(1:240))
dydt <- function(t,y,p){
Vh <- p['Vh']
Vr <- p['Vr']
Qh <- p['Qh']
Qr <- p['Qr']
Vsys <- p['Vsys']
Kph <- p['Kph']
Kpr <- p['Kpr']
RB <- p['RB']
fp <- p['fp']
Fa <- p['Fa']
Vmax <- p['Vmax']
Km <- p['Km']
GFR <- p['GFR']
fb <- fp/RB
Cb <- (Qh*y[2]/Kph + Qr*y[3]/Kpr - Qh*y[1] - Qr*y[1])/Vsys
Ch <- (Qh*y[1] - (Vmax*fb*y[2]/Kph)/(Km+fb*y[2]/Kph) - Qh*y[2]/Kph)/Vh
Cr <- (Qr*y[1] - fb*GFR*y[1] - Qr*y[3]/Kpr)/Vr
Xu <- fb*GFR*y[1]
return(list(c(Cb,Ch,Cr,Xu)))
}
y <- lsoda(c(Cb=0.1,Ch=0.0,Cr=0.0,Xu=0.0),times,dydt,params)
par(mfrow=c(2,2))
plot(y[,1],y[,2],ylim=c(0,0.1),xlab="time(min)",ylab="Cb",type="l",col="red")
plot(y[,1],y[,3],ylim=c(0,0.01),xlab="time(min)",ylab="Ch",type="l",col="black")
plot(y[,1],y[,4],ylim=c(0,0.1),xlab="time(min)",ylab="Cr",type="l",col="green")
plot(y[,1],y[,5],ylim=c(0,0.8),xlab="time(min)",ylab="Xu",type="l",col="blue")

params = c(Vh=44,Vr=8,Qh=58,Qr=45.6,Vsys=1000,Kph=1,Kpr=1,RB=1.5,fp=0.1,Fa=1,Vmax=1000,Km=0.1,GFR=6,Dose=0.1,ka=0.1)
times=c(0,(1:240))
dydt <- function(t,y,p){
Vh <- p['Vh']
Vr <- p['Vr']
Qh <- p['Qh']
Qr <- p['Qr']
Vsys <- p['Vsys']
Kph <- p['Kph']
Kpr <- p['Kpr']
RB <- p['RB']
fp <- p['fp']
Fa <- p['Fa']
Vmax <- p['Vmax']
Km <- p['Km']
GFR <- p['GFR']
Dose <- p['Dose']
ka <- p['ka']
fb <- fp/RB
Cb <- (Qh*y[2]/Kph + Qr*y[3]/Kpr - Qh*y[1] - Qr*y[1])/Vsys
Ch <- (Qh*y[1] - (Vmax*fb*y[2]/Kph)/(Km+fb*y[2]/Kph) - Qh*y[2]/Kph + Dose*ka*Fa*exp(-ka*t))/Vh
Cr <- (Qr*y[1] - fb*GFR*y[1] - Qr*y[3]/Kpr)/Vr
Xu <- fb*GFR*y[1]
return(list(c(Cb,Ch,Cr,Xu)))
}
y <- lsoda(c(Cb=0.0,Ch=0.0,Cr=0.0,Xu=0.0),times,dydt,params)
par(mfrow=c(2,2))
plot(y[,1],y[,2],xlab="time(min)",ylab="Cb",type="l",col="red")
plot(y[,1],y[,3],xlab="time(min)",ylab="Ch",type="l",col="black")
plot(y[,1],y[,4],xlab="time(min)",ylab="Cr",type="l",col="green")
plot(y[,1],y[,5],xlab="time(min)",ylab="Xu",type="l",col="blue")

25072009 DMPK
薬物動態解析と統計の基礎から始まる概論的な読み物。
1-4の概略はまとまっていてわかりやすいんだけど、5,6の実例がいきなり難しくなるという。MCMCとかPPKがどういった場面で使われるかとかそういうことが知りたい場合には役立つが、実際どうやって使うかとかは他の本のほうがよいかな。
utf8の話が参考になった。
ついでにExtlibのUTF8のソースも読んで理解を深めた。
# #require "extlib";;
/opt/local/lib/ocaml/site-lib/extlib: added to search path
/opt/local/lib/ocaml/site-lib/extlib/extLib.cma: loaded
# open UTF8;;
# let moji2 = "\xc3\x86";;
val moji2 : string = "\195\134"
# print_string moji2;;
Æ- : unit = ()