本文へスキップ

SchNetPack

Kristof T. Schuett, Michael Gastegger, Stefaan Hessmann, Niklas Gebauer, Jonas Lederer

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

掲載情報の更新 ·

概要

SchNetPack は、分子や材料のポテンシャルエネルギー面およびその他の量子化学的性質を扱うニューラルネットワークの開発と応用を支援します。単一の事前学習済み予測モデルではなく、ツールキットです。研究者は、原子表現、出力モジュール、学習設定を組み合わせて、選択したタスクに応じたモデルを構築します。プロジェクトの README では、利用可能な表現として SchNet の連続フィルターネットワークと PaiNN の等変メッセージパッシングが説明されています。

ワークフローは、ベンチマークデータ、モデル設定、学習、ログ記録をつなぎます。文書化された QM9 の例では原子ごとの物性モデルを学習し、データセットがまだ利用できない場合はダウンロードします。MD17 の例では、選択した分子の参照エネルギーと力を使用します。設定では表現、予測出力、損失、評価指標を指定します。ポテンシャルエネルギーモデルは、力と応力を得るためのエネルギーとその対応する導関数を出力できます。その他の出力モジュールは、双極子モーメント、分極率、および一般的な応答特性に対応します。

学習インターフェースでは PyTorch Lightning とともに Hydra の設定グループを使用し、データセット、表現、個々のパラメーターを変更できます。実行ディレクトリには学習済みモデルが保存され、対応するログ出力には Tensorboard、CSV、Aim が含まれます。学習機能に加えて、ツールキットには静電気および反発モジュール、GPU 加速分子動力学コンポーネント、文書化された LAMMPS インターフェースが含まれます。

抜粋にはこれらのコンポーネントと使用例のワークフローが記載されていますが、測定済みの精度、実行時間の結果、新しい化学系への適用性を検証した結果は示されていません。提供されたプロジェクトメタデータでは Python >=3.12 が宣言されていますが、これは依存要件であり、互換性がテスト済みであることを示すものではありません。そのため、学習済みモデルを新しいデータセットやシミュレーションに適用する際には、引き続き評価が必要です。

主な機能

  • 分子や材料の原子モデル向けに、SchNet の連続フィルター表現と PaiNN の等変メッセージパッシング表現を提供。
  • 双極子モーメント、分極率、応力、一般的な応答特性の出力モジュール。力と応力テンソルの算出に使うエネルギー導関数も含みます。
  • spktrain による Hydra 設定の学習に対応し、文書化された QM9 および MD17 の実験と、設定可能な物性損失重みを提供。
  • 静電相互作用、Ewald 和、ZBL 反発を扱う物理関連モジュール。
  • 経路積分 MD、サーモスタット、バロスタットを含む GPU 加速分子動力学コンポーネントと、LAMMPS インターフェース。
  • PyTorch Lightning による学習ログ記録に対応。デフォルトは Tensorboard で、CSV と Aim の設定も提供。

用途

  • 評価案:一貫したデータ分割と評価指標を用い、文書化された QM9 物性予測ワークフローで SchNet と PaiNN の表現を比較する。
  • 評価案:ウラシルの MD17 モデルを学習し、文書化された損失重みを変えながらエネルギー誤差と力の誤差を調べる。
  • 評価案:SchNetPack のコンポーネントまたは LAMMPS インターフェースを使った分子動力学ワークフローで、学習済みポテンシャルを評価する。
  • 評価案:階層的な設定を通じて表現モジュールと出力モジュールを組み合わせ、独自の原子レベル予測タスクを開発する。

使い方

  1. リポジトリ READMEとドキュメントを参照し、QM9 の物性予測例と MD17 のエネルギー・力の例のどちらを使うか選びます。環境を準備する前に、提供されているプロジェクト要件を確認してください。Python >=3.12 が宣言されていますが、ここでは独立したテストは行われていません。
  2. README に記載されている pip またはソースからのインストール手順に従います。getting-started ワークフローの説明に沿って、データと学習実行用の作業ディレクトリを用意します。
  3. 文書化された実験設定を選びます。QM9 の例では qm9_atomwise、分子ポテンシャルの例では md17 を使い、data.molecule を uracil に設定します。QM9 データがない場合は自動的にダウンロードされます。
  4. 設定ガイドを確認します。SchNet または PaiNN を選び、出力定義を調べ、該当する場合は適切なエネルギー損失と力の損失の重みを設定します。
  5. spktrain で学習し、保存されたモデルと選択したログ出力を確認します。評価手順として、シミュレーションでモデルを使う前に予測誤差を評価してください。連携が必要な場合は、LAMMPS ガイドを参照してください。

関連リソース

DimeNet

モデル

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

Python

分子特性予測 · 量子化学

PhysNet

モデル

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

オープンソースPython

分子特性予測 · 量子化学

QML

オープンソース

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

オープンソースPython

分子特性予測 · 量子化学

SpookyNet

モデル

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

オープンソースPython

分子特性予測 · 量子化学

TorchANI

モデル

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

オープンソースPythonC++

分子特性予測 · 量子化学

ANI-1

データセット

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

オープンソースPython

量子化学

関連ガイド

モデル

分子特性予測モデルの評価

分子特性ワークフローの選定、表現方法と評価根拠の確認、適用領域の境界を明示したローカル評価の計画、およびコンポーネント単位でのライセンス確認を行うための実践ガイドです。