pytdc
創薬向けAI対応データセット群「Therapeutics Data Commons」を活用するスキル。ADME・毒性・薬物標的相互作用(DTI)などのデータセット、ベンチマーク、スキャフォルド分割、分子オラクルを提供し、治療薬MLや薬理学的予測タスクに利用できる。
description の原文を見る
Therapeutics Data Commons. AI-ready drug discovery datasets (ADME, toxicity, DTI), benchmarks, scaffold splits, molecular oracles, for therapeutic ML and pharmacological prediction.
SKILL.md 本文
PyTDC (Therapeutics Data Commons)
概要
PyTDCは、創薬および医薬品開発向けのAI対応データセットとベンチマークを提供するオープンサイエンスプラットフォームです。治療パイプライン全体にわたるキュレーション済みデータセットに、標準化された評価メトリクスと意味のあるデータ分割でアクセスできます。3つのカテゴリに整理されています:単一インスタンス予測(分子/タンパク質特性)、マルチインスタンス予測(薬物標的相互作用、DDI)、および生成(分子生成、逆合成)。
このスキルを使用する場面
このスキルは以下の場合に使用してください:
- 創薬または治療MLデータセットで作業する場合
- 標準化された製薬タスクで機械学習モデルをベンチマークする場合
- 分子特性(ADME、毒性、生物活性)を予測する場合
- 薬物標的相互作用または薬物間相互作用を予測する場合
- 目的の特性を持つ新規分子を生成する場合
- 適切な訓練/テスト分割(スキャフォルド、コールドスプリット)を備えたキュレーション済みデータセットにアクセスする場合
- 特性最適化のための分子オラクルを使用する場合
インストールと設定
pipを使用してPyTDCをインストールします:
uv pip install PyTDC
最新バージョンにアップグレードするには:
uv pip install PyTDC --upgrade
コア依存関係(自動インストール):
- numpy、pandas、tqdm、seaborn、scikit_learn、fuzzywuzzy
追加パッケージは特定の機能に応じて自動的にインストールされます。
クイックスタート
任意のTDCデータセットにアクセスするための基本パターンは以下の構造に従います:
from tdc.<problem> import <Task>
data = <Task>(name='<Dataset>')
split = data.get_split(method='scaffold', seed=1, frac=[0.7, 0.1, 0.2])
df = data.get_data(format='df')
ここで:
<problem>:single_pred、multi_pred、またはgenerationのいずれか<Task>:特定のタスクカテゴリ(例:ADME、DTI、MolGen)<Dataset>:そのタスク内のデータセット名
例 - ADMEデータの読み込み:
from tdc.single_pred import ADME
data = ADME(name='Caco2_Wang')
split = data.get_split(method='scaffold')
# 'train'、'valid'、'test'のDataFrameを含む辞書を返します
単一インスタンス予測タスク
単一インスタンス予測は、個々の生物医学的エンティティ(分子、タンパク質など)の特性を予測することに関するものです。
利用可能なタスクカテゴリ
1. ADME(吸収、分布、代謝、排泄)
医薬品分子の薬物動態学的特性を予測します。
from tdc.single_pred import ADME
data = ADME(name='Caco2_Wang') # 腸透過性
# その他のデータセット:HIA_Hou、Bioavailability_Ma、Lipophilicity_AstraZeneca など
一般的なADMEデータセット:
- Caco2 - 腸透過性
- HIA - ヒト腸吸収
- Bioavailability - 経口バイオアベイラビリティ
- Lipophilicity - オクタノール水分配係数
- Solubility - 水溶解度
- BBB - 血液脳関門透過
- CYP - チトクロムP450代謝
2. 毒性(Tox)
化合物の毒性および有害影響を予測します。
from tdc.single_pred import Tox
data = Tox(name='hERG') # 心毒性
# その他のデータセット:AMES、DILI、Carcinogens_Lagunin など
一般的な毒性データセット:
- hERG - 心毒性
- AMES - 遺伝毒性
- DILI - 薬物誘発肝障害
- Carcinogens - 発がん性
- ClinTox - 臨床試験毒性
3. HTS(ハイスループットスクリーニング)
スクリーニングデータからの生物活性予測。
from tdc.single_pred import HTS
data = HTS(name='SARSCoV2_Vitro_Touret')
4. QM(量子力学)
分子の量子力学的特性。
from tdc.single_pred import QM
data = QM(name='QM7')
5. その他の単一予測タスク
- Yields:化学反応収率予測
- Epitope:生物製剤のエピトープ予測
- Develop:開発段階の予測
- CRISPROutcome:遺伝子編集結果の予測
データ形式
単一予測データセットは通常以下の列を含むDataFrameを返します:
Drug_IDまたはCompound_ID:一意の識別子DrugまたはX:SMILES文字列または分子表現Y:ターゲットラベル(連続値またはバイナリ)
マルチインスタンス予測タスク
マルチインスタンス予測は、複数の生物医学的エンティティ間の相互作用の特性を予測することに関するものです。
利用可能なタスクカテゴリ
1. DTI(薬物標的相互作用)
医薬品とタンパク質標的間の結合親和性を予測します。
from tdc.multi_pred import DTI
data = DTI(name='BindingDB_Kd')
split = data.get_split()
利用可能なデータセット:
- BindingDB_Kd - 解離定数(52,284対)
- BindingDB_IC50 - 半最大阻害濃度(991,486対)
- BindingDB_Ki - 阻害定数(375,032対)
- DAVIS、KIBA - キナーゼ結合データセット
データ形式: Drug_ID、Target_ID、Drug(SMILES)、Target(配列)、Y(結合親和性)
2. DDI(薬物間相互作用)
医薬品ペア間の相互作用を予測します。
from tdc.multi_pred import DDI
data = DDI(name='DrugBank')
split = data.get_split()
相互作用タイプを予測するマルチクラス分類タスク。データセットは1,706種類の医薬品を含む191,808のDDIペアを含みます。
3. PPI(タンパク質間相互作用)
タンパク質間相互作用を予測します。
from tdc.multi_pred import PPI
data = PPI(name='HuRI')
4. その他のマルチ予測タスク
- GDA:遺伝子疾患関連
- DrugRes:薬物耐性予測
- DrugSyn:薬物相乗予測
- PeptideMHC:ペプチドMHC結合
- AntibodyAff:抗体親和性予測
- MTI:miRNA標的相互作用
- Catalyst:触媒予測
- TrialOutcome:臨床試験結果予測
生成タスク
生成タスクは、目的の特性を持つ新規生物医学的エンティティを作成することに関するものです。
1. 分子生成(MolGen)
望ましい化学的特性を持つ多様で新規の分子を生成します。
from tdc.generation import MolGen
data = MolGen(name='ChEMBL_V29')
split = data.get_split()
特定の特性を最適化するためにオラクルと一緒に使用します:
from tdc import Oracle
oracle = Oracle(name='GSK3B')
score = oracle('CC(C)Cc1ccc(cc1)C(C)C(O)=O') # SMILESを評価
利用可能なすべてのオラクル関数については、references/oracles.mdを参照してください。
2. 逆合成(RetroSyn)
ターゲット分子を合成するために必要な反応物を予測します。
from tdc.generation import RetroSyn
data = RetroSyn(name='USPTO')
split = data.get_split()
データセットはUSPATOデータベースからの1,939,253の反応を含みます。
3. ペアード分子生成
分子ペア(例:プロドラッグ医薬品ペア)を生成します。
from tdc.generation import PairMolGen
data = PairMolGen(name='Prodrug')
詳細なオラクルドキュメンテーションと分子生成ワークフローについては、references/oracles.mdおよびscripts/molecular_generation.pyを参照してください。
ベンチマークグループ
ベンチマークグループは、システマティックなモデル評価のための関連データセットのキュレーション済みコレクションを提供します。
ADMETベンチマークグループ
from tdc.benchmark_group import admet_group
group = admet_group(path='data/')
# ベンチマークデータセットを取得
benchmark = group.get('Caco2_Wang')
predictions = {}
for seed in [1, 2, 3, 4, 5]:
train, valid = benchmark['train'], benchmark['valid']
# ここでモデルを訓練します
predictions[seed] = model.predict(benchmark['test'])
# 必要な5シードで評価
results = group.evaluate(predictions)
ADMETグループは22のデータセットを含みます(吸収、分布、代謝、排泄、毒性をカバー)。
その他のベンチマークグループ
利用可能なベンチマークグループには以下のコレクションが含まれます:
- ADMET特性
- 薬物標的相互作用
- 薬物相乗予測
- およびその他の特殊な治療タスク
ベンチマーク評価ワークフローについては、scripts/benchmark_evaluation.pyを参照してください。
データ関数
TDCは4つのカテゴリに整理された包括的なデータ処理ユーティリティを提供します。
1. データセット分割
さまざまな戦略を使用して訓練/検証/テスト分割を取得します:
# スキャフォルド分割(ほとんどのタスクのデフォルト)
split = data.get_split(method='scaffold', seed=1, frac=[0.7, 0.1, 0.2])
# ランダム分割
split = data.get_split(method='random', seed=42, frac=[0.8, 0.1, 0.1])
# コールド分割(DTI/DDIタスク用)
split = data.get_split(method='cold_drug', seed=1) # テストに未見の医薬品
split = data.get_split(method='cold_target', seed=1) # テストに未見の標的
利用可能な分割戦略:
random:ランダムシャッフリングscaffold:スキャフォルドベース(化学的多様性のため)cold_drug、cold_target、cold_drug_target:DTIタスク用temporal:時系列データセット用の時間ベース分割
2. モデル評価
標準化されたメトリクスを使用して評価します:
from tdc import Evaluator
# バイナリ分類用
evaluator = Evaluator(name='ROC-AUC')
score = evaluator(y_true, y_pred)
# 回帰用
evaluator = Evaluator(name='RMSE')
score = evaluator(y_true, y_pred)
利用可能なメトリクス: ROC-AUC、PR-AUC、F1、Accuracy、RMSE、MAE、R2、Spearman、Pearson、その他。
3. データ処理
TDCは11の主要な処理ユーティリティを提供します:
from tdc.chem_utils import MolConvert
# 分子フォーマット変換
converter = MolConvert(src='SMILES', dst='PyG')
pyg_graph = converter('CC(C)Cc1ccc(cc1)C(C)C(O)=O')
処理ユーティリティに含まれるもの:
- 分子フォーマット変換(SMILES、SELFIES、PyG、DGL、ECFP など)
- 分子フィルタ(PAINS、ドラッグライクネス)
- ラベル二値化とユニット変換
- データバランシング(オーバー/アンダーサンプリング)
- ペアデータの負サンプリング
- グラフ変換
- エンティティ取得(CIDからSMILES、UniProtから配列)
包括的なユーティリティドキュメンテーションについては、references/utilities.mdを参照してください。
4. 分子生成オラクル
TDCは分子最適化のための17以上のオラクル関数を提供します:
from tdc import Oracle
# 単一オラクル
oracle = Oracle(name='DRD2')
score = oracle('CC(C)Cc1ccc(cc1)C(C)C(O)=O')
# 複数オラクル
oracle = Oracle(name='JNK3')
scores = oracle(['SMILES1', 'SMILES2', 'SMILES3'])
完全なオラクルドキュメンテーションについては、references/oracles.mdを参照してください。
高度な機能
利用可能なデータセットを取得
from tdc.utils import retrieve_dataset_names
# すべてのADMEデータセットを取得
adme_datasets = retrieve_dataset_names('ADME')
# すべてのDTIデータセットを取得
dti_datasets = retrieve_dataset_names('DTI')
ラベル変換
# ラベルマッピングを取得
label_map = data.get_label_map(name='DrugBank')
# ラベルを変換
from tdc.chem_utils import label_transform
transformed = label_transform(y, from_unit='nM', to_unit='p')
データベースクエリ
from tdc.utils import cid2smiles, uniprot2seq
# PubChem CIDをSMILESに変換
smiles = cid2smiles(2244)
# UniProt IDをアミノ酸配列に変換
sequence = uniprot2seq('P12345')
一般的なワークフロー
ワークフロー1:単一予測モデルの訓練
完全な例についてはscripts/load_and_split_data.pyを参照してください:
from tdc.single_pred import ADME
from tdc import Evaluator
# データを読み込み
data = ADME(name='Caco2_Wang')
split = data.get_split(method='scaffold', seed=42)
train, valid, test = split['train'], split['valid'], split['test']
# モデルを訓練(ユーザーが実装)
# model.fit(train['Drug'], train['Y'])
# 評価
evaluator = Evaluator(name='MAE')
# score = evaluator(test['Y'], predictions)
ワークフロー2:ベンチマーク評価
複数シードと適切な評価プロトコルの完全な例についてはscripts/benchmark_evaluation.pyを参照してください。
ワークフロー3:オラクルを使用した分子生成
オラクル関数を使用した目標指向生成の例についてはscripts/molecular_generation.pyを参照してください。
リソース
このスキルには一般的なTDCワークフロー用のバンドルされたリソースが含まれています:
scripts/
load_and_split_data.py:さまざまな戦略を使用したTDCデータセットの読み込みと分割のテンプレートbenchmark_evaluation.py:適切な5シードプロトコルでベンチマークグループ評価を実行するためのテンプレートmolecular_generation.py:オラクル関数を使用した分子生成のテンプレート
references/
datasets.md:利用可能なすべてのデータセットの包括的なカタログ(タスクタイプ別に整理)oracles.md:すべての17以上の分子生成オラクルの完全なドキュメンテーションutilities.md:データ処理、分割、評価ユーティリティの詳細ガイド
追加リソース
- 公式ウェブサイト:https://tdcommons.ai
- ドキュメンテーション:https://tdc.readthedocs.io
- GitHub:https://github.com/mims-harvard/TDC
- 論文:NeurIPS 2021 - "Therapeutics Data Commons: Machine Learning Datasets and Tasks for Drug Discovery and Development"
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。