結果を比較する前に役割を比較する

化学ワークフローには、分子処理、物性予測、合成計画が含まれる場合がありますが、これらのタスクを互換的に扱うことはできません。このコレクションでは、RDKit、Chemprop、DeepChem、AiZynthFinderをまとめ、それぞれの役割を明確にすることを目指しています。科学的性能の順位付けや、テスト済みのパイプラインを構成するという意味ではありません。

まず、ワークフローで支援する必要がある判断を明確にします。分子表現を準備するのか、実測物性を推定するのか、モデリング手法を検討するのか、逆合成経路を提案するのかを確認してください。その判断に必要なコンポーネントだけを選びます。すべてのリソースを追加すると、科学的な答えが必ずしも改善されないまま、確認すべき境界が増えます。

以下の機能は、公式情報源とリソース参照資料に基づいています。連携テストと計画例は、推奨される評価手順であり、実際にテストした報告ではありません。

各リソースに具体的な役割を割り当てる

  • RDKit は、二次元および三次元の分子処理や記述子生成などのケモインフォマティクス操作を提供します。参照資料では、フィンガープリント生成についても説明されています。すぐに使える物性予測器としてではなく、分子の取り扱いや特徴量の準備に利用することを検討してください。
  • Chemprop は、分子物性予測のためのメッセージパッシングニューラルネットワークを訓練・評価する、PyTorchベースのフレームワークです。ドキュメントでは、訓練、予測、データ分割、スケーリング、追加特徴量のワークフローを扱っています。これらの選択肢が、特定のエンドポイントでの精度を保証するわけではありません。
  • DeepChem は、創薬、材料科学、量子化学、生物学を対象とする、より広範な科学機械学習ツールチェーンです。リポジトリではTensorFlow、PyTorch、JAXへの依存が説明され、チュートリアルを段階的に調整することが推奨されています。入出力を指定する前に、具体的な例とモデルを選んでください。
  • AiZynthFinder は逆合成計画を対象とします。デフォルトの探索では、反応テンプレートに基づくニューラルネットワークの展開ポリシーを用いたモンテカルロ木探索が使用されます。ストックファイルと訓練済みの展開ポリシーが必要です。訓練済みのフィルターポリシーは任意です。

Chempropと、選択したDeepChemワークフローは、モデリング比較の候補になり得ます。AiZynthFinderは、提案される経路について別の問いに答えます。そのため、物性予測と経路提案は、後続の判断で別個の根拠として扱ってください。

入出力の境界を定める

提案する各受け渡しについて、変換を実装する前に簡潔な仕様を作成します。次の項目を記録してください。

  1. **入力:**表現形式、必須フィールド、分子識別子、欠損値のルール。
  2. **変換:**提案する分子の正規化、特徴量計算、目的値のスケーリング。
  3. **出力:**フィールド名、順序、単位、識別子、失敗状態。
  4. **出典と処理履歴:**コンポーネントのバージョン、設定、データセットの由来、モデルまたはアセットの識別情報。
  5. **失敗時の処理:**無効な入力を拒否するのか、警告付きで保持するのか、除外するのか。

受け渡しの前後で、立体化学、電荷、非連結成分が一貫して保たれるかを確認します。記述子を使用する場合は、その名称と順序を記録してください。特徴量の定義を伴わない数値配列は、不完全な契約です。

出典の抜粋では、すべてのリソースについて正確な入出力スキーマが示されているわけではありません。AiZynthFinderの文書にあるCLIの例では、SMILESファイルと設定ファイルを使用していますが、別のコンポーネントから直接エクスポートできることを示すものではありません。文書に記載のない連携は、確認が済むまで不明として扱ってください。

提案した連携を小さな段階に分けて評価する

ワークフロー全体を試す前に、代表性のある小規模な入力セットを使います。通常のレコードに加え、構造の欠損、識別子の重複、目的値の単位の不一致など、意図的に問題を含めたケースも用意します。期待する処理を事前に定義し、成功した出力と失敗の両方を確認してください。

DeepChemは、コア要件の一つとしてRDKitを挙げています。この依存関係は両者の関連性を示すものですが、RDKitから生成した任意の特徴量テーブルが、任意のDeepChemモデルに一致することを証明するものではありません。同様に、Chempropの文書では追加記述子が扱われていますが、提案する記述子の受け渡しについては、引き続きスキーマと設定を確認する必要があります。

予測モデリングでは、データの分割方法、エンドポイントに適した指標、重複または関連するレコードの扱いを決めます。評価データは、モデル開発中に行う判断から分離してください。エンドポイントの定義、単位、評価レコード、前処理の選択を揃えた場合にのみ、候補を比較します。

4つのプロジェクトすべてが同じ環境で動くと仮定せず、選択したリリースの環境上の制約を記録してください。DeepChem参照資料では、Pythonの互換性に関する宣言に差異があるとされています。インストールを計画する前に、選択するパッケージ構成に照らして確認してください。

計画例:仮想の候補分子ショートリスト

あるチームに、溶解度の実測記録と、それとは別の候補分子セットがあるとします。チームは、科学的な審査のために候補の優先順位を付け、その後、合成可能な経路を検討したいと考えています。これは仮想の計画例であり、ここではモデルの訓練、変換、経路探索を実施したとは報告していません。

**計画する入力:**分子識別子、分子表現、溶解度の実測値、単位、測定条件。提案する処理済み表現と併せて、元の記録も保持します。

**段階1 — 分子の準備:**分子の取り扱いにRDKitを使うことを検討します。計画する出力は、受け入れたレコード、処理上の判断、理由を添えた拒否レコードを、識別子に紐づけたテーブルです。具体的な実装はドキュメントに基づいて決めてください。

**段階2 — 物性モデリング:**初期評価には、Chempropまたは特定のDeepChemの例を選びます。計画する出力は、エンドポイントの単位、モデルの識別情報、評価の根拠を含む、識別子に紐づけた予測テーブルです。適切な事前学習済みモデルが提供されているとは仮定しないでください。

**段階3 — 経路探索:**入力境界を確認した後に限り、選択した目的分子の表現を、個別に設定したAiZynthFinderワークフローへ渡します。計画する出力は、各目的分子に紐づく候補経路の情報と、使用したストックおよびポリシーのアセットです。

**判断に関する問い:**測定条件はモデリングに十分なほど一貫していますか?候補を選択する根拠は何ですか?経路探索用アセットは対象分子に適切ですか?提案経路を誰が評価しますか?予測と経路提案は別々のフィールドに保持し、根拠のない統合スコアを作らないでください。

使用許諾と科学的な限界を確認する

コード、モデルの重み、データセット、ストックファイル、サービスの利用規約は、それぞれ個別に確認してください。その作業を行う際には、正確なライセンス情報源と確認日を記録します。コードのライセンスが、関連するすべてのアセットの再配布許可を保証するものではありません。

変換が成功しても、予測の汎化性能が証明されるわけではありません。同様に、逆合成経路の提案が、実験室での実現可能性や前駆体の現在の入手可能性を示すものでもありません。いずれの出力に基づいて行動する場合も、適切な科学的評価を求めてください。

このコレクションは、編集上の選定と情報源の確認を待つ草稿です。性能の順位付け、完了済みの科学的テスト、テスト済みの互換性に関する主張は含まれていません。

ワークフローを組み立てる前に

  • 科学的な判断と必要なエンドポイントを明確にする。
  • 選択した各リソースに、明確な役割を一つ割り当てる。
  • 識別子、表現形式、単位、失敗時の処理を仕様化する。
  • 規模を拡大する前に、代表的な変換を確認する。
  • バージョン、設定、データまたはアセットの由来を記録する。
  • モデリング比較の条件を揃え、評価の境界を保つ。
  • コンポーネントごとに使用許諾を確認し、未解決の事実は不明のままにする。