QM9は量子化学計算に基づいた機械学習用の大規模データセット

02_ケモインフォマティクス

ケミカルスペースプロジェクトとGDBデータベース」という記事では,Jean-Louis Reymondの研究グループによって進められているGDBデータベースについて紹介しました.GDBはある原子数以下の存在しうる低分子化合物を網羅したもので,数多くの未知化合物を含むデータベースです.

今回はGDBデータベースに含まれる分子(の一部)について,量子化学計算によって構造最適化を行い,エネルギーや双極子モーメントなどの計算値を収載した「QMデータセット」について紹介します.

QMデータセットは化合物を用いた数多くの機械学習研究においてベンチマークとして用いられており,ケモインフォマティクスにおけるMNISTのような位置づけと言ってもいいでしょう.

QMデータセットの入手方法

QMデータセットは様々なウェブサイト上でホストされています.以下に代表的なサイトをいくつか掲載します.

QUANTUM-MACHINE.ORG

最も歴史があり,有名なのがQUANTUM-MACHINE.ORGだと思います.

  • QM7
  • QM7b
  • QM9
  • QM8

が入手可能です.

qmml.org

Dr. Matthias Ruppが管理するqmml.org上でもホストされています.

  • QM7
  • QM7b
  • QM9
  • QM8

が入手可能です.

MoleculeNet

DeepChemライブラリーの一部であるMoleculeNetにも収載されています.

こちらでも

  • QM7
  • QM7b
  • QM9
  • QM8

が入手可能です.

MolNet

Quantum Chemistry Archive

2019年8月にStable BetaになったMolSSI(Molecular Sciences Software Institute)が管理するQuantum Chemistry (QC) ArchiveでもQMデータセットがホストされています.

QCArchiveでは

  • QM7
  • QM7b
  • QM7bT
  • QM9

のデータセットがhdf5またはcsv/xyz形式として入手可能です.

QCArxiv

特筆すべきことに,QCArchiveで手に入るデータには,元文献収載の値以外にも他のDFT汎関数・基底関数系でpsi4を用いて計算したエネルギーの値が大量に収載されています.

pythonで使える量子化学計算用ライブラリであるpsi4については,「計算化学にpythonとpsi4で入門」という記事で解説しています.参照してみてください.

QM7

QM7データセットはGDB-13データベースの中から重原子(C, N, O, S)が7個以下の7165分子について混成汎関数であるPBE0を用いて計算した最適構造と原子化エネルギーが含まれています.なお用いた基底関数系については元文献の本文には記載がありません(PBE0/tier2 basis set?).

QUANTUM-MACHINE.ORGなどでホストされているデータはMatlab形式ですので,pythonで読み込む場合にはscipy.io.loadmatを使います.

QCArchiveのデータでは文献記載のPBE0レベルの原子化エネルギー以外に,「value_description」に記載の通り

  • HF/STO-3GからMP2/aug-cc-pvtzといった各種レベルの分子軌道法
  • PEB,B3LYP-D3(BJ),wB97XD,B2PLYPをなど様々な汎関数を用いたSTO-3GからDunningのトリプルゼータまで各種基底関数系によるレベル

を用いて,計80種類の計算手法によるエネルギー計算の結果が記載されています.

QM7の元文献は以下の論文です.
Fast and Accurate Modeling of Molecular Atomization Energies with Machine LearningPhys. Rev. Lett. 2012, 108, 058301.

なおこの論文は分子構造をベクトル化する方法の1つである「Coulomb matrix」に関する元文献としても有名です.

QM7b

QM7bデータセットはGDB-13データベースの中から重原子(C, N, O, S, Cl)が7個以下の7211分子について混成汎関数であるPBE0を用いて計算した最適構造が含まれています.

最適化構造について原子化エネルギーに加えて,

  • 3つの計算レベルによるHOMO/LUMOエネルギー
  • 励起エネルギー

などが含まれています.励起エネルギーが含まれていることからマテリアルズインフォマティクスに有用なデータセットと考えられますが,計算レベルがZINDOですので精度はそこまで期待できないと思います.

QM7bの元文献は以下の論文です.
Machine learning of molecular electronic properties in chemical compound spaceNew J. Phys. 2013, 15, 095003.

QM9

QM9データセットにはGDB-17データベースから,重原子数(C, O, N, F)が9以下の133885分子についてB3LYP/6-31G(2df,p)レベルでの最適化構造に加え,

  • ゼロポイントエネルギー
  • エンタルピー
  • 自由エネルギー
  • 振動数
  • HOMO/LUMOエネルギー
  • 双極子モーメント

などの値が含まれています.

QCArchiveのデータでは上記に加えて,

  • HF/STO-3G
  • HF/cc-PVTZ
  • PBE/STO-3G
  • SVWN/STO-3G
  • B3LYP/def2-SVP
  • wB97XD/def2-SVP
  • wB97XD/def2-TZVP
  • wB97XD/aug-cc-PVTZ

の各レベルでのエネルギー計算の結果が含まれています.特に元データの基底関数系が6-31G(2df,p)ですので,より大きな基底関数系での計算値が含まれていることは,正確な教師データが欲しい場合には嬉しいと思います.

QM9における構造最適化

分子のエネルギーはその立体構造に依存しますから,どのように分子構造を最適化したかを知っておくことは大事です.QM9の元文献には詳細な記載がありますので,以下に概要をまとめておきます.なお計算にはGaussian 09 Rev.Dを用いています.

  1. GDB-19データベース中の重原子数9個以下の分子からS/Br/Cl/Iを含む分子とカチオン・アニオンを除去
  2. SMILESからCorinaを用いて立体構造を発生
  3. 取得した立体配座を初期構造としてMOPACを用いてPM7レベルでpreciseキーワード付きで最適化
  4. Gaussian09を用いてB3LYP/6-31G(2df,p)レベルで最適化
    1. Gaussian09のデフォルトパラメータで最適化
    2. 最適化に失敗した分子について,DFTグリッドをultrafineに変更(g09のデフォルトはfinegrid
    3. 失敗した分子について,SCFのキーワードでverytightmaxcycle=200を指定
    4. 遷移状態に最適化されてしまう分子について,OPTのキーワードにcalcfc, maxstep=5,
      maxcycle=1000を指定
    5. 上記でも最適化できない分子について,calcall, maxstep=1, maxcylce=1000を指定

以上の取り組みをもってしても構造最適化できなかった分子が全部で11個あったようです.

QM9の元文献は以下の論文です.
Quantum chemistry structures and properties of 134 kilo molecules
Scientific Data 2014, 1, 140022.

QM8

QM8データセットはB3LYP/6-31G(2df,p)で最適化されたQM-9の構造から,

  • 3054個の歪みの大きい分子を削除
  • 重原子(C, O, N, F)の数を8個以下に制限

することで,21786個の分子を対象としています.

これら分子について,

  • 第1励起エネルギーと振動子強度
  • 第2励起エネルギーと振動子強度

の4項目を

  • RI-CC2/def2TZVP
  • LR-TDPBE0/def2SVP
  • LR-TDPBE0/def2TZVP
  • LR-TDCAM-B3LYP/def2TZVP

の4つの計算レベルで計算した結果が含まれています.

QM8の元文献は以下の論文です.
Electronic spectra from TDDFT and machine learning in chemical space
J. Chem. Phys. 2015, 143, 084111.

終わりに

今回は「QM9は量子化学計算に基づいた機械学習用の大規模データセット」という話題について,

  • GDBデータベースとQMデータセット
  • QMデータセットの入手方法
  • QM7/7b
  • QM9
  • QM8

などについて説明してきました.特にQM9は多くの機械学習研究で使われているデータセットですので,中身について知っておくと論文を読む際に理解が深まると思います.

次回以降ではQMデータセットを用いていくつかモデルを作成していきたいと思います.

コメント

タイトルとURLをコピーしました