本文へスキップ

DimeNet

Johannes Gasteiger, Janek Groß, Stephan Günnemann

DimeNetは、分子グラフ上の方向性メッセージパッシングに用いるDimeNetおよびDimeNet++の参照実装を提供し、学習ノートブック、テストセット予測ワークフロー、事前学習済みモデルを含みます。

掲載情報の更新 ·

概要

DimeNetは、分子グラフ向けニューラルネットワークモデルであるDimeNetおよびDimeNet++の参照実装を含む研究用リポジトリです。「分子グラフのための方向性メッセージパッシング」および「非平衡分子のための高速かつ不確実性を考慮した方向性メッセージパッシング」の論文に付随しています。ワークフロー上の用途はモデルの学習と分子特性予測であり、分子データベースへのアクセスやホスト型予測サービスではありません。READMEでは、オリジナルモデルよりDimeNet++を推奨しています。

モデルは方向性メッセージパッシングの計算に、分子グラフ情報と距離および角度を使用します。文書に記載されたQM9の予測対象には、alpha、R2、U0、U、H、G、Cv、Mu、HOMO、LUMO、ZPVEが含まれます。出典の抜粋では、完全な入力スキーマや予測ファイル形式は明示されていません。学習はtrain.ipynbで行い、predict.ipynbは学習済みモデルを使ってテストセットの予測を生成します。pretrainedには2組の事前学習済みモデルが用意されており、train_seml.pyはSacredとSEMLを用いたクラスタ学習をサポートします。

このリポジトリはTensorFlow 2を使用し、オリジナルのTensorFlow 1実装との学習および初期化の違いを説明しています。結果を解釈する際には、記載されている問題に留意する必要があります。具体的には、qm9_eV.npzにおける分子フィルタリングの1件ずれ、距離および基底層の相違、埋め込み層の相違、古いTensorFlow AddOnsバージョンに影響するチェックポイント保存の問題です。READMEでは、MD17ベンチマーク比較の不一致も指摘しています。エネルギーと力の予測について、著者は代わりにGemNetを推奨しています。そのため、この項目は文書化された研究実装として扱うべきであり、独立に検証された科学的ワークフローとはみなせません。

主な機能

  • 分子グラフ上の方向性メッセージパッシングを行うDimeNetとDimeNet++の両方の参照実装を含みます。
  • モデル学習用の`train.ipynb`と、学習済みモデルによるテストセット予測用の`predict.ipynb`を提供します。
  • 実験用に、`pretrained`フォルダー内に2組の事前学習済みモデルを収録しています。
  • SacredとSEMLを使ったクラスタ学習用の`train_seml.py`を含みます。
  • TensorFlow 2実装における、予測対象ごとの出力層初期化について説明しています。
  • 結果の解釈や再現に関係する、データセット、幾何、基底層、埋め込み層、チェックポイントの既知の問題を列挙しています。

用途

  • 評価案:学習および予測ノートブックを使ってQM9の分子特性予測ワークフローを評価し、記載された分子フィルタリングの誤りを考慮する。
  • 評価案:管理された実験条件でDimeNetとDimeNet++を比較する。ただし、公開済みの結果が新しいデータセットにも当てはまるとは仮定しない。
  • 評価案:再学習にリソースを投入する前に、提供された事前学習済みモデルを調べる。
  • 評価案:SacredとSEMLを使ったクラスタベースの分子モデル実験の出発点として、`train_seml.py`を評価する。

使い方

  1. 公式READMEを読み、DimeNetとDimeNet++のどちらを使うか選びます。READMEはDimeNet++を推奨し、エネルギーと力を扱う場合にはGemNetを案内しています。
  2. setup.pyに記載された依存関係を確認します。TensorFlow、TensorFlow AddOns、NumPy、SciPy、SymPyなどが含まれます。これらは宣言された要件であり、利用環境との互換性を示すものではありません。
  3. リポジトリ内のtrain.ipynb、predict.ipynb、pretrainedフォルダーを確認します。学習や予測を試す前に、想定されるデータ表現と予測対象を確認してください。
  4. READMEに記載された既知の問題と、QM9フィルタリングに関する議論を確認します。評価を行う場合は、データセットの出典と処理履歴、初期化の選択、修正内容を上流の結果とは分けて記録してください。
  5. クラスタ学習が必要な場合は、train_seml.pyとリンク先のSEMLプロジェクトを調べます。利用または再配布の前に、コードライセンスを確認してください。

関連リソース

PhysNet

モデル

PhysNetは、分子のエネルギー、力、双極子モーメント、部分電荷を予測するニューラルネットワークのTensorFlow実装です。設定可能なトレーニングワークフローとサンプルデータセットを備えています。

オープンソースPython

分子特性予測 · 量子化学

QML

オープンソース

QML は、Fortran による表現、カーネル、ソルバーモジュールを備えた、アーカイブ済みの量子機械学習向け Python ツールキットです。以降の開発は qmllib に移行しています。

オープンソースPython

分子特性予測 · 量子化学

SchNetPack

モデル

SchNetPack は、原子系ニューラルネットワークの構築と学習に用いる Python ツールキットです。SchNet および PaiNN 表現、量子化学的な物性出力、分子動力学コンポーネントを備えています。

オープンソースPython

分子特性予測 · 量子化学

SpookyNet

モデル

SpookyNetは、電子自由度と非局所効果を含む力場を学習するものとして説明されているPython研究パッケージです。関連論文が引用されており、リポジトリのコードにはMITライセンスが適用されています。

オープンソースPython

分子特性予測 · 量子化学

TorchANI

モデル

TorchANI は、ANI 系ニューラルネットワーク原子間ポテンシャルの開発、学習、利用を目的とした PyTorch ライブラリです。記述子の計算と推論には、オプションの C++ および CUDA 拡張を利用できます。

オープンソースPythonC++

分子特性予測 · 量子化学

ANI-1

データセット

ANI-1 は、計算された非平衡分子配座を提供し、有機分子の座標とエネルギーを含む HDF5 ファイルにアクセスするための Python リーダーを備えています。

オープンソースPython

量子化学

関連ガイド