- 周期性データのことを扱っていて(こちらなど)、複数の周期がリンクしている状態をフラクタル的に取り扱ってみたところ。(こちら)
- また、複数要素が作るサイクルを作っているときに、個々の要素が周期的な変動をすることを考えていると、「複数要素が作る空間」での状態推移は、「連続空間」での状態推移と同じと言えば同じ、違うと言えば違うけれど、拡散やら反応拡散系やら(こちらやこちら)とつながってくるのですが。
- そうこうしているうちに、周期をつくる何者かがあって、それが複数の周期(グラフでサイクル)でできていて、周期が連結している様子は、「歯車(Gear)」としての特性を持っている、ということとなり、そこからたどると、生物物理学や数理生物学の記事(こちらやこちら)にたどり着くので、それじゃあ、その分野の論文をぱらぱらしてみるのが、休暇の過ごし方としては適当ではないか、と、そういう流れなわけです(はてなダイアリー上はすでに2011年だが、ぱらぱらめくっている今は2010年末)。
- Biophysics ReviewとBulletin of Mathematical Biologyとのどちらもオンラインで閲覧できるので図書館まで行かなくてもぱらぱらめくれるのがよい
- ネットワーク
- boolean networkの回路風図,state transition function,0/1 state 表示 petri net
- Multi-dimensional correlative imaging: 解像度の異なる多種の顕微鏡技術と観察する構造の多層化と。
- 癌と免疫サーベイランス
- One-equation model: Tumor growth
- Two-equation model: Tumor and immune system interactions
- Three-equation model: Tumor and immune system and one more interact
- Four-equation model:
- Five and more-equation model:
- パターン形成の反応拡散系 Gierer-Meinhardt model(こちら)と遺伝子発現のタイムラグ
- SELEX(Systematic Evolution of Ligands by Exponential Enrichment)(こちら)
- 細胞による埋め尽くしとボロノイ分割(Voronoi tessellation/Voronoi diagram)におけるOrnstein-Uhlenbeck process
- CLLの細胞増殖に偏微分方程式
- 以下のソースは、ただのメモ
library(bnlearn)
library(MCMCpack)
glmPolynomial<-function(y,x,dg){
Xs<-matrix(0,length(x),dg)
for(i in 1:dg){
Xs[,i]<-x^i
}
fit<-glm(y~Xs[,1:dg])
beta<-fit$coefficients
Xs2<-cbind(rep(1,length(x)),Xs)
predY<-t(t(Xs2)*beta)
sumupPredY<-apply(predY,1,sum)
list(beta=beta,x=x,predY=sumupPredY)
}
sphereCoords<-function(v){
C<-cos(v)
S<-sin(v)
ret<-c(1,S)
for(i in 1:length(v)){
for(j in i:length(v)){
ret[i]<-ret[i]*C[j]
}
}
return(ret)
}
TransitionMat<-function(e.val.theta,e.vec.theta,e.vec.psi){
k<-length(e.val.theta)
S<-diag(complex(real=cos(e.val.theta),imaginary=sin(e.val.theta)))
V<-matrix(0,k,k)
Co<-cos(e.vec.theta)
Si<-sin(e.vec.theta)
Comp<-matrix(complex(real=Co,imaginary=Si),k,k)
V<-Comp
for(i in 1:k){
A<-sphereCoords(e.vec.psi[i,])
V[i,]<-A*Comp[i,]
}
return(V%*%S%*%solve(V))
}
Ns<-3
Ne<-4
m<-matrix(0,Ne,Ne)
Nnode<-((Ne-1)^Ns-1)/(Ne-2)
MM<-diag(rep(1,Nnode))
NodeName<-paste("",1:Nnode)
h<-1
a<-1
for(i in 2:Nnode){
MM[h,i]<-2
MM[i,h]<-3
a<-a+1
if(a==Ne){
h<-h+1
a<-1
}
}
E<-c()
for(i in 1:Nnode){
for(j in 1:Nnode){
if(MM[i,j]==2){
E<-c(E,NodeName[i],NodeName[j])
}
}
}
E<-matrix(E,byrow=TRUE,ncol=2)
g<-empty.graph(NodeName)
arcs(g)<-E
plot(g)
g$nodes
length(g$nodes)
for(i in 1:length(g$nodes)){
print(g$nodes[[i]]$children)
}
k<-Ne
m<-t(rdirichlet(Ne,rep(1,Ne)))
m<-matrix(0,Ne,Ne)
m[1,Ne]<-1
for(i in 2:Ne){
m[i,i-1]<-1
}
mList<-list()
for(i in 1:(Nnode-(Ne-1)^(Ns-1))){
e.val.theta<-runif(k)*2*pi
e.vec.theta<-matrix(runif(k^2)*2*pi,k,k)
e.vec.psi<-matrix(runif(k*(k-1))*2*pi,k,k-1)
e.vector.norm<-matrix(runif(k*(k-1))*2*pi,k,k-1)
mList[[i]]<-TransitionMat(e.val.theta,e.vec.theta,e.vec.psi)
}
Niter<-100
dseries<-matrix(0,Niter,Nnode)
for(i in 1:Nnode){
g$nodes[[i]]$freq<-runif(1)
}
for(t in 1:Niter){
for(i in 1:(Nnode-(Ne-1)^(Ns-1))){
members<-c(i,which(MM[i,]==2))
fs<-c()
for(j in members){
fs<-c(fs,g$nodes[[j]]$freq)
}
tmpfs<-mList[[i]]%*%matrix(fs,ncol=1)
tmpc<-1
for(j in members){
g$nodes[[j]]$freq<-tmpfs[tmpc]
tmpc<-tmpc+1
}
}
for(i in 1:length(g$nodes)){
dseries[t,i]<-g$nodes[[i]]$freq
}
}
matplot(dseries[1:10,],type="l")
matplot(dseries,type="l")