[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6M04ADS2F5AD7GEQXAA4AE7":3,"skill-same:01M6M04ADS2F5AD7GEQXAA4AE7":87},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":13,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":44,"install":45,"resources":58},"01M6M04ADS2F5AD7GEQXAA4AE7","pytdc",null,"Therapeutics Data Commons. AI-ready drug discovery datasets (ADME, toxicity, DTI), benchmarks, scaffold splits, molecular oracles, for therapeutic ML and pharmacological prediction.","endman100\u002Fskill-router-nexus","endman100","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F31997019?v=4","01M6KPDX17BYDWW4RRB0TNGGMX","01M6KPDX64Y2QBEWVFG5W5PWPF",0,"MIT","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30],"scaffold","ml","data","discovery","ready","datasets","benchmarks","molecular","drug discovery","for","splits","prediction","toxicity","2026-11-10 10:12:30",false,"---\nname: pytdc\ndescription: Therapeutics Data Commons. AI-ready drug discovery datasets (ADME, toxicity, DTI), benchmarks, scaffold splits, molecular oracles, for therapeutic ML and pharmacological prediction.\nlicense: MIT license\nmetadata:\n    skill-author: K-Dense Inc.\n---\n\n# PyTDC (Therapeutics Data Commons)\n\n## Overview\n\nPyTDC is an open-science platform providing AI-ready datasets and benchmarks for drug discovery and development. Access curated datasets spanning the entire therapeutics pipeline with standardized evaluation metrics and meaningful data splits, organized into three categories: single-instance prediction (molecular\u002Fprotein properties), multi-instance prediction (drug-target interactions, DDI), and generation (molecule generation, retrosynthesis).\n\n## When to Use This Skill\n\nThis skill should be used when:\n- Working with drug discovery or therapeutic ML datasets\n- Benchmarking machine learning models on standardized pharmaceutical tasks\n- Predicting molecular properties (ADME, toxicity, bioactivity)\n- Predicting drug-target or drug-drug interactions\n- Generating novel molecules with desired properties\n- Accessing curated datasets with proper train\u002Ftest splits (scaffold, cold-split)\n- Using molecular oracles for property optimization\n\n## Installation & Setup\n\nInstall PyTDC using pip:\n\n```bash\nuv pip install PyTDC\n```\n\nTo upgrade to the latest version:\n\n```bash\nuv pip install PyTDC --upgrade\n```\n\nCore dependencies (automatically installed):\n- numpy, pandas, tqdm, seaborn, scikit_learn, fuzzywuzzy\n\nAdditional packages are installed automatically as needed for specific features.\n\n## Quick Start\n\nThe basic pattern for accessing any TDC dataset follows this structure:\n\n```python\nfrom tdc.\u003Cproblem> import \u003CTask>\ndata = \u003CTask>(name='\u003CDataset>')\nsplit = data.get_split(method='scaffold', seed=1, frac=[0.7, 0.1, 0.2])\ndf = data.get_data(format='df')\n```\n\nWhere:\n- `\u003Cproblem>`: One of `single_pred`, `multi_pred`, or `generation`\n- `\u003CTask>`: Specific task category (e.g., ADME, DTI, MolGen)\n- `\u003CDataset>`: Dataset name within that task\n\n**Example - Loading ADME data:**\n\n```python\nfrom tdc.single_pred import ADME\ndata = ADME(name='Caco2_Wang')\nsplit = data.get_split(method='scaffold')\n# Returns dict with 'train', 'valid', 'test' DataFrames\n```\n\n## Single-Instance Prediction Tasks\n\nSingle-instance prediction involves forecasting properties of individual biomedical entities (molecules, proteins, etc.).\n\n### Available Task Categories\n\n#### 1. ADME (Absorption, Distribution, Metabolism, Excretion)\n\nPredict pharmacokinetic properties of drug molecules.\n\n```python\nfrom tdc.single_pred import ADME\ndata = ADME(name='Caco2_Wang')  # Intestinal permeability\n# Other datasets: HIA_Hou, Bioavailability_Ma, Lipophilicity_AstraZeneca, etc.\n```\n\n**Common ADME datasets:**\n- Caco2 - Intestinal permeability\n- HIA - Human intestinal absorption\n- Bioavailability - Oral bioavailability\n- Lipophilicity - Octanol-water partition coefficient\n- Solubility - Aqueous solubility\n- BBB - Blood-brain barrier penetration\n- CYP - Cytochrome P450 metabolism\n\n#### 2. Toxicity (Tox)\n\nPredict toxicity and adverse effects of compounds.\n\n```python\nfrom tdc.single_pred import Tox\ndata = Tox(name='hERG')  # Cardiotoxicity\n# Other datasets: AMES, DILI, Carcinogens_Lagunin, etc.\n```\n\n**Common toxicity datasets:**\n- hERG - Cardiac toxicity\n- AMES - Mutagenicity\n- DILI - Drug-induced liver injury\n- Carcinogens - Carcinogenicity\n- ClinTox - Clinical trial toxicity\n\n#### 3. HTS (High-Throughput Screening)\n\nBioactivity predictions from screening data.\n\n```python\nfrom tdc.single_pred import HTS\ndata = HTS(name='SARSCoV2_Vitro_Touret')\n```\n\n#### 4. QM (Quantum Mechanics)\n\nQuantum mechanical properties of molecules.\n\n```python\nfrom tdc.single_pred import QM\ndata = QM(name='QM7')\n```\n\n#### 5. Other Single Prediction Tasks\n\n- **Yields**: Chemical reaction yield prediction\n- **Epitope**: Epitope prediction for biologics\n- **Develop**: Development-stage predictions\n- **CRISPROutcome**: Gene editing outcome prediction\n\n### Data Format\n\nSingle prediction datasets typically return DataFrames with columns:\n- `Drug_ID` or `Compound_ID`: Unique identifier\n- `Drug` or `X`: SMILES string or molecular representation\n- `Y`: Target label (continuous or binary)\n\n## Multi-Instance Prediction Tasks\n\nMulti-instance prediction involves forecasting properties of interactions between multiple biomedical entities.\n\n### Available Task Categories\n\n#### 1. DTI (Drug-Target Interaction)\n\nPredict binding affinity between drugs and protein targets.\n\n```python\nfrom tdc.multi_pred import DTI\ndata = DTI(name='BindingDB_Kd')\nsplit = data.get_split()\n```\n\n**Available datasets:**\n- BindingDB_Kd - Dissociation constant (52,284 pairs)\n- BindingDB_IC50 - Half-maximal inhibitory concentration (991,486 pairs)\n- BindingDB_Ki - Inhibition constant (375,032 pairs)\n- DAVIS, KIBA - Kinase binding datasets\n\n**Data format:** Drug_ID, Target_ID, Drug (SMILES), Target (sequence), Y (binding affinity)\n\n#### 2. DDI (Drug-Drug Interaction)\n\nPredict interactions between drug pairs.\n\n```python\nfrom tdc.multi_pred import DDI\ndata = DDI(name='DrugBank')\nsplit = data.get_split()\n```\n\nMulti-class classification task predicting interaction types. Dataset contains 191,808 DDI pairs with 1,706 drugs.\n\n#### 3. PPI (Protein-Protein Interaction)\n\nPredict protein-protein interactions.\n\n```python\nfrom tdc.multi_pred import PPI\ndata = PPI(name='HuRI')\n```\n\n#### 4. Other Multi-Prediction Tasks\n\n- **GDA**: Gene-disease associations\n- **DrugRes**: Drug resistance prediction\n- **DrugSyn**: Drug synergy prediction\n- **PeptideMHC**: Peptide-MHC binding\n- **AntibodyAff**: Antibody affinity prediction\n- **MTI**: miRNA-target interactions\n- **Catalyst**: Catalyst prediction\n- **TrialOutcome**: Clinical trial outcome prediction\n\n## Generation Tasks\n\nGeneration tasks involve creating novel biomedical entities with desired properties.\n\n### 1. Molecular Generation (MolGen)\n\nGenerate diverse, novel molecules with desirable chemical properties.\n\n```python\nfrom tdc.generation import MolGen\ndata = MolGen(name='ChEMBL_V29')\nsplit = data.get_split()\n```\n\nUse with oracles to optimize for specific properties:\n\n```python\nfrom tdc import Oracle\noracle = Oracle(name='GSK3B')\nscore = oracle('CC(C)Cc1ccc(cc1)C(C)C(O)=O')  # Evaluate SMILES\n```\n\nSee `references\u002Foracles.md` for all available oracle functions.\n\n### 2. Retrosynthesis (RetroSyn)\n\nPredict reactants needed to synthesize a target molecule.\n\n```python\nfrom tdc.generation import RetroSyn\ndata = RetroSyn(name='USPTO')\nsplit = data.get_split()\n```\n\nDataset contains 1,939,253 reactions from USPTO database.\n\n### 3. Paired Molecule Generation\n\nGenerate molecule pairs (e.g., prodrug-drug pairs).\n\n```python\nfrom tdc.generation import PairMolGen\ndata = PairMolGen(name='Prodrug')\n```\n\nFor detailed oracle documentation and molecular generation workflows, refer to `references\u002Foracles.md` and `scripts\u002Fmolecular_generation.py`.\n\n## Benchmark Groups\n\nBenchmark groups provide curated collections of related datasets for systematic model evaluation.\n\n### ADMET Benchmark Group\n\n```python\nfrom tdc.benchmark_group import admet_group\ngroup = admet_group(path='data\u002F')\n\n# Get benchmark datasets\nbenchmark = group.get('Caco2_Wang')\npredictions = {}\n\nfor seed in [1, 2, 3, 4, 5]:\n    train, valid = benchmark['train'], benchmark['valid']\n    # Train model here\n    predictions[seed] = model.predict(benchmark['test'])\n\n# Evaluate with required 5 seeds\nresults = group.evaluate(predictions)\n```\n\n**ADMET Group includes 22 datasets** covering absorption, distribution, metabolism, excretion, and toxicity.\n\n### Other Benchmark Groups\n\nAvailable benchmark groups include collections for:\n- ADMET properties\n- Drug-target interactions\n- Drug combination prediction\n- And more specialized therapeutic tasks\n\nFor benchmark evaluation workflows, see `scripts\u002Fbenchmark_evaluation.py`.\n\n## Data Functions\n\nTDC provides comprehensive data processing utilities organized into four categories.\n\n### 1. Dataset Splits\n\nRetrieve train\u002Fvalidation\u002Ftest partitions with various strategies:\n\n```python\n# Scaffold split (default for most tasks)\nsplit = data.get_split(method='scaffold', seed=1, frac=[0.7, 0.1, 0.2])\n\n# Random split\nsplit = data.get_split(method='random', seed=42, frac=[0.8, 0.1, 0.1])\n\n# Cold split (for DTI\u002FDDI tasks)\nsplit = data.get_split(method='cold_drug', seed=1)  # Unseen drugs in test\nsplit = data.get_split(method='cold_target', seed=1)  # Unseen targets in test\n```\n\n**Available split strategies:**\n- `random`: Random shuffling\n- `scaffold`: Scaffold-based (for chemical diversity)\n- `cold_drug`, `cold_target`, `cold_drug_target`: For DTI tasks\n- `temporal`: Time-based splits for temporal datasets\n\n### 2. Model Evaluation\n\nUse standardized metrics for evaluation:\n\n```python\nfrom tdc import Evaluator\n\n# For binary classification\nevaluator = Evaluator(name='ROC-AUC')\nscore = evaluator(y_true, y_pred)\n\n# For regression\nevaluator = Evaluator(name='RMSE')\nscore = evaluator(y_true, y_pred)\n```\n\n**Available metrics:** ROC-AUC, PR-AUC, F1, Accuracy, RMSE, MAE, R2, Spearman, Pearson, and more.\n\n### 3. Data Processing\n\nTDC provides 11 key processing utilities:\n\n```python\nfrom tdc.chem_utils import MolConvert\n\n# Molecule format conversion\nconverter = MolConvert(src='SMILES', dst='PyG')\npyg_graph = converter('CC(C)Cc1ccc(cc1)C(C)C(O)=O')\n```\n\n**Processing utilities include:**\n- Molecule format conversion (SMILES, SELFIES, PyG, DGL, ECFP, etc.)\n- Molecule filters (PAINS, drug-likeness)\n- Label binarization and unit conversion\n- Data balancing (over\u002Funder-sampling)\n- Negative sampling for pair data\n- Graph transformation\n- Entity retrieval (CID to SMILES, UniProt to sequence)\n\nFor comprehensive utilities documentation, see `references\u002Futilities.md`.\n\n### 4. Molecule Generation Oracles\n\nTDC provides 17+ oracle functions for molecular optimization:\n\n```python\nfrom tdc import Oracle\n\n# Single oracle\noracle = Oracle(name='DRD2')\nscore = oracle('CC(C)Cc1ccc(cc1)C(C)C(O)=O')\n\n# Multiple oracles\noracle = Oracle(name='JNK3')\nscores = oracle(['SMILES1', 'SMILES2', 'SMILES3'])\n```\n\nFor complete oracle documentation, see `references\u002Foracles.md`.\n\n## Advanced Features\n\n### Retrieve Available Datasets\n\n```python\nfrom tdc.utils import retrieve_dataset_names\n\n# Get all ADME datasets\nadme_datasets = retrieve_dataset_names('ADME')\n\n# Get all DTI datasets\ndti_datasets = retrieve_dataset_names('DTI')\n```\n\n### Label Transformations\n\n```python\n# Get label mapping\nlabel_map = data.get_label_map(name='DrugBank')\n\n# Convert labels\nfrom tdc.chem_utils import label_transform\ntransformed = label_transform(y, from_unit='nM', to_unit='p')\n```\n\n### Database Queries\n\n```python\nfrom tdc.utils import cid2smiles, uniprot2seq\n\n# Convert PubChem CID to SMILES\nsmiles = cid2smiles(2244)\n\n# Convert UniProt ID to amino acid sequence\nsequence = uniprot2seq('P12345')\n```\n\n## Common Workflows\n\n### Workflow 1: Train a Single Prediction Model\n\nSee `scripts\u002Fload_and_split_data.py` for a complete example:\n\n```python\nfrom tdc.single_pred import ADME\nfrom tdc import Evaluator\n\n# Load data\ndata = ADME(name='Caco2_Wang')\nsplit = data.get_split(method='scaffold', seed=42)\n\ntrain, valid, test = split['train'], split['valid'], split['test']\n\n# Train model (user implements)\n# model.fit(train['Drug'], train['Y'])\n\n# Evaluate\nevaluator = Evaluator(name='MAE')\n# score = evaluator(test['Y'], predictions)\n```\n\n### Workflow 2: Benchmark Evaluation\n\nSee `scripts\u002Fbenchmark_evaluation.py` for a complete example with multiple seeds and proper evaluation protocol.\n\n### Workflow 3: Molecular Generation with Oracles\n\nSee `scripts\u002Fmolecular_generation.py` for an example of goal-directed generation using oracle functions.\n\n## Resources\n\nThis skill includes bundled resources for common TDC workflows:\n\n### scripts\u002F\n\n- `load_and_split_data.py`: Template for loading and splitting TDC datasets with various strategies\n- `benchmark_evaluation.py`: Template for running benchmark group evaluations with proper 5-seed protocol\n- `molecular_generation.py`: Template for molecular generation using oracle functions\n\n### references\u002F\n\n- `datasets.md`: Comprehensive catalog of all available datasets organized by task type\n- `oracles.md`: Complete documentation of all 17+ molecule generation oracles\n- `utilities.md`: Detailed guide to data processing, splitting, and evaluation utilities\n\n## Additional Resources\n\n- **Official Website**: https:\u002F\u002Ftdcommons.ai\n- **Documentation**: https:\u002F\u002Ftdc.readthedocs.io\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fmims-harvard\u002FTDC\n- **Paper**: NeurIPS 2021 - \"Therapeutics Data Commons: Machine Learning Datasets and Tasks for Drug Discovery and Development\"\n\n","# PyTDC (Therapeutics Data Commons)\n\n## Overview\n\nPyTDC is an open-science platform providing AI-ready datasets and benchmarks for drug discovery and development. Access curated datasets spanning the entire therapeutics pipeline with standardized evaluation metrics and meaningful data splits, organized into three categories: single-instance prediction (molecular\u002Fprotein properties), multi-instance prediction (drug-target interactions, DDI), and generation (molecule generation, retrosynthesis).\n\n## When to Use This Skill\n\nThis skill should be used when:\n- Working with drug discovery or therapeutic ML datasets\n- Benchmarking machine learning models on standardized pharmaceutical tasks\n- Predicting molecular properties (ADME, toxicity, bioactivity)\n- Predicting drug-target or drug-drug interactions\n- Generating novel molecules with desired properties\n- Accessing curated datasets with proper train\u002Ftest splits (scaffold, cold-split)\n- Using molecular oracles for property optimization\n\n## Installation & Setup\n\nInstall PyTDC using pip:\n\n```bash\nuv pip install PyTDC\n```\n\nTo upgrade to the latest version:\n\n```bash\nuv pip install PyTDC --upgrade\n```\n\nCore dependencies (automatically installed):\n- numpy, pandas, tqdm, seaborn, scikit_learn, fuzzywuzzy\n\nAdditional packages are installed automatically as needed for specific features.\n\n## Quick Start\n\nThe basic pattern for accessing any TDC dataset follows this structure:\n\n```python\nfrom tdc.\u003Cproblem> import \u003CTask>\ndata = \u003CTask>(name='\u003CDataset>')\nsplit = data.get_split(method='scaffold', seed=1, frac=[0.7, 0.1, 0.2])\ndf = data.get_data(format='df')\n```\n\nWhere:\n- `\u003Cproblem>`: One of `single_pred`, `multi_pred`, or `generation`\n- `\u003CTask>`: Specific task category (e.g., ADME, DTI, MolGen)\n- `\u003CDataset>`: Dataset name within that task\n\n**Example - Loading ADME data:**\n\n```python\nfrom tdc.single_pred import ADME\ndata = ADME(name='Caco2_Wang')\nsplit = data.get_split(method='scaffold')\n# Returns dict with 'train', 'valid', 'test' DataFrames\n```\n\n## Single-Instance Prediction Tasks\n\nSingle-instance prediction involves forecasting properties of individual biomedical entities (molecules, proteins, etc.).\n\n### Available Task Categories\n\n#### 1. ADME (Absorption, Distribution, Metabolism, Excretion)\n\nPredict pharmacokinetic properties of drug molecules.\n\n```python\nfrom tdc.single_pred import ADME\ndata = ADME(name='Caco2_Wang')  # Intestinal permeability\n# Other datasets: HIA_Hou, Bioavailability_Ma, Lipophilicity_AstraZeneca, etc.\n```\n\n**Common ADME datasets:**\n- Caco2 - Intestinal permeability\n- HIA - Human intestinal absorption\n- Bioavailability - Oral bioavailability\n- Lipophilicity - Octanol-water partition coefficient\n- Solubility - Aqueous solubility\n- BBB - Blood-brain barrier penetration\n- CYP - Cytochrome P450 metabolism\n\n#### 2. Toxicity (Tox)\n\nPredict toxicity and adverse effects of compounds.\n\n```python\nfrom tdc.single_pred import Tox\ndata = Tox(name='hERG')  # Cardiotoxicity\n# Other datasets: AMES, DILI, Carcinogens_Lagunin, etc.\n```\n\n**Common toxicity datasets:**\n- hERG - Cardiac toxicity\n- AMES - Mutagenicity\n- DILI - Drug-induced liver injury\n- Carcinogens - Carcinogenicity\n- ClinTox - Clinical trial toxicity\n\n#### 3. HTS (High-Throughput Screening)\n\nBioactivity predictions from screening data.\n\n```python\nfrom tdc.single_pred import HTS\ndata = HTS(name='SARSCoV2_Vitro_Touret')\n```\n\n#### 4. QM (Quantum Mechanics)\n\nQuantum mechanical properties of molecules.\n\n```python\nfrom tdc.single_pred import QM\ndata = QM(name='QM7')\n```\n\n#### 5. Other Single Prediction Tasks\n\n- **Yields**: Chemical reaction yield prediction\n- **Epitope**: Epitope prediction for biologics\n- **Develop**: Development-stage predictions\n- **CRISPROutcome**: Gene editing outcome prediction\n\n### Data Format\n\nSingle prediction datasets typically return DataFrames with columns:\n- `Drug_ID` or `Compound_ID`: Unique identifier\n- `Drug` or `X`: SMILES string or molecular representation\n- `Y`: Target label (continuous or binary)\n\n## Multi-Instance Prediction Tasks\n\nMulti-instance prediction involves forecasting properties of interactions between multiple biomedical entities.\n\n### Available Task Categories\n\n#### 1. DTI (Drug-Target Interaction)\n\nPredict binding affinity between drugs and protein targets.\n\n```python\nfrom tdc.multi_pred import DTI\ndata = DTI(name='BindingDB_Kd')\nsplit = data.get_split()\n```\n\n**Available datasets:**\n- BindingDB_Kd - Dissociation constant (52,284 pairs)\n- BindingDB_IC50 - Half-maximal inhibitory concentration (991,486 pairs)\n- BindingDB_Ki - Inhibition constant (375,032 pairs)\n- DAVIS, KIBA - Kinase binding datasets\n\n**Data format:** Drug_ID, Target_ID, Drug (SMILES), Target (sequence), Y (binding affinity)\n\n#### 2. DDI (Drug-Drug Interaction)\n\nPredict interactions between drug pairs.\n\n```python\nfrom tdc.multi_pred import DDI\ndata = DDI(name='DrugBank')\nsplit = data.get_split()\n```\n\nMulti-class classification task predicting interaction types. Dataset contains 191,808 DDI pairs with 1,706 drugs.\n\n#### 3. PPI (Protein-Protein Interaction)\n\nPredict protein-protein interactions.\n\n```python\nfrom tdc.multi_pred import PPI\ndata = PPI(name='HuRI')\n```\n\n#### 4. Other Multi-Prediction Tasks\n\n- **GDA**: Gene-disease associations\n- **DrugRes**: Drug resistance prediction\n- **DrugSyn**: Drug synergy prediction\n- **PeptideMHC**: Peptide-MHC binding\n- **AntibodyAff**: Antibody affinity prediction\n- **MTI**: miRNA-target interactions\n- **Catalyst**: Catalyst prediction\n- **TrialOutcome**: Clinical trial outcome prediction\n\n## Generation Tasks\n\nGeneration tasks involve creating novel biomedical entities with desired properties.\n\n### 1. Molecular Generation (MolGen)\n\nGenerate diverse, novel molecules with desirable chemical properties.\n\n```python\nfrom tdc.generation import MolGen\ndata = MolGen(name='ChEMBL_V29')\nsplit = data.get_split()\n```\n\nUse with oracles to optimize for specific properties:\n\n```python\nfrom tdc import Oracle\noracle = Oracle(name='GSK3B')\nscore = oracle('CC(C)Cc1ccc(cc1)C(C)C(O)=O')  # Evaluate SMILES\n```\n\nSee `references\u002Foracles.md` for all available oracle functions.\n\n### 2. Retrosynthesis (RetroSyn)\n\nPredict reactants needed to synthesize a target molecule.\n\n```python\nfrom tdc.generation import RetroSyn\ndata = RetroSyn(name='USPTO')\nsplit = data.get_split()\n```\n\nDataset contains 1,939,253 reactions from USPTO database.\n\n### 3. Paired Molecule Generation\n\nGenerate molecule pairs (e.g., prodrug-drug pairs).\n\n```python\nfrom tdc.generation import PairMolGen\ndata = PairMolGen(name='Prodrug')\n```\n\nFor detailed oracle documentation and molecular generation workflows, refer to `references\u002Foracles.md` and `scripts\u002Fmolecular_generation.py`.\n\n## Benchmark Groups\n\nBenchmark groups provide curated collections of related datasets for systematic model evaluation.\n\n### ADMET Benchmark Group\n\n```python\nfrom tdc.benchmark_group import admet_group\ngroup = admet_group(path='data\u002F')\n\n# Get benchmark datasets\nbenchmark = group.get('Caco2_Wang')\npredictions = {}\n\nfor seed in [1, 2, 3, 4, 5]:\n    train, valid = benchmark['train'], benchmark['valid']\n    # Train model here\n    predictions[seed] = model.predict(benchmark['test'])\n\n# Evaluate with required 5 seeds\nresults = group.evaluate(predictions)\n```\n\n**ADMET Group includes 22 datasets** covering absorption, distribution, metabolism, excretion, and toxicity.\n\n### Other Benchmark Groups\n\nAvailable benchmark groups include collections for:\n- ADMET properties\n- Drug-target interactions\n- Drug combination prediction\n- And more specialized therapeutic tasks\n\nFor benchmark evaluation workflows, see `scripts\u002Fbenchmark_evaluation.py`.\n\n## Data Functions\n\nTDC provides comprehensive data processing utilities organized into four categories.\n\n### 1. Dataset Splits\n\nRetrieve train\u002Fvalidation\u002Ftest partitions with various strategies:\n\n```python\n# Scaffold split (default for most tasks)\nsplit = data.get_split(method='scaffold', seed=1, frac=[0.7, 0.1, 0.2])\n\n# Random split\nsplit = data.get_split(method='random', seed=42, frac=[0.8, 0.1, 0.1])\n\n# Cold split (for DTI\u002FDDI tasks)\nsplit = data.get_split(method='cold_drug', seed=1)  # Unseen drugs in test\nsplit = data.get_split(method='cold_target', seed=1)  # Unseen targets in test\n```\n\n**Available split strategies:**\n- `random`: Random shuffling\n- `scaffold`: Scaffold-based (for chemical diversity)\n- `cold_drug`, `cold_target`, `cold_drug_target`: For DTI tasks\n- `temporal`: Time-based splits for temporal datasets\n\n### 2. Model Evaluation\n\nUse standardized metrics for evaluation:\n\n```python\nfrom tdc import Evaluator\n\n# For binary classification\nevaluator = Evaluator(name='ROC-AUC')\nscore = evaluator(y_true, y_pred)\n\n# For regression\nevaluator = Evaluator(name='RMSE')\nscore = evaluator(y_true, y_pred)\n```\n\n**Available metrics:** ROC-AUC, PR-AUC, F1, Accuracy, RMSE, MAE, R2, Spearman, Pearson, and more.\n\n### 3. Data Processing\n\nTDC provides 11 key processing utilities:\n\n```python\nfrom tdc.chem_utils import MolConvert\n\n# Molecule format conversion\nconverter = MolConvert(src='SMILES', dst='PyG')\npyg_graph = converter('CC(C)Cc1ccc(cc1)C(C)C(O)=O')\n```\n\n**Processing utilities include:**\n- Molecule format conversion (SMILES, SELFIES, PyG, DGL, ECFP, etc.)\n- Molecule filters (PAINS, drug-likeness)\n- Label binarization and unit conversion\n- Data balancing (over\u002Funder-sampling)\n- Negative sampling for pair data\n- Graph transformation\n- Entity retrieval (CID to SMILES, UniProt to sequence)\n\nFor comprehensive utilities documentation, see `references\u002Futilities.md`.\n\n### 4. Molecule Generation Oracles\n\nTDC provides 17+ oracle functions for molecular optimization:\n\n```python\nfrom tdc import Oracle\n\n# Single oracle\noracle = Oracle(name='DRD2')\nscore = oracle('CC(C)Cc1ccc(cc1)C(C)C(O)=O')\n\n# Multiple oracles\noracle = Oracle(name='JNK3')\nscores = oracle(['SMILES1', 'SMILES2', 'SMILES3'])\n```\n\nFor complete oracle documentation, see `references\u002Foracles.md`.\n\n## Advanced Features\n\n### Retrieve Available Datasets\n\n```python\nfrom tdc.utils import retrieve_dataset_names\n\n# Get all ADME datasets\nadme_datasets = retrieve_dataset_names('ADME')\n\n# Get all DTI datasets\ndti_datasets = retrieve_dataset_names('DTI')\n```\n\n### Label Transformations\n\n```python\n# Get label mapping\nlabel_map = data.get_label_map(name='DrugBank')\n\n# Convert labels\nfrom tdc.chem_utils import label_transform\ntransformed = label_transform(y, from_unit='nM', to_unit='p')\n```\n\n### Database Queries\n\n```python\nfrom tdc.utils import cid2smiles, uniprot2seq\n\n# Convert PubChem CID to SMILES\nsmiles = cid2smiles(2244)\n\n# Convert UniProt ID to amino acid sequence\nsequence = uniprot2seq('P12345')\n```\n\n## Common Workflows\n\n### Workflow 1: Train a Single Prediction Model\n\nSee `scripts\u002Fload_and_split_data.py` for a complete example:\n\n```python\nfrom tdc.single_pred import ADME\nfrom tdc import Evaluator\n\n# Load data\ndata = ADME(name='Caco2_Wang')\nsplit = data.get_split(method='scaffold', seed=42)\n\ntrain, valid, test = split['train'], split['valid'], split['test']\n\n# Train model (user implements)\n# model.fit(train['Drug'], train['Y'])\n\n# Evaluate\nevaluator = Evaluator(name='MAE')\n# score = evaluator(test['Y'], predictions)\n```\n\n### Workflow 2: Benchmark Evaluation\n\nSee `scripts\u002Fbenchmark_evaluation.py` for a complete example with multiple seeds and proper evaluation protocol.\n\n### Workflow 3: Molecular Generation with Oracles\n\nSee `scripts\u002Fmolecular_generation.py` for an example of goal-directed generation using oracle functions.\n\n## Resources\n\nThis skill includes bundled resources for common TDC workflows:\n\n### scripts\u002F\n\n- `load_and_split_data.py`: Template for loading and splitting TDC datasets with various strategies\n- `benchmark_evaluation.py`: Template for running benchmark group evaluations with proper 5-seed protocol\n- `molecular_generation.py`: Template for molecular generation using oracle functions\n\n### references\u002F\n\n- `datasets.md`: Comprehensive catalog of all available datasets organized by task type\n- `oracles.md`: Complete documentation of all 17+ molecule generation oracles\n- `utilities.md`: Detailed guide to data processing, splitting, and evaluation utilities\n\n## Additional Resources\n\n- **Official Website**: https:\u002F\u002Ftdcommons.ai\n- **Documentation**: https:\u002F\u002Ftdc.readthedocs.io\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fmims-harvard\u002FTDC\n- **Paper**: NeurIPS 2021 - \"Therapeutics Data Commons: Machine Learning Datasets and Tasks for Drug Discovery and Development\"\n\n",{"name":5,"license":36,"metadata":37,"description":7},"MIT license",{"skill-author":38},"K-Dense Inc.","main","f19b254e8975d0bfddb394686706106930d7964d","Science\u002Fchemistry-and-drug-discovery\u002Fpytdc","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus","https:\u002F\u002Fgithub.com\u002Fendman100","2026-11-12 18:13:37",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add endman100\u002Fskill-router-nexus --skill pytdc",{"tool":51,"command":52},"bunx","bunx skills add endman100\u002Fskill-router-nexus --skill pytdc",{"tool":54,"command":55},"pnpm","pnpm dlx skills add endman100\u002Fskill-router-nexus --skill pytdc","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002FSKILL.md",true,[59,65,69,73,79,83],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"references\u002Fdatasets.md","REFERENCE","参考文档",8792,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002Freferences\u002Fdatasets.md",{"path":66,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":67,"sourceHtmlUrl":68},"references\u002Foracles.md",10051,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002Freferences\u002Foracles.md",{"path":70,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Futilities.md",16045,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002Freferences\u002Futilities.md",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"scripts\u002Fbenchmark_evaluation.py","SCRIPT","脚本",9238,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002Fscripts\u002Fbenchmark_evaluation.py",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"scripts\u002Fload_and_split_data.py",6350,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002Fscripts\u002Fload_and_split_data.py",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"scripts\u002Fmolecular_generation.py",11335,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fchemistry-and-drug-discovery\u002Fpytdc\u002Fscripts\u002Fmolecular_generation.py",[88,112,149,172,181,205],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":92,"sourceHtmlUrl":93,"categories":94,"keywords":100,"publishedAt":31},"01M6MPCT5BXVER8HQZTW3QE9AS","create-master","基于佛教经典文献，生成特定高僧大德的 AI 教学角色","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FMetaphysics-and-Spirituality\u002FMaster-skill\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FMetaphysics-and-Spirituality\u002FMaster-skill\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[101,102,103,104,105,106,107,108,109,110,111],"create master","master","create","生成","true","webfetch","edit","write","read","grep","Bash",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":116,"sourceHtmlUrl":117,"categories":118,"keywords":130,"publishedAt":31},"01M6M43AKE95Y64E1JRXEF5QQ3","writing-dna-skill","从至少 20 篇完整文章中蒸馏可复用的写作 DNA，分析语言、文章结构、选题逻辑、素材策略、认知框架和视觉风格，并生成 Writing-DNA.md；按该 DNA 写作时会读取全部蒸馏产物和 5 篇相关原文。用于中英文作者、账号、品牌或出版物的风格分析与一致性写作。 Distill reusable Writing DNA from at least 20 complete articles for Chinese or English authors, publications, brands, and accounts; use for language, structure, topic logic, source strategy, cognitive-frame, and visual-style analysis.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fwriting-dna-skill\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fwriting-dna-skill\u002FSKILL.md",[119,124,127],{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":125,"categoryName":126,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":128,"categoryName":129,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000036","内容创作者",[131,132,133,134,135,136,137,138,139,140,141,142,143,104,144,145,146,27,147,148],"writing dna skill","DNA","writing","strategy","english","logic","visual","structure","chinese","reusable","use","style","distill","analysis","frame","source","at","complete",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":153,"sourceHtmlUrl":154,"categories":155,"keywords":158,"publishedAt":31},"01M6M428TTCGQ4ME3KY99VN037","stop-slop","Remove AI writing patterns from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI tells.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fstop-slop\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fstop-slop\u002FSKILL.md",[156,157],{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},{"categoryNo":128,"categoryName":129,"taxonomyType":98,"taxonomyTypeDesc":99},[159,160,161,162,163,164,165,166,167,141,168,169,170,27,171,133],"slop","stop slop","stop","drafting","when","drafts","https","patterns","prose","remove","editing","text","content",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":176,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":31},"01M6M41X0B7EBX42TK435DMGGR","shuorenhua","检查和清理中英文文本里的 AI 套路，适用于“去 AI 味”“说人话”“自然一点”“别像模板”“先标问题”这类改写和审稿需求；按场景控制力度，同时保留事实、术语、语域和责任主体。","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fshuorenhua\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fshuorenhua\u002FSKILL.md",[],[174,180],"文本",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":185,"sourceHtmlUrl":186,"categories":187,"keywords":188,"publishedAt":31},"01M6M3ZD12WBEW5KXKDM4N6DFG","naming","Name products, SaaS, brands, open source projects, bots, and apps. Use when the user needs to name something, find a brand name, or pick a product name. Metaphor-driven process that produces memorable, meaningful names and avoids AI slop.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fnaming-main\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fnaming-main\u002FSKILL.md",[],[183,189,190,191,192,193,141,194,109,146,195,196,197,198,111,199,200,201,202,163,203,204,159],"repo","websearch","product name","apps","bots","view","brand","pick","gh","projects","open","saas","open source","product","describe","ai slop",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":209,"sourceHtmlUrl":210,"categories":211,"keywords":213,"publishedAt":31},"01M6M3YVXAFAAWJ7F6JMPFREYE","humanizer-zh","去除文本中的 AI 生成痕迹。适用于编辑或审阅文本，使其听起来更自然、更像人类书写。\n基于维基百科的\"AI 写作特征\"综合指南。检测并修复以下模式：夸大的象征意义、\n宣传性语言、以 -ing 结尾的肤浅分析、模糊的归因、破折号过度使用、三段式法则、\nAI 词汇、否定式排比、过多的连接性短语。","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fhumanizer-zh\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fhumanizer-zh\u002FSKILL.md",[212],{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},[214,215,216,109,108,107,133,104,180,217,159,161],"humanizer","zh","humanizer zh","翻译"]