産婦人科フクロウ blog 〜PhDからプロの研究者を目指して〜人のまねをせずに、その身に応じ、武器は自分の使いやすいものでなければならぬ

基礎の発生学、細胞物理学について勉強したことを載せていきます。古武道鍛錬中。GitHub;hidem1990

神経筋接合シュミレーション−2

こちらの手直しをしようと思っている。

 

今回のポイントは

1、行列を使う

2、神経と筋に数を一緒にしない

3、tabulate()を使う

 

*tabulate();数を数え上げる

       ー数は一以上から整数値でカウント(ただし、小数点ありの場合は切り捨て)

example(tabulate)

 

tabult> tabulate(c(2,3,5))

[1] 0 1 1 0 1

 

tabult> tabulate(c(2,3,3,5), nbins = 10)

 [1] 0 1 2 0 1 0 0 0 0 0

 

tabult> tabulate(c(-2,0,2,3,3,5))  # -2 and 0 are ignored

[1] 0 1 2 0 1

 

tabult> tabulate(c(-2,0,2,3,3,5), nbins = 3)

[1] 0 1 2

 

tabult> tabulate(factor(letters[1:10]))

 [1] 1 1 1 1 1 1 1 1 1 1

> letters[1:10]

 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"

> factor(letters[1:10])

 [1] a b c d e f g h i j

Levels: a b c d e f g h i j

> tabulate(letters[1:10])

 以下にエラー tabulate(letters[1:10]) : 

   'bin' は数値または因子でなければなりません 

> tabulate(c(1.5,2,3))

[1] 1 1 1

> tabulate(c(3/2,1/3,3.8))

[1] 1 0 1

> tabulate(c(2/3,1/3,3.8,3.8,10))

 [1] 0 0 2 0 0 0 0 0 0 1

> tabulate(c(3,3.8,3.8,5.2,6))

[1] 0 0 3 0 1 1

 

やってみた。

# 筋肉細胞の数をN、神経細胞の数をnとする(N>nが現実っぽい)

# 時間経過が縦にくるように、筋肉細胞は列に並べる

# 1回の単位時間が経つと全ての神経が違う筋肉支配をしようと試みる

# 新たな支配が上手くいくかは、その時における神経の支配筋肉数に比例するとする

#基本仮定は前回の僕の想定と同じにする

 

N<- 1000

n<-100

time<-1000

 

kinnniku<-matrix(0 , time , N)

sinnkei<-matrix(0 , time , n)

p<- sample(1:n , N, replace = T)

p

kinnniku[1, ] <-p

sinnkei[1, ]<- tabulate(kinnniku[1, ])

 

for( j in 1: (time - 1) ){

p1<- sample(1:n, N, replace = T)

    p <- sinnkei[ j , ]

       for( i in 1 : N ){

      a<-kinnniku[ j, i ]

      b<-p1[ i ]

          num.a <-  p[ a ] 

      num.b <-  p[ b ] 

      prob.i <- c( num.a , num.b )/(num.a + num.b )

      new.i <- sample(c( a ,b ), (num.a + num.b ) , prob = prob.i , replace=T)

      kinnniku[ j+1, i ]<- new.i [1] 

}

sinnkei[ j+1, ] <-tabulate( kinnniku[j+1, ] , nbins=n)

 

}

 

 plot(sort(sinnkei[ time, ]))

 

f:id:hide_m_1990:20130401000843j:plainんー、どうしてこんなに先生のと結果が変わるのだろう…??

塊が所々出来ている…これがクラスターか??

 

これからこちらで自主学習しよう!