概要
LocalRetro は、局所反応テンプレートを用いた逆合成予測を実装しています。README では、KAIST(現在は SNU)の Yousung Jung のグループが開発したとされ、論文 “Deep Retrosynthetic Reaction Prediction using Local Reactivity and Global Attention” へのリンクが掲載されています。文書に記載された用途は、データセットに基づく研究ワークフローです。反応学習データからテンプレートを導出し、予測モデルを学習させ、テストセットの予測をデコードして候補反応物を得ます。
ワークフローは、生の USPTO-50K または USPTO-MIT データから始まります。データのダウンロード方法は、リポジトリの data README を参照するよう案内されています。前処理の第1段階では、原子テンプレートと結合テンプレート、およびテンプレート情報を抽出します。関連するクラスファイルが存在する場合は、反応クラスのマッピングも生成されます。第2段階では、それらのテンプレートを生データに割り当て、学習、検証、テスト、およびラベル付きデータの CSV ファイルを書き出します。学習によってモデルのチェックポイントが生成され、テストによって生の予測ファイルが生成されます。別のデコード工程でこれを反応物出力に変換し、クラス固有の出力先も用意されています。
README では Python、Numpy、PyTorch、RDKit、DGL、DGLLife が要件として挙げられ、環境設定の例も示されています。これらはソースに記載された要件であり、現在の互換性を示す証拠ではありません。出典の抜粋に記載されているのは、データセットを用いた学習とテストであり、対話型予測サービスや任意の分子を入力するインターフェースではありません。また、立体化学を考慮する評価指標と考慮しない評価指標が区別されているため、再現実験を提案する場合は、採用するスコアリング規約を明記してください。リポジトリのコードには非商用・継承的共有ライセンスが適用されていますが、この項目は外部データセットやモデルの重みに対する別途の許諾を確立するものではありません。
主な機能
- 学習データから局所的な原子および結合の反応テンプレートを抽出するとともに、テンプレート情報と条件付きの反応クラスマッピングを生成します。
- 導出したテンプレートを生の反応データに割り当て、前処理済みの学習、検証、テスト、およびラベル付きデータの CSV ファイルを生成します。
- データセット固有の学習ワークフローを提供し、LocalRetro モデルのチェックポイントを保存します。
- テストセットの予測を実行し、別途行うデコード工程用に生の予測を保存します。
- 生の予測を候補反応物にデコードし、標準およびクラス固有の出力先を用意します。
- 立体化学を考慮する場合と考慮しない場合の評価規約、および原子ペア関数と活性化関数の更新について記載しています。
用途
- 評価案:文書に記載された USPTO-50K または USPTO-MIT の学習からデコードまでのワークフローを再現し、得られた反応物予測を確認する。
- 評価案:抽出された原子および結合テンプレートの一覧を調べ、学習反応が局所的にどのように表現されているかを検討する。
- 評価案:データセットとモデルの設定を固定したうえで、立体化学を考慮する場合と考慮しない場合の規約による予測スコアを比較する。
使い方
- ワークフローと依存要件については公式 READMEを読み、利用または再配布を計画する前にリポジトリのライセンスを確認してください。
- リポジトリを取得し、文書に記載された環境設定に従ってください。また、
./data内の README を参照して、生の USPTO-50K または USPTO-MIT データの入手先を確認してください。データセットの利用許諾は別途確認してください。 - 前処理の手順に従い、
Extract_from_train_data.pyで局所テンプレートを導出した後、Run_preprocessing.pyで反応に割り当てます。学習前に、生成されたテンプレートおよびデータ分割の CSV ファイルを確認してください。 - 選択したデータセットで
Train.pyを実行するには、学習セクションの手順に従ってください。文書に記載された USPTO_50K の例では、チェックポイントの場所はLocalRetro/models/LocalRetro_USPTO_50K.pthです。 Test.pyとDecode_predictions.pyについては、テストおよびデコードの各セクションの手順に従ってください。生の出力とデコード後の出力の両方を確認してください。評価を提案する場合は、データセット、チェックポイント、立体化学のスコアリング規約を記録し、2種類の指標を同等とみなさないでください。