1. はじめに:なぜ「別系統」のGNNフレームワークDGLを試すのか
分子をグラフ構造として扱うAI創薬の世界では、PyTorch Geometric(PyG)と並んでもう一つの有力な選択肢が存在します。それが「DGL(Deep Graph Library)」です。GNN(グラフニューラルネットワーク)フレームワークはPyG一強ではなく、設計思想の異なるDGLを知っておくことで、扱える課題の幅が大きく広がります。
本記事では、DGLの基本的な特徴から、創薬特化ツールキットのDGL-LifeSci、PyGとの比較、そして薬物-薬物相互作用(DDI)予測などへの応用までを、step-by-stepで解説します。なお、DGLはあくまでGNNを実装するための汎用ライブラリであり、創薬専用ツールではない点を最初におさえておきましょう。
2. DGL(Deep Graph Library)とは?特徴とバックエンドの柔軟性
DGLは、グラフニューラルネットワークの実装を容易にするためのオープンソースのPythonライブラリです。PyTorch・TensorFlow・MXNetといった既存の深層学習フレームワークの「上」に構築されている点が大きな特徴で、複数バックエンドに対応しています。ただし、実際の開発・コミュニティの中心はPyTorchバックエンドであり、TensorFlow/MXNetは選択肢として用意されている、と理解しておくのが実務的です。
DGLの主な特徴は次の通りです。
- バックエンドの柔軟性:PyTorchを中心に、TensorFlow・MXNetもサポート
- メッセージパッシングの細かな制御:メッセージ関数・集約関数・更新関数を柔軟に定義できる
- 高速化:自動バッチ処理と最適化された疎行列カーネルにより高速に動作
- スケーラビリティ:マルチGPU/分散学習に対応し、大規模グラフを扱いやすい
DGLの核心は、原子(ノード)間で情報を伝え合う「メッセージパッシング」という考え方を、直感的に実装できる点にあります。分子グラフにおける原子同士の情報伝播を細かく制御できるため、分子構造の特徴を効果的に学習できます。
3. DGL-LifeSci:創薬・生命科学に特化したツールキット
DGL-LifeSciは、RDKit(化学情報ライブラリ)・PyTorch・DGLをベースに開発された、生命科学向けのオープンソースツールキットです(論文はarXiv:2106.14232、ACS Omega 2021年掲載)。分子物性予測、反応予測、分子生成といったタスクを、分子グラフへの深層学習として手軽に実行できます。
DGL-LifeSciは、大きく次の4つの要素で構成されています。
- 即実行可能なスクリプト:深層学習の知識が浅くても、コマンドラインからモデリングを実行できる
- プログラミングAPI:研究者が独自のパイプラインやモデルを開発できる
- 学習済みモデル:ファインチューニングや直接推論にそのまま使える
- 内蔵データセット:すぐに実験を始められる標準データを同梱
分子物性予測には、GCN、GAT、Neural Fingerprint(NF)、Weave、MPNN、AttentiveFP、GINといった代表的なモデルが実装済みで、SMILES(分子を文字列で表す記法)とラベルをCSVで用意するだけで、回帰・分類の予測を試せます。
4. DGLとPyTorch Geometricの比較
DGLとPyGは、いま最も広く使われている2大GNNフレームワークです。それぞれの傾向を整理します。
- バックエンド:DGLはPyTorch/TensorFlow/MXNetに対応、PyGはPyTorch専用
- API設計:PyGはPyTorchユーザーにとって親和性が高く直感的。DGLはメッセージパッシングを明示的に書く分、やや学習コストがある一方で柔軟
- コミュニティ規模:GitHubのStar数やライブラリ数ではPyGが先行する傾向。一方DGLは大規模グラフ・異種グラフで強みを持つ
4.1 ベンチマーク結果は「条件付き」で読む
Exxact社のベンチマークでは、PPI(タンパク質-タンパク質相互作用)データセットにおいて、DGLがPyGより約2.6倍高速という結果が報告されています(DGL:1,148秒 vs PyG:2,984秒、テスト精度はほぼ同等)。
ただし、この数値は10,000エポックの学習・NVIDIA GTX 1060という特定の環境での1例であり、モデルやデータセット、ハードウェア、ライブラリのバージョンが変われば結果も変わります。「DGLが常に2.6倍速い」という一般化はできない点に注意が必要です。実際の選定では、自分のタスクで小さく比較検証することをおすすめします。
5. 分子予測の実践的な使い方
5.1 DGL-LifeSciのインストール
環境構築の一例です(バージョンは公式ドキュメントで最新を確認してください。現行のDGLはPyTorch 1.12以降を要します)。なお、DGL-LifeSciは最終リリースやREADMEに記載された依存ライブラリのバージョンがやや古めです。最新のDGL/PyTorch/RDKit環境ではそのままでは動かない場合があるため、導入時には公式リポジトリのIssuesも参照しつつ、対応バージョンの組み合わせを確認することをおすすめします。
# 仮想環境の作成(Pythonは3.9〜3.11など現行サポート版を推奨)
conda create -n dgllife python=3.10
conda activate dgllife
# 依存関係のインストール
pip install torch
pip install dgl
pip install dgllife
pip install rdkit
5.2 メッセージパッシングAPIの基本
DGLのメッセージパッシングは、次の3段階で構成されます。この3つを自由に組み替えられることが、DGLの柔軟性の源です。
- メッセージ関数:エッジ(結合)を通じて情報を送信する
- 集約関数:各ノード(原子)が受信したメッセージをまとめる
- 更新関数:集約結果を使ってノードの特徴を更新する
import dgl.function as fn
# メッセージパッシングの実行例
graph.update_all(
fn.u_mul_e('ft', 'a', 'm'), # メッセージ関数: ノード特徴ftとエッジ特徴aを乗算
fn.sum('m', 'ft') # 集約関数: メッセージmを合計
)
5.3 分子物性予測のコード例
import pandas as pd
from dgllife.data import MoleculeCSVDataset
from dgllife.model import GCNPredictor
from dgllife.utils import SMILESToBigraph, CanonicalAtomFeaturizer
# データセットの読み込み(第1引数はpandasのDataFrame)
df = pd.read_csv('molecules.csv')
atom_featurizer = CanonicalAtomFeaturizer()
dataset = MoleculeCSVDataset(
df=df,
smiles_to_graph=SMILESToBigraph(add_self_loop=True,
node_featurizer=atom_featurizer),
smiles_column='smiles',
cache_file_path='./graph.bin'
)
# モデルの構築(GCNベースの物性予測器)
model = GCNPredictor(
in_feats=atom_featurizer.feat_size(),
hidden_feats=[64, 64],
n_tasks=1
)
※上記は構造を示す簡略例です。実務では、データを訓練・検証・テストに適切に分割し、未知データへの汎化性能を評価する必要があります。引数名やAPIはバージョンにより異なるため、公式ドキュメントで確認してください。
6. 異種グラフ(Heterogeneous Graph)と薬物相互作用予測
創薬では、薬物・標的タンパク質・遺伝子・疾患など、複数の種類のエンティティと、それらの間の多様な関係を同時に扱う必要があります。こうした複雑な構造を表現できるのが「異種グラフ」で、DGLは異種グラフを標準でサポートしている点が大きな強みです。
import dgl
# 異種グラフの作成例(ノード/エッジに複数タイプを持たせる)
hetero_graph = dgl.heterograph({
('drug', 'interacts', 'drug'): drug_drug_edges,
('drug', 'inhibits', 'target'): drug_target_edges,
('target', 'associated', 'gene'): target_gene_edges
})
6.1 薬物-薬物相互作用(DDI)予測への応用
異種グラフニューラルネットワーク(HGNN)は、薬物-薬物相互作用(DDI)予測で活発に研究されています。代表的なモデルを2つ紹介します。
- HetDDI:薬物分子グラフの構造情報と、生物医学知識グラフの意味的情報を統合した、事前学習済みHGNNモデル。査読誌Briefings in Bioinformatics(2023年)に発表され、複数のDDIタスクで高い精度が報告されています
- HGNN-DDI:複数の薬物関連データソースを統合して潜在的なDDIを予測するHGNNモデル。なお主な出典はarXivのプレプリント(arXiv:2508.18766、2025年)で、確立した査読済みの結果として扱うのは慎重にすべき段階です。ベンチマークで既存手法を上回る性能を著者らが報告している、という位置づけで捉えるのが適切です
これらは、薬の併用時に起こりうる相互作用を事前にスクリーニングする手がかりとして期待されますが、あくまで候補の優先順位付けや仮説生成を支援するものです。予測結果を安全性の証明として扱うことはできず、最終的には実験的検証と専門家の判断が不可欠です。
7. 学習リソースとDGLを試す手順
DGLをこれから学ぶ方には、次の流れがおすすめです。
- まずDGL-LifeSciから始める:即実行スクリプトと学習済みモデルで全体像をつかむ
- 既存モデルを比較する:GCN・GAT・AttentiveFPなどを同じデータで試す
- メッセージパッシングを自作する:分子構造の特徴を活かした独自モデルに挑戦
- 異種グラフへ広げる:薬物-標的-遺伝子など複雑な関係をモデル化
公式ドキュメント(dgl.ai)やDGL-LifeSciのGitHub、AAAI 2021やKDD 2020のAI創薬チュートリアルも、体系的に学べる良質な教材です。
8. まとめ:DGLは大規模・異種グラフで真価を発揮する選択肢
DGLは、PyTorch Geometricとは異なる設計思想を持つGNNフレームワークです。複数バックエンドへの対応、メッセージパッシングの柔軟な制御、大規模グラフや異種グラフへの強さが特徴で、薬物-標的-遺伝子のような複雑な関係を扱う創薬研究で特に力を発揮します。一方で、PyTorchエコシステムとの一体感や直感的なAPI、豊富なコミュニティ資源を重視するならPyGも有力です。両者は優劣ではなく「使い分け」の関係にあります。
最後に重要な前提として、DGLやDGL-LifeSciを使ったAI予測は、研究の意思決定を支援するツールであり、実験的検証・専門家の判断・規制対応を置き換えるものではありません。予測精度は学習データや適用範囲に強く依存します。また、DGLおよびDGL-LifeSci本体はApache-2.0ライセンスで提供されていますが、これらが依存する各種ライブラリや、利用するデータセット・学習済みモデルのライセンス条件は別途定められています。商用利用や再配布を想定する場合は、それぞれの条件を個別に確認することが欠かせません。これらを理解したうえで、まずはDGL-LifeSciから「別系統」のGNNを試してみてはいかがでしょうか。
参考リンク
- DGL 公式サイト:https://www.dgl.ai/
- DGL-LifeSci GitHub:https://github.com/awslabs/dgl-lifesci
- DGL-LifeSci 論文(arXiv:2106.14232 / ACS Omega 2021):https://arxiv.org/abs/2106.14232
- HetDDI 論文(Briefings in Bioinformatics 2023):https://academic.oup.com/bib/article/24/6/bbad385/7333670
- HGNN-DDI 論文(arXiv:2508.18766):https://arxiv.org/abs/2508.18766
- DGL vs PyG ベンチマーク(Exxact Blog):https://www.exxactcorp.com/blog/Deep-Learning/pytorch-geometric-vs-deep-graph-library
免責事項
本記事は、DGL(Deep Graph Library)およびAI創薬に関する情報提供を目的として作成されたものです。記事の内容は、公開時点で入手可能な文献・情報に基づいていますが、技術の進歩や新たな知見により、情報が変更される場合があります。記事に記載されたソフトウェアの使用結果や、それに基づく研究成果について、筆者および本ブログは一切の責任を負わないものとします。実際の創薬研究や臨床応用にあたっては、必ず最新の文献・公式ドキュメントを確認し、専門家の助言を得てください。
本記事は生成AIを活用して作成しています。内容については十分に精査しておりますが、誤りが含まれる可能性があります。お気づきの点がございましたら、コメントにてご指摘いただけますと幸いです。なお、本記事の内容に基づいて生じたいかなる損害についても、当サイトは責任を負いかねます。
Amazonでこの関連書籍「最短コースでわかる PyTorch &深層学習プログラミング」を見る関連YouTubeリンク

