コドン表

# 塩基を数字で表す
base<-1:4
# 塩基名を文字で表す
base.name<-c("T","C","A","G")
# アミノ酸を数字で表す
# stop codonを21番とする
aa<-1:21
# アミノ酸を文字で表す
# stop codonは"X"とする
aa.name<-c("F","L","S","Y","C","W","P","H","Q","R","I","M","T","N","K","V","A","D","E","G","X")

# コドン表をarrayで作る
# コドン表は塩基の長さのk=3乗
k<-3
codon.table<-array(0,rep(length(base),k))
# 文字を代入する
# "http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:GeneticCode21-version-2.svg"
codon.table[1,1,1:2]<-"F"
codon.table[1,1,3:4]<-"L"

codon.table[1,2,]<-"S"

codon.table[1,3,1:2]<-"Y"
codon.table[1,3,3:4]<-"X"

codon.table[1,4,1:2]<-"C"
codon.table[1,4,3]<-"X"
codon.table[1,4,4]<-"W"

codon.table[2,1,]<-"L"
codon.table[2,2,]<-"P"
codon.table[2,3,1:2]<-"H"
codon.table[2,3,3:4]<-"Q"
codon.table[2,4,]<-"R"

codon.table[3,1,1:3]<-"I"
codon.table[3,1,4]<-"M"
codon.table[3,2,]<-"T"
codon.table[3,3,1:2]<-"N"
codon.table[3,3,3:4]<-"K"
codon.table[3,4,1:2]<-"S"
codon.table[3,4,3:4]<-"R"

codon.table[4,1,]<-"V"
codon.table[4,2,]<-"A"
codon.table[4,3,1:2]<-"D"
codon.table[4,3,3:4]<-"E"
codon.table[4,4,]<-"G"

# 文字が入ったアレイであるコドン表codon.tableから
# 数字が入ったアレイであるコドン表codon.table.idを作る
codon.table.id<-codon.table
# arrayの要素を順番に評価して、アミノ酸の番号を入れる
for(i in 1:length(codon.table.id)){
	codon.table.id[i]<-which(aa.name==codon.table[i])
}
# 表示する
codon.table.id
codon.table
> codon.table.id
, , 1

     [,1] [,2] [,3] [,4]
[1,] "1"  "3"  "4"  "5" 
[2,] "2"  "7"  "8"  "10"
[3,] "11" "13" "14" "3" 
[4,] "16" "17" "18" "20"

, , 2

     [,1] [,2] [,3] [,4]
[1,] "1"  "3"  "4"  "5" 
[2,] "2"  "7"  "8"  "10"
[3,] "11" "13" "14" "3" 
[4,] "16" "17" "18" "20"

, , 3

     [,1] [,2] [,3] [,4]
[1,] "2"  "3"  "21" "21"
[2,] "2"  "7"  "9"  "10"
[3,] "11" "13" "15" "10"
[4,] "16" "17" "19" "20"

, , 4

     [,1] [,2] [,3] [,4]
[1,] "2"  "3"  "21" "6" 
[2,] "2"  "7"  "9"  "10"
[3,] "12" "13" "15" "10"
[4,] "16" "17" "19" "20"
> codon.table
, , 1

     [,1] [,2] [,3] [,4]
[1,] "F"  "S"  "Y"  "C" 
[2,] "L"  "P"  "H"  "R" 
[3,] "I"  "T"  "N"  "S" 
[4,] "V"  "A"  "D"  "G" 

, , 2

     [,1] [,2] [,3] [,4]
[1,] "F"  "S"  "Y"  "C" 
[2,] "L"  "P"  "H"  "R" 
[3,] "I"  "T"  "N"  "S" 
[4,] "V"  "A"  "D"  "G" 

, , 3

     [,1] [,2] [,3] [,4]
[1,] "L"  "S"  "X"  "X" 
[2,] "L"  "P"  "Q"  "R" 
[3,] "I"  "T"  "K"  "R" 
[4,] "V"  "A"  "E"  "G" 

, , 4

     [,1] [,2] [,3] [,4]
[1,] "L"  "S"  "X"  "W" 
[2,] "L"  "P"  "Q"  "R" 
[3,] "M"  "T"  "K"  "R" 
[4,] "V"  "A"  "E"  "G"