色づけ則から変換へ
- こちらの続き
- 曖昧なので前提が間違っているかもしれないがとりあえずメモ
- 2塩基に対する色づけ
- 色づけ規則を一つ目の塩基から次の塩基へ変換する操作とみなす
- はじめの塩基がAだとすると
- なので
- であり、 となっている
- はじめの塩基がAだとすると
- 操作の全体が可換群となっている
- あるいは四元数は可換ではないが
- とし
- と考えることで通常の積として表せる
- 2面体群、クラインの4群
b<-function(x){ if(x == "A"){y <- "A"} if(x == "T"){y <- "T"} if(x == "C"){y <- "C"} if(x == "G"){y <- "G"} return(y) } r<-function(x){ if(x == "A"){y <- "T"} if(x == "T"){y <- "A"} if(x == "C"){y <- "G"} if(x == "G"){y <- "C"} return(y) } g<-function(x){ if(x == "A"){y <- "C"} if(x == "T"){y <- "G"} if(x == "C"){y <- "A"} if(x == "G"){y <- "T"} return(y) } y<-function(x){ if(x == "A"){y <- "G"} if(x == "T"){y <- "C"} if(x == "C"){y <- "T"} if(x == "G"){y <- "A"} return(y) } v<-c("A","T","C","G") B<-R<-G<-Y<-BB<-BR<-BG<-BY<-RB<-RR<-RG<-RY<-GB<-GR<-GG<-GY<-YB<-YR<-YG<-YY<-c() for(i in 1:4){ B[i]<-b(v[i]) R[i]<-r(v[i]) G[i]<-g(v[i]) Y[i]<-y(v[i]) BB[i]<-b(b(v[i])) BR[i]<-b(r(v[i])) BG[i]<-b(g(v[i])) BY[i]<-b(y(v[i])) RB[i]<-r(b(v[i])) RR[i]<-r(r(v[i])) RG[i]<-r(g(v[i])) RY[i]<-r(y(v[i])) GB[i]<-g(b(v[i])) GR[i]<-g(r(v[i])) GG[i]<-g(g(v[i])) GY[i]<-g(y(v[i])) YB[i]<-y(b(v[i])) YR[i]<-y(r(v[i])) YG[i]<-y(g(v[i])) YY[i]<-y(y(v[i])) } BB == B;BB == R;BB == G;BB == Y; BR == B;BR == R;BR == G;BR == Y; BG == B;BG == R;BG == G;BG == Y; BY == B;BY == R;BY == G;BY == Y; RB == B;RB == R;RB == G;RB == Y; RR == B;RR == R;RR == G;RR == Y; RG == B;RG == R;RG == G;RG == Y; RY == B;RY == R;RY == G;RY == Y; GB == B;GB == R;GB == G;GB == Y; GR == B;GR == R;GR == G;GR == Y; GG == B;GG == R;GG == G;GG == Y; GY == B;GY == R;GY == G;GY == Y; YB == B;YB == R;YB == G;YB == Y; YR == B;YR == R;YR == G;YR == Y; YG == B;YG == R;YG == G;YG == Y; YY == B;YY == R;YY == G;YY == Y;
#変換群のグラフ xlim<-ylim<-c(0,5.5) x<-c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4) y<-c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4) u<-c(0,0,0,0,1,2,3,4) v<-c(1,2,3,4,5,5,5,5) v1<-c(7,3,2,4,3,7,4,2,2,4,7,3,4,2,3,7) w<-c(7,3,2,4,4,2,3,7) w2<-c("y","g","r","b","b","r","g","y") plot(x,y,pch=16,col=v1,cex=9,xlim=xlim,ylim=ylim,main="",frame=FALSE,xaxt="n",yaxt="n",xlab="",ylab="") par(new=TRUE) plot(u,v,pch=w2,col=w,cex=5,xlim=xlim,ylim=ylim,main="",frame=FALSE,xaxt="n",yaxt="n",xlab="",ylab="1st")