分子を回転させよう!

Share This:

spinosyn-rotate
計算化学で得られた三次元構造を学会発表等で使う方も多いとおもいます。

しかし、普段からGauss Viewなどで三次元構造を見慣れている人でないと、どのような分子かを認識することは難しいです。三次元構造の横に、二次元の構造式を載せたり、各原子に番号をふったり して分かりやすくする方法が一般的かと思います。

しかし一番の解決方法は、

分子を回転させる

ことです!

三次元の物体をz軸周りにθ回転させると、x座標とy座標はそれぞれ

    \begin{equation} $$x =xcos \theta - ysin \theta$$ \\ $$y = xsin \theta + ycos \theta$$ \\ \nonnumber \end{equation}

となります。

つまり、分子を構成する全ての原子のx座標、y座標にこの変換をしてやれば、分子がz軸周りにθ回転したことになります。

この計算を手動、もしくはexcelなどで行なうと、途方も無い時間がかかります。そこで必要なのでプログラミングの知識です。

今回は、C++でのプログラムを紹介します。

まず、ifstreamで座標ファイルを開きます。その後、getlineですべての座標情報を読み込み、更にそれを正規表現で読み込み配列に格納します。

ifstream ifs(“zahyo.com”)

string str
getline(ifs,str)

のような感じです。

その後、全ての座標を変換します。

C++で書いたプログラムは、実行速度が速いため、1度刻みで360回転させたとしても、計算は5秒以内に終わります。

このプログラムをダウンロードしたい方は、Facebookアカウントでログインした後、こちらのダウンロードページからダウンロードして下さい。
プログラムは無償ですが、どのような人たちに需要があるのかを知りたいためFacebookアカウントでのログインが必要な設定にさせて頂きました。

 

関連する記事

コメントを残す(投稿者名のみ必須)