double_helix_spi.jpg


二重らせんの渦巻き

 「二重らせん」で作成したDNAの二重らせんで渦巻きを作って見ようと思います。

円周状の二重らせん

 そう言えば、「円周状の二重らせん」では、二重らせんを円周状に丸く繋げました(下図)。

double_helix_cir.jpg

 この時、二重らせんを形成する塩基と塩基の間の距離は一定です。それを円周状に並べるにはどうすれば良いでしょうか?
 円周上の点の座標は以下の式で計算できます。

  x=cx+R×cos (θ)
  y=cy+R×sin (θ)
    …… 中心座標(cx,cy)、半径R、0°≦θ<360°

 θを0から一定の角度で増加させると、隣り合う点(x,y)間の距離は一定となります。
 円周の長さは2πRなので、塩基間距離をLとすると、Δθ=2πR/L×360°毎に増加しながら描画すると良いことになります。

渦巻きにするにはどうするか?

 前節の方法で渦巻きを描画すると以下の様になります。

spiral_1.png

 同じ角度で回転しながら、円の半径が徐々に大きくなることで、一本一本の線分はどんどん長くなって行きます。
 二重らせんの渦巻きを作ろうとする時、塩基間距離を一定の距離にしたいことと相反します。

 そこでまず、渦巻きの長さを求めます。
 ある時点の渦巻きの半径をRとしましょう。
 そこから一周ぐるっと回転して戻って来た時、半径が同じRだったら、それはただの円です。
 一周して戻った時、半径がR+ΔRに増加していれば、それは渦巻きとなります。
 半径Rの時の円周の長さは2πR、半径R+ΔRなら、2π(R+ΔR)です。
 この間を、一周かけてリニアに半径を増加させるのだから、一周分の渦巻きの長さは以下式となります。

  (2πR+2π(R+ΔR))/2

 一定の距離Lで描画するためには、以下式で計算できるΔθ毎に回転しながら描画して行けば良いことが解ります。

  Δθ=(2πR+2π(R+ΔR))/2/L×360°

 この様に描画した渦巻きは以下図となりました。

spiral_2.png

 渦巻きが内側から外側に向かって行くにつれ、半径はどんどん大きくなっていきますが、渦巻きを構成する線分一本一本の長さは変わりません。

 この様にして、等間隔で塩基対を配置し、渦巻き状の二重らせんが完成しました。


完成データ

 完成したデータをリンクしておきます。

1) Xi-TRACEデータ double_helix_spi.xitr
2) 渦巻き描画スクリプト draw_spiral.olv

 以下、1)をレイトレーシングした結果完成する動画をリンクしておきます。2)は渦巻きを描画するスクリプトです(ご参考)。



 最後は、渦巻きの中心部分を凹ませて、渦潮みたいな形になっています。


home

download

gallery