概要
JT-VAEは、分子グラフ生成のためのJunction Tree Variational Autoencoder公式実装を提供しており、関連論文は https://arxiv.org/abs/1802.04364 にリンクされています。想定されるワークフローは、分子グラフの生成と関連するモデル学習実験です。READMEでは分子グラフが生成対象として示されていますが、提示された抜粋にはデータセットの準備、受け入れ可能な入力形式、出力のシリアライズ方法、チェックポイントの利用可否についての説明はありません。
このリポジトリでは、モデル実装と学習・実験用スクリプトが分けられています。READMEは、高速化実装の fast_jtnn/ とVAE学習コードの fast_molvae/ を参照するよう案内しています。また、元のICML論文に関連する実験を支えるディレクトリとして、ベイズ最適化用の bo/、VAEのみを学習する molvae/、VAEと特性予測器を共同学習する molopt/、モデル定式化に関する jtnn/ が示されています。これらは文書で説明されているワークフローの構成要素であり、結果が再現されたことを示す証拠ではありません。
記載されている要件はLinux、Python 2.7、RDKit 2017.09以降、PyTorch 0.2以降です。作者によると、テストされたのはUbuntuのみです。評価環境を計画する際は、これらの歴史的な要件を考慮する必要があります。READMEは、アーキテクチャの改善には別個の hgraph2graph リポジトリを推奨しています。同リポジトリについて記載されたChEMBL事前学習済みモデルと特性誘導型生成スクリプトを、JT-VAEリポジトリの機能として扱ってはいけません。READMEでは新しい実装を高速化したと説明していますが、提示された証拠には数値による速度比較はありません。
主な機能
- 分子グラフ生成のためのJunction Tree Variational Autoencoder公式実装で、関連する研究論文へのリンクを含みます。
- `fast_jtnn/` の高速化モデル実装と、対応する `fast_molvae/` のVAE学習コード。
- 元のICML論文に関連する実験用の、VAEのみを学習するスクリプトを `molvae/` に収録。
- VAEと特性予測器を共同学習するスクリプトを `molopt/` に収録。
- ベイズ最適化実験用スクリプトを `bo/` に収録。メインドキュメントでは、このディレクトリ専用のREADMEに言及しています。
用途
- 評価候補:文書化された実装と学習ワークフローを用いて、分子グラフ生成モデルとしてのJT-VAEを調べる。
- 評価候補:`molopt/` の学習スクリプトを通じて、表現の共同学習と分子特性予測を検討する。
- 評価候補:リポジトリ内のベイズ最適化実験を調べ、分子最適化の研究ワークフローの出発点とする。
使い方
- 公式READMEと関連論文を読み、モデルの目的を把握するとともに、実装手順と研究上の主張を区別します。
- 記載された環境要件を確認します:Linux、Python 2.7、RDKit >= 2017.09、PyTorch >= 0.2。リンク先のRDKitインストール資料を参照してください。READMEではcondaを推奨し、Ubuntuのみでテストしたと報告しています。
- リポジトリで
fast_jtnn/を確認し、高速化VAE学習を試す前にfast_molvae/README.mdを読みます。形式を推測せず、入力の準備方法と出力をそこで確認してください。 - 評価目的に合った実験ディレクトリを選びます:
bo/、molvae/、またはmolopt/。実際の手順はそれぞれのREADMEで確認してください。提示された抜粋にはコマンドは記載されていません。 - リポジトリのコードライセンスを確認します。アーキテクチャの改善が関係する場合は、hgraph2graphを別途調べ、その機能をJT-VAEの機能として扱わないでください。