元に戻しにくいのはなぜ

『生体高分子の変性(英語:Denaturation)とは、ポリマーの二次構造が破壊されることを言い、変性した核酸やタンパク質などの生体高分子は高次構造を失い変化することである。』
『タンパク質は水素結合、疎水結合、イオン結合などにより高次構造(二次〜四次構造)を保っているが、これらが破壊され特徴的な折りたたみ構造を失うと変性する。』
『タンパク質の変性は不可逆と考えられていたが、多くのタンパク質では変性剤を徐々に取り除くなどの方法で正しい構造を取り戻すこと(再生)が可能』
『タンパク質の変性は食品の加工にもよく用いられる。例えば肉や卵の加熱調理、豆腐やヨーグルトの凝固、ゼラチンの製造(コラーゲンを熱変性させて作る)などである。』
『変性は熱力学的に相転移の性質を示すことがある。特に核酸の熱による変性は、一定の温度(配列によって異なる)で急激に起きるため融解とも呼ばれ、逆に融解した核酸の温度を徐々に下げて復元させることを再生または再結合あるいはアニーリング(英語:annealing 金属加工の焼きなましの意)もしくは再アニーリングと呼ぶ。』
  • タンパク質は、アミノ酸の1次元配列から出来上がる高次構造をとる
  • アミノ酸の1次構造は、ペプチドボンドで決まっている
  • その他の高次構造は、共有結合(S-Sなど)、疏水結合、水素結合、イオン結合などに支えられる
  • これらの結合をアミノ酸のペアの間に結合で表すとする
  • アミノ酸がノード、結合がエッジのグラフにできる
  • 出来上がった、グラフがほどけやすい場合(髪の毛の寝癖)と、ぼどけにくい場合(ほぼ不可逆な変性)との違いは、出来上がったグラフの複雑さによるから、何かしら、そんな扱いでできるように思える
  • 「湯引き」にみられるタンパク変性は、複数のタンパク分子の間にも架橋とかができているのでそれやこれやを考慮する必要があるとして、ひとまず、簡単に、1タンパク質の場合を図示してみることにする
  • Rでやってみる
  • igraphパッケージを使う
  • グラフの作りは、行列表現を使う(隣接行列)
    • グラフの行列表現とはノード数xノード数の行列を作り、行列の要素に、行と列のノードの間のエッジの情報を持たせたもの。0か1なら、エッジのなしありを。量的にすれば、エッジの長さや重さを。
  • 長さLのアミノ酸配列は
library(igraph)
L<-10
graphMat<-matrix(0,L,L)

g1<-graph.adjacency( graphMat )
plot(g1)
#3次元にする
#そのために、レイアウトの情報を作る
coords <- layout.fruchterman.reingold(g1, dim=3)
rglplot(g1, layout=coords)
  • 高次構造のために隣接しないアミノ酸の間にもエッジを入れる
L<-20
graphMat<-matrix(0,L,L)
for(i in 1:L){
	if(i>1){
		graphMat[i,i-1]<-1
	}
	if (i<L){
		graphMat[i,i+1]<-1
	}
}

g1<-graph.adjacency( graphMat )
plot(g1, layout=layout.kamada.kawai)
#3次元にする
#そのために、レイアウトの情報を作る
coords <- layout.fruchterman.reingold(g1, dim=3)
open3d()
rglplot(g1, layout=coords)

addEdge<-matrix(sample(c(0,1),L*L,prob=c(0.99,0.01),replace=TRUE),L,L)
diag(addEdge)<-0

graphMat+addEdge

newGraphMat<-sign(graphMat+addEdge)
newGraphMat

g2<-graph.adjacency( newGraphMat )
plot(g2, layout=layout.kamada.kawai)
#3次元にする
#そのために、レイアウトの情報を作る
coords <- layout.fruchterman.reingold(g2, dim=3)
open3d()
rglplot(g2, layout=coords)

M <- par3d("userMatrix") 
movie3d( par3dinterp( userMatrix=list(M,rotate3d(M, pi/2, 1, 0, 0),rotate3d(M, pi/2, 0, 1, 0) )), duration=5 ,movie="protein",dir=".")