-
-
Notifications
You must be signed in to change notification settings - Fork 1
Tips for 2D to 3D conversion JP
HiroYokoyama edited this page Oct 30, 2025
·
6 revisions
MoleditPyでは、2D構造式からの3D構造生成と、その後の構造微調整を行うための機能を提要します。
3D立体構造を生成するために、複数の外部ライブラリ(バックエンド)をサポートしています。使用するライブラリによって、処理速度と生成される構造の精度に特徴があります。
| ライブラリ | 処理速度 | 構造の正確性 | 主な特徴 |
|---|---|---|---|
| RDKit | 遅い(特に大規模な歪んだ分子) | 比較的正確 | 距離幾何学に基づき、化学的に妥当な初期構造を生成する。 |
| Open Babel | 非常に速い | 生成後に再度調整が必要 | 高速に座標を生成するが、力場による最適化が必須。 |
RDKitは、高品質な3D座標を生成するための強力な cheminformatics ライブラリです。
-
長所:
- 距離幾何学(Distance Geometry)などの手法を用い、化学的に妥当で比較的正確な立体配座を生成する能力に優れています。
-
短所:
- 計算コストが比較的高く、特に分子量が大きい分子や複雑な環系を持つ分子の場合、3D構造の生成に時間がかかる傾向があります。
Open Babelは、高速な化学フォーマット変換と構造生成に定評があるライブラリです。
-
長所:
- ルールベースの手法や独自のアルゴリズムにより、非常に高速に3D座標を生成できます。大量のデータ処理や迅速なプレビューに適しています。
-
短所:
- 生成された直後の3D構造は、あくまで高速な座標生成の結果であり、エネルギー的に安定な配座ではありません。
- そのため、よりリアルな構造を得るためには、生成後に**力場(MMFF94やUFFなど)を用いた構造最適化による「再度調整」**が必須となります。
アルゴリズムによって3D構造を生成した後、または手動で構造を変更した後は、構造の微調整が必要になる場合があります。
ユーザーがマウス操作で直感的に立体構造を修正するための機能です。
- 操作方法: 3Dビューア上で特定の原子を選択し、マウスでドラッグ(掴んで移動)することで、その原子(および関連する部分)の位置を自由に変更できます。
-
主な用途:
- 特定の二面角(ねじれ角)を任意の値に変更したい場合。
- アルゴリズムによる自動生成では難しい、特定の配座を意図的に作りたい場合。
-
注意点:
- 手動でのドラッグは、化学的な妥当性(結合長や結合角)を無視して原子を強制的に移動させます。
- ドラッグ操作を行った後の構造は、多くの場合、結合が不自然に伸びたり、原子が近すぎたりする歪んだ(ひずんだ)状態になっています。
手動調整後の歪んだ構造や、Open Babelで高速生成された初期構造を、化学的により妥当な状態へ自動で修正する機能です。
-
目的:
- 不自然な結合長や結合角を、標準的な値に修正します。
- 原子間の不要な衝突(近すぎる距離)を解消します。
- 分子全体のエネルギーがより安定な状態になるように構造を調整します。
-
実行タイミング:
- 3Dドラッグで手動調整を行った後: ドラッグによって生じた構造の歪みを解消するために必須です。
- Open Babelで3D構造を生成した後: よりエネルギー的に安定でリアルな構造を得るために強く推奨されます。
-
仕組み:
- MMFF94やUFFなどの**力場(Force Field)**を用いて、分子全体のポテンシャルエネルギーが最小になるように各原子の座標を再計算します。これにより、歪みが解消され、安定な立体配座に近づきます。