2006年06月06日

OELibでねじれ角の計算

6月4日の記事で、シクロヘキサンのねじれ角(C1-C2-C3-C4)の計算にOELibで作成したtorsionを利用しました。
そこで、今回は、OELibを用いた分子の入力からねじれ角の計算までをtorsion.cppを通して紹介したいと思います。

torsion.cppのソースコードを下のインラインフレーム内に記載しております。まずは、OELibのヘッダファイルであるopenbabel/mol.hとopenbabel/obconversion.hをincludeし、namespaceを定義します。ちなみに、torsionのUsageは以下のとおりです。
Usage: torsion filename atom1 atom2 atom3 atom4
ここで、filenameは分子ファイル名を示し、atomXは、ねじれ角を構成する原子のIDを示します。
次に引数チェックのあと、分子ファイルの拡張子からファイル形式を判定しています。分子の読み込みは、ファイルから1分子づつfor文の無限ループ内で行っており、mol.Empty()がtrueとなればbreakします。プログラムのメインとなるねじれ角の計算はOBMolクラスのGetTorsionを用いて計算しています。
今回定義したシクロヘキサンのねじれ角は下図のようになります。
tors1.png

torsion.cpp


コンパイル:
$ g++ -I/usr/local/include/openbabel-2.0 -L/usr/local/lib -o torsion torsion.cpp -llibopenbabel

実行:
$ torsion cyclo.sdf 1 2 3 4

出力:
conf-1 torsion_angle 304.814
conf-2 torsion_angle 291.955
..
..
conf-100 torsion_angle 329.156

無事にねじれ角が計算できると思います。



banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 07:52| Comment(0) | TrackBack(0) | OpenBabel | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/18886699

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。