概要
TorchDrugは、PyTorchでグラフベースの創薬ワークフローを開発するための機械学習ツールボックスです。単一の事前学習済み予測器ではなく、データ表現、グラフ操作、データセット、モデル、タスクの各コンポーネントを提供します。ドキュメントで説明されている用途は、研究のプロトタイピングを支援し、再利用可能な構成要素から学習および推論のワークフローを組み立てることです。
READMEで例示されている入力には、グラフのエッジリストと分子のSMILES文字列が含まれます。グラフはGPUに移動でき、ノード誘導部分グラフを抽出できます。分子オブジェクトは原子タイプとノード特徴を提供し、骨格表現を生成できます。また、ユーザーはカスタムのノード、エッジ、グラフ属性を追加できます。これらはインデックス操作時に処理されるため、追加のアノテーションが必要な実験に適しています。
物性予測の例では、Tox21を読み込み、学習、検証、テスト用のサブセットを作成し、GINモデルをPropertyPredictionタスクに接続します。EngineコンポーネントはCPU、GPU、分散実行に対応し、オプションのWeights & Biasesロガーで実験を追跡できます。ソースで例示されている出力には、分子特徴、骨格、部分グラフが含まれます。予測動作は、ユーザーが組み立てるタスクとモデルによって異なります。
提供されたインストールガイドにはPython 3.7–3.10およびPyTorchの要件が記載されており、WindowsとApple siliconに関する追加のセットアップ上の注意事項も示されています。ガイドでは、mpsデバイスはサポートされないと明記されています。READMEにはベンチマークへのリンクがありますが、出典の抜粋にはベンチマーク結果も、特定の科学的応用における予測精度の根拠も含まれていません。
主な機能
- GPUアクセラレーションと自動微分に対応したPyTorchベースのグラフ操作。ノード誘導部分グラフの抽出を含みます。
- SMILESからの分子構築に対応し、デフォルトの原子・結合特徴、原子タイプへのアクセス、骨格への変換を提供します。
- カスタムのノード、エッジ、グラフ属性に対応し、インデックス操作時に自動的に処理します。
- Tox21、GIN、PropertyPredictionタスクを例に示すデータセットおよびモデリング用コンポーネント。
- 単一または複数のCPU/GPUを使用した学習と推論に対応するEngineインターフェース。分散構成も含みます。
- Weights & Biasesによるオプションの実験ログ記録。
用途
- 評価案:ドキュメントに記載されたGINおよびPropertyPredictionコンポーネントを使ってTox21の物性予測ベースラインを構築し、ホールドアウトしたサブセットで評価します。
- 評価案:代表的なSMILES文字列を分子オブジェクトに変換し、分子表現ワークフローでの利用を検討するために原子特徴と骨格を調べます。
- 評価案:カスタムのグラフ注釈を追加し、部分グラフの抽出後も想定した属性が保持されるか確認します。
- 評価案:選択した学習ワークフローで利用可能なCPUとGPUの実行構成を比較します。出典の抜粋からは、速度向上は確認できません。
使い方
- リポジトリのREADMEを読み、記載されているConda、pip、またはソースからのインストール方法を選びます。記載されたPythonとPyTorchの要件を確認し、該当する場合はWindowsまたはApple siliconの注意事項を参照してください。
- ドキュメントを参照して、グラフまたは分子の表現を選びます。小さなエッジリストまたは代表的なSMILES文字列から始め、次に進む前に生成された特徴を調べてください。
- READMEの例とあわせてチュートリアルを使い、部分グラフ、骨格、カスタム属性を確認します。独自のアノテーションでインデックス動作を確認してください。
- ドキュメントに記載されたTox21、GIN、PropertyPredictionの例を出発点として、物性予測ワークフローを組み立てます。予定している評価に適した学習、検証、テスト用サブセットを定義してください。
- 利用可能なCPUまたはGPUリソースに合わせてEngineを設定し、必要に応じてWeights & Biasesのログ記録を有効にします。関連情報としてリンク先のベンチマークを確認し、予測品質とリソース使用量を個別に評価してください。