ゴミのやま

完全自分向け雑記

RDKitで化合物のコンフォマーを作成する

背景

ある分子のコンフォマー分布を調べたくなった。しかしMDをやるほど厳密性が要求されているわけでもないし, まずLAMMPS, AMBER, GROMACSといった分子動力学計算ソフトをわざわざこのためにセットアップする気力がない。

-> RDkitでコンフォマー作成すれば楽なのでは?

結論

素晴らしい先行者様がいらっしゃるのでこちらを完コピして何をしているか学習する。

RDKitを使った低分子のコンホメーション探索 – 香川大学農学部 ケミカルバイオロジー研究室

 

流れ

  1. SMILESなどから構造取得
  2. 水素原子付加
  3. 任意の数のコンフォマー生成 (AllChem.EmbedMultipleConfs)
    (ETKDGでは分子力場による最適化は必須ではないので今回はしない)
  4. AllChem.MMFFGetMoleculePropertiesで水素原子付加語の分子からmolecule propertiesを作成
  5. AllChem.MMFFGetMoleculeForceField()で前述のpropertyを元にコンフォマーごとの力場データを作成(?)。エネルギー計算
  6. AllChem.AlignMolConformers(m)でコンフォマーをアラインメント
  7. エネルギー順にコンフォマーを並び替え
  8. (ここはなくてもよさそう)Butina.ClusterDataでデータをクラスタライズ
    クラスタライズはRMSとTFDfingerprintに基づいて行う。
    GetConformerRMSMatrixは全コンフォマーペア(nC2の組み合わせ)のRMSを含む下三角行列を返す。TorsionFingerprintsは全コンフォマーペアのTFDの情報を含む行列を返す。どちらも直接Butina.ClusterDataに渡すことが可能。
  9. コンフォマーをsdf形式で書き出す。

調べたこと

ETDKGとは

DG法に化学的な常識と二面角データを追加したもの、らしい。 

future-chem.com 

DG法とは

  1. The molecule’s distance bounds matrix is calculated based on the connection table and a set of rules.

  2. The bounds matrix is smoothed using a triangle-bounds smoothing algorithm.

  3. A random distance matrix that satisfies the bounds matrix is generated.

  4. This distance matrix is embedded in 3D dimensions (producing coordinates for each atom).

  5. The resulting coordinates are cleaned up somewhat using a crude force field and the bounds matrix.

https://www.rdkit.org/docs/GettingStartedInPython.html

なんのこっちゃら。分子構造に基づく制限の下でランダムな構造を生成し分子力場でclean upするという理解。

Torsion Fingerprint Deviation (TFD)とは

RMSDのTorsion版のような認識。RMSDと比べて1. 最大値が1で規格化されている, 2. 計算に分子同士の重ね合わせを必要としないなどの利点あり。

NGL viewとは

MDなどのトラジェクトリを表示するpythonプラグイン

https://ambermd.org/tutorials/analysis/tutorial_notebooks/nglview_movie/index.html

PubChempyとは

PubChemにアクセスするためのPythonプラグイン。PubChemは化合物自身あるいは薬価などの情報を含む。