反応モデル

  • 多分子の結合解離のモデルのつづき
  • ソースは "時間dt ごとに 1回衝突する" というルールを表すように書いた
  • なので " 時間 k * dt ごとに k 回 衝突する" というルールも基本的には同じになるはず
    • ただし
M<-min(floor(Nfree/2),Mmax)  #衝突の回数

という部分では k に比例しない関係が導かれるので、この処理が行われる場合kについての線型性が失われるはず

N<-50  #分子数
tau<-1  #結合時間の半減期
T<-1000  #シミュレーション時間
X<-rep(0,N)   #各分子が結合している時刻をおさめていく

k<-4
dt<-0.1*k  #シミュレーションの刻み幅
Mmax<-1*k  #dtにおこる衝突の回数

Nt<-T/dt  #シミュレーション回数

t<-0
v<-c()   #結合している分子の数をおさめる
for(nt in 1:Nt){
Nfree<-sum(X<=t)  #遊離している分子の回数
M<-min(floor(Nfree/2),Mmax)  #衝突の回数
	if(M !=0){
	for(m in 1:M){
	select<-sample(which(X<=t),2,replace=FALSE)   #2分子選ぶ
	duration<-rexp(1,rate=1/tau)
	#duration<-runif(1)
	X[select]<-duration+t
	}}
	
t<-t+dt
v[nt]<-sum(X>t)
}

par(mfrow=c(1,2))
plot(v,type="l",xlab="time",ylab="combined",col=4,ylim=c(0,N))
hist(v,breaks=N,col=3,xlab="Number of binding molecles",xlim=c(0,N))