記述子の計算結果を保存する(データベース化する)ときの3つの注意点

シェアする

化学構造から構造記述子やフィンガープリントなどを計算するときの話です。たとえば mol ファイルや sdf ファイルから、次のようなパッケージやソフトウェアを用いて記述子を計算できます。

自分でプログラムを作って計算する方もいらっしゃるかもしれません。

わたしの基本的なスタンスは、記述子の計算結果は保存せず、化学構造を数値化するときにその都度計算する、です。なぜなら、(自作のものも含めて) パッケージやソフトウェアのバージョンが変わると、記述子の種類や、同じ記述子でも計算結果が変わる可能性があるからです。バージョンアップで、バグがなおっているかもしれません。

モデル構築用の化合物のデータセットにおいて計算した記述子の結果と、あとになって予測用の化学構造の記述子を計算した結果とが異なると、予測できないこともありますし、予測できたとしてもその予測結果には意味がありません。

しかし、第一原理計算や密度汎関数法、分子動力学法などを活用して記述子を計算すると、一度の計算にとても時間がかかるため、結果を保存するのが現実的です。

そこで記述子を計算した結果を保存してデータベース化するときの3つの注意点をまとめます。

1. 計算したすべての記述子を保存する

たとえば DRAGON では、記述子を計算した後に、計算不可能であった化学構造を含む記述子や分散の小さな記述子を削除する機能があります。また、記述子計算した後に、自分で不要な記述子を削除して、整理してから保存したくなるかもしれません。

しかし、一つの化学構造群と別の化学構造群では、削除される記述子が変わることがあります。ある記述子において、最初の化合物群には、計算できなかった化学構造が含まれていた一方で、次の化合物群ではすべての化学構造で計算できることがあります。化学構造が変わると、分散の計算結果も変わります。最初の化学構造群では分散 0 であった記述子が、次の化学構造群では 0 でないことがあります。このような場合に、保存される記述子の種類が変わってしまいまい、新しい化学構造の計算結果をデータベースに統合できません。

計算した記述子を保存するときには、記述子を削除することなく、すべての記述子の計算結果を保存しましょう。モデルを構築したり予測したりするとき、その都度 記述子の前処理をして、削除する記述子を決めましょう。

2. 計算結果が変わってしまうパラメータを明示する

たとえば第一原理計算における近似方法の種類、密度汎関数法における汎関数の種類などです。記述子の種類は同じであっても、これらのようなパラメータが変わると、同じ化学構造でも記述子の計算結果は変わります。モデル構築用の化学構造と予測用の化学構造とで、パラメータが異なると、同じ種類の記述子ではありますが、それらは別物であり、予測に意味がなくなってしまいます。記述子の種類 + パラメータの種類 のセットで保存して、そのとき扱うすべての化学構造において、パラメータをあわせましょう。

3. パッケージやソフトウェアのバージョン、計算した日時も明示する

前にも書いたように、パッケージやソフトウェアのバージョンが異なると、記述子の種類や、同じ記述子でも計算結果が異なる可能性があります。扱う化学構造すべてにおいて、バージョンをそろえる必要がありますので、保存するときはバージョンを明示しておきましょう。一緒に、計算した日時も保存しておくとよいでしょう。

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

シェアする

フォローする