概要
RetroXpert は、NeurIPS2020 論文「RetroXpert: Decompose Retrosynthesis Prediction Like A Chemist.」の参照実装を提供します。逆合成予測を、生成物の結合切断と、それに続く反応物生成の2段階に分けています。文書化されたワークフローは、これらの段階を個別に研究する場合にも、連続した予測パイプラインとして研究する場合にも対応しており、すぐに使える合成計画サービスとして提供されているものではありません。
第1段階では、USPTO-50K データセットをラベルと DGL グラフに前処理し、半テンプレートパターンを抽出して、結合切断を予測する EGAT モデルを学習します。文書化された学習例には反応カテゴリが含まれています。中間処理では、結果を OpenNMT 形式のデータに変換し、予測された結合切断からシンソンを生成します。第1段階の学習予測で生じた誤りを、第2段階の学習データ拡張に使うこともできます。反応物生成段階には、前処理、学習、チェックポイントの平均化、翻訳、予測スコアリングが含まれます。
原子マッピングされた反応と、それを SMILES に変換する処理は、この実装の重要な詳細です。README では、シンソンの準備時に原子の順序とマッピング番号によって反応原子の情報が露出した、情報漏洩の問題が記載されています。README は、マッピング番号も再割り当てする、改訂版の生成物標準化を推奨しています。そのため、このリポジトリを評価する際には前処理の選択が重要になります。後に報告された結果には、実装と論文を更新予定であるとの記述が添えられていますが、出典の抜粋からは、その更新が完了したとは確認できません。依存関係に関する案内は著者の環境を説明するものであり、現在のパッケージリリースとの互換性を検証したものではありません。
主な機能
- USPTO-50K の反応を、生成物の結合切断予測用のラベルと DGL グラフに前処理します。
- 学習データから半テンプレートパターンを抽出し、データセット全体のパターンを特定します。
- 反応カテゴリ情報を含む EGAT の学習・評価ワークフローを提供します。
- 第1段階の結合切断予測からシンソンを生成し、OpenNMT 用にデータを整形します。
- 第1段階の学習誤りを使って、第2段階の反応物生成用データを拡張します。
- チェックポイントの平均化、翻訳、スコアリングを含む、OpenNMT による反応物生成ワークフローを文書化しています。
用途
- 想定される評価:2段階の逆合成パイプラインで、生成物の結合切断の誤りが下流の反応物予測にどう影響するかを調べます。
- 想定される評価:USPTO ベースの実験で情報漏洩の有無を確認する際に、原子順序とマッピング番号に関する前処理の選択肢を比較します。
- 想定される評価:第1段階の誤りに基づく学習データ拡張によって、第2段階の予測挙動が変化するかを調べます。
使い方
- 実験ワークフローを選ぶ前に、情報漏洩に関する注意事項を含め、公式 READMEを読みます。後続の結果更新は、実装手順とは分けて扱ってください。
- リポジトリの requirements と、同梱されている OpenNMT-py のインストール案内を確認します。README には著者の依存環境が記載されています。現在のバージョンとの互換性を前提とせず、自分の環境に適しているかを評価してください。
- README が USPTO の前処理に推奨している改訂版の標準化実装を確認します。原子順序とマッピング番号の扱いを調べてください。
- README に記載された第1段階の手順に従います。ラベルとグラフを準備し、半テンプレートパターンを抽出し、EGAT を学習して、文書化された反応カテゴリ設定で結合切断予測を評価します。
- OpenNMT 用データ、予測されたシンソン、学習誤りに基づく拡張データを準備します。その後、文書化された順序に従って、第2段階の前処理、学習、チェックポイントの平均化、翻訳、スコアリングを行います。想定される評価では、前処理の選択をスコアと併せて記録し、中間の結合切断結果と生成された反応物の両方を確認してください。