diff --git a/_toc.yml b/_toc.yml index 104102d..7fd2bf6 100644 --- a/_toc.yml +++ b/_toc.yml @@ -23,3 +23,4 @@ parts: - caption: Tutorials chapters: - file: tutorials/brain-disorder-diagnosis/notebook + - file: tutorials/drug-target-interaction/notebook-cross-domain diff --git a/tutorials/drug-target-interaction/configs.py b/tutorials/drug-target-interaction/configs.py new file mode 100644 index 0000000..dd4ba45 --- /dev/null +++ b/tutorials/drug-target-interaction/configs.py @@ -0,0 +1,109 @@ +from yacs.config import CfgNode + +_C = CfgNode() + +# ---------------------------------------------------------------------------- # +# DATA setting +# ---------------------------------------------------------------------------- # +_C.DATA = CfgNode() +_C.DATA.DATASET = None # Name of the dataset to use +_C.DATA.SPLIT = None # Data splitting strategy + +# ---------------------------------------------------------------------------- # +# Drug feature extractor +# ---------------------------------------------------------------------------- # +_C.DRUG = CfgNode() +_C.DRUG.NODE_IN_FEATS = 7 # Number of input node features +_C.DRUG.NODE_IN_EMBEDDING = ( + 128 # Dimensionality of input node features after linear transformation +) +_C.DRUG.PADDING = True # Whether to apply padding +_C.DRUG.HIDDEN_LAYERS = [ + 128, + 128, + 128, +] # Sizes of hidden layers in the GCN feature extractor +_C.DRUG.MAX_NODES = 290 # Max number of nodes to pad to (used when PADDING=True) + +# ---------------------------------------------------------------------------- # +# Protein feature extractor +# ---------------------------------------------------------------------------- # +_C.PROTEIN = CfgNode() +_C.PROTEIN.NUM_FILTERS = [ + 128, + 128, + 128, +] # Number of filters in each convolutional layer +_C.PROTEIN.KERNEL_SIZE = [3, 6, 9] # Kernel size for each convolutional layer +_C.PROTEIN.EMBEDDING_DIM = 128 # Dimension of character embedding for amino acids +_C.PROTEIN.PADDING = True # Whether to apply zero-padding to the embedding + +# ---------------------------------------------------------------------------- # +# BCN setting +# ---------------------------------------------------------------------------- # +_C.BCN = CfgNode() +_C.BCN.HEADS = 2 # Number of attention heads in the Bilinear Attention Network + +# ---------------------------------------------------------------------------- # +# MLP decoder +# ---------------------------------------------------------------------------- # +_C.DECODER = CfgNode() +_C.DECODER.NAME = "MLP" # Decoder type +_C.DECODER.IN_DIM = 256 # Input dimension to the MLP (typically fused BAN feature size) +_C.DECODER.HIDDEN_DIM = 512 # Hidden layer size in the MLP +_C.DECODER.OUT_DIM = 128 # Output dimension before the final classification layer +_C.DECODER.BINARY = 1 # Number of output classes + +# ---------------------------------------------------------------------------- # +# SOLVER +# ---------------------------------------------------------------------------- # +_C.SOLVER = CfgNode() +_C.SOLVER.MAX_EPOCH = 100 # Total number of training epochs +_C.SOLVER.BATCH_SIZE = 64 # Batch size for training and evaluation +_C.SOLVER.NUM_WORKERS = 0 # Number of subprocesses for data loading +_C.SOLVER.LEARNING_RATE = 5e-5 # Learning rate for the main model +_C.SOLVER.DA_LEARNING_RATE = ( + 1e-3 # Learning rate for the domain adaptation (if DA is enabled) +) +_C.SOLVER.SEED = 2048 # Random seed for reproducibility + +# ---------------------------------------------------------------------------- # +# RESULT +# ---------------------------------------------------------------------------- # +_C.RESULT = CfgNode() +_C.RESULT.SAVE_MODEL = True # Whether to save model checkpoints during training + +# ---------------------------------------------------------------------------- # +# Domain adaptation +# ---------------------------------------------------------------------------- # +_C.DA = CfgNode() +_C.DA.TASK = ( + False # False = in-domain splitting task, True = cross-domain splitting task +) +_C.DA.METHOD = "CDAN" # Domain adaptation method to use +_C.DA.USE = False # Whether to enable domain adaptation +_C.DA.INIT_EPOCH = 10 # Number of epochs to wait before applying domain adaptation +_C.DA.LAMB_DA = 1 # Initial value of λ (lambda) used to weight the domain adaptation loss in the total loss # Total loss = model loss + λ * domain loss +_C.DA.RANDOM_LAYER = False # Whether to use a random projection layer in CDAN +_C.DA.ORIGINAL_RANDOM = False # If True, uses the original RandomLayer from the CDAN paper (multi-input form) # If False, uses a simplified linear layer implementation. +_C.DA.RANDOM_DIM = None # Output dimensionality of the random layer (only used if RANDOM_LAYER is True) +_C.DA.USE_ENTROPY = True # Whether to use entropy-based weighting when computing domain adversarial loss + +# ---------------------------------------------------------------------------- # +# Comet config, ignore it If not installed. +# ---------------------------------------------------------------------------- # +_C.COMET = CfgNode() +_C.COMET.USE = ( + True # Enable Comet logging (set True if Comet is installed and configured) +) +_C.COMET.PROJECT_NAME = "drugban-23-May" # Comet project name (if applicable) +_C.COMET.EXPERIMENT_NAME = None # Optional experiment name (e.g., 'drugban-run-1') +_C.COMET.TAG = None # Comet tags (optional) +_C.COMET.API_KEY = "" # Comet API key (leave blank if unused) + + +# ---------------------------------------------------------------------------- # +# Function to return a clone of the default config +# ---------------------------------------------------------------------------- # +def get_cfg_defaults(): + return _C.clone() diff --git a/tutorials/drug-target-interaction/experiments/DA_cross_domain.yaml b/tutorials/drug-target-interaction/experiments/DA_cross_domain.yaml new file mode 100644 index 0000000..87a1c65 --- /dev/null +++ b/tutorials/drug-target-interaction/experiments/DA_cross_domain.yaml @@ -0,0 +1,30 @@ +# This is for cross-domain experiments using DrugBAN with domain adaptation. + +DATA: + DATASET: "bindingdb" # bindingdb, biosnap + SPLIT: "cluster" + +SOLVER: + BATCH_SIZE: 32 + MAX_EPOCH: 100 + LEARNING_RATE: 1e-4 + DA_LEARNING_RATE: 5e-5 + SEED: 20 + +DA: + TASK: True + USE: True + METHOD: "CDAN" + USE_ENTROPY: False + RANDOM_LAYER: True + ORIGINAL_RANDOM: True + RANDOM_DIM: 256 + INIT_EPOCH: 10 + +DECODER: + BINARY: 2 + +# Config below only when you use comet +COMET: + EXPERIMENT_NAME: "DA_cross_domain" + TAG: "DrugBAN_CDAN" diff --git a/tutorials/drug-target-interaction/experiments/non_DA_cross_domain.yaml b/tutorials/drug-target-interaction/experiments/non_DA_cross_domain.yaml new file mode 100644 index 0000000..17ef009 --- /dev/null +++ b/tutorials/drug-target-interaction/experiments/non_DA_cross_domain.yaml @@ -0,0 +1,24 @@ +# This is for cross-domain experiments using DrugBAN without domain adaptation. + + +DATA: + DATASET: "bindingdb" # bindingdb, biosnap + SPLIT: "cluster" + +SOLVER: + BATCH_SIZE: 32 + MAX_EPOCH: 100 + LEARNING_RATE: 5e-5 + SEED: 20 + +DA: + TASK: True + USE: False + +DECODER: + BINARY: 2 + +# Config below only when you use comet +COMET: + EXPERIMENT_NAME: "Non_DA_cross_domain" + TAG: "DrugBAN_Vanilla" diff --git a/tutorials/drug-target-interaction/experiments/non_DA_in_domain.yaml b/tutorials/drug-target-interaction/experiments/non_DA_in_domain.yaml new file mode 100644 index 0000000..1ebb455 --- /dev/null +++ b/tutorials/drug-target-interaction/experiments/non_DA_in_domain.yaml @@ -0,0 +1,23 @@ +# This is for in-domain experiments using DrugBAN without domain adaptation. + +DATA: + DATASET: "bindingdb" # bindingdb, biosnap + SPLIT: "random" # random + +SOLVER: + BATCH_SIZE: 64 + MAX_EPOCH: 100 + LEARNING_RATE: 5e-5 + SEED: 20 + +DA: + TASK: False + USE: False + +DECODER: + BINARY: 1 + +# Config below only when you use comet +COMET: + EXPERIMENT_NAME: "Non_DA_in_domain" + TAG: "DrugBAN_Vanilla" diff --git a/tutorials/drug-target-interaction/notebook-cross-domain.ipynb b/tutorials/drug-target-interaction/notebook-cross-domain.ipynb new file mode 100644 index 0000000..e6b988c --- /dev/null +++ b/tutorials/drug-target-interaction/notebook-cross-domain.ipynb @@ -0,0 +1,1587 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + } + }, + "cells": [ + { + "metadata": {}, + "source": [ + "!pip install \"numpy<2.0\" \"transformers==4.30.2\" --force-reinstall --quiet" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Collecting numpy<2.0\n", + " Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.0/61.0 kB\u001b[0m \u001b[31m3.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting transformers==4.30.2\n", + " Downloading transformers-4.30.2-py3-none-any.whl.metadata (113 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m113.6/113.6 kB\u001b[0m \u001b[31m5.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting filelock (from transformers==4.30.2)\n", + " Downloading filelock-3.18.0-py3-none-any.whl.metadata (2.9 kB)\n", + "Collecting huggingface-hub<1.0,>=0.14.1 (from transformers==4.30.2)\n", + " Downloading huggingface_hub-0.33.0-py3-none-any.whl.metadata (14 kB)\n", + "Collecting packaging>=20.0 (from transformers==4.30.2)\n", + " Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB)\n", + "Collecting pyyaml>=5.1 (from transformers==4.30.2)\n", + " Downloading PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)\n", + "Collecting regex!=2019.12.17 (from transformers==4.30.2)\n", + " Downloading regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (40 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m40.5/40.5 kB\u001b[0m \u001b[31m2.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting requests (from transformers==4.30.2)\n", + " Downloading requests-2.32.4-py3-none-any.whl.metadata (4.9 kB)\n", + "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers==4.30.2)\n", + " Downloading tokenizers-0.13.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)\n", + "Collecting safetensors>=0.3.1 (from transformers==4.30.2)\n", + " Downloading safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)\n", + "Collecting tqdm>=4.27 (from transformers==4.30.2)\n", + " Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.7/57.7 kB\u001b[0m \u001b[31m4.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting fsspec>=2023.5.0 (from huggingface-hub<1.0,>=0.14.1->transformers==4.30.2)\n", + " Downloading fsspec-2025.5.1-py3-none-any.whl.metadata (11 kB)\n", + "Collecting typing-extensions>=3.7.4.3 (from huggingface-hub<1.0,>=0.14.1->transformers==4.30.2)\n", + " Downloading typing_extensions-4.14.0-py3-none-any.whl.metadata (3.0 kB)\n", + "Collecting hf-xet<2.0.0,>=1.1.2 (from huggingface-hub<1.0,>=0.14.1->transformers==4.30.2)\n", + " Downloading hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (879 bytes)\n", + "Collecting charset_normalizer<4,>=2 (from requests->transformers==4.30.2)\n", + " Downloading charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n", + "Collecting idna<4,>=2.5 (from requests->transformers==4.30.2)\n", + " Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)\n", + "Collecting urllib3<3,>=1.21.1 (from requests->transformers==4.30.2)\n", + " Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)\n", + "Collecting certifi>=2017.4.17 (from requests->transformers==4.30.2)\n", + " Downloading certifi-2025.6.15-py3-none-any.whl.metadata (2.4 kB)\n", + "Downloading transformers-4.30.2-py3-none-any.whl (7.2 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.2/7.2 MB\u001b[0m \u001b[31m99.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m18.3/18.3 MB\u001b[0m \u001b[31m110.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading huggingface_hub-0.33.0-py3-none-any.whl (514 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m514.8/514.8 kB\u001b[0m \u001b[31m36.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading packaging-25.0-py3-none-any.whl (66 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.5/66.5 kB\u001b[0m \u001b[31m5.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m763.0/763.0 kB\u001b[0m \u001b[31m41.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (792 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m792.7/792.7 kB\u001b[0m \u001b[31m47.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m471.6/471.6 kB\u001b[0m \u001b[31m38.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading tokenizers-0.13.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.8/7.8 MB\u001b[0m \u001b[31m75.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading tqdm-4.67.1-py3-none-any.whl (78 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m78.5/78.5 kB\u001b[0m \u001b[31m6.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading filelock-3.18.0-py3-none-any.whl (16 kB)\n", + "Downloading requests-2.32.4-py3-none-any.whl (64 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m64.8/64.8 kB\u001b[0m \u001b[31m5.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading certifi-2025.6.15-py3-none-any.whl (157 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m157.7/157.7 kB\u001b[0m \u001b[31m12.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (147 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m147.3/147.3 kB\u001b[0m \u001b[31m13.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading fsspec-2025.5.1-py3-none-any.whl (199 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m199.1/199.1 kB\u001b[0m \u001b[31m17.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m97.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading idna-3.10-py3-none-any.whl (70 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m70.4/70.4 kB\u001b[0m \u001b[31m5.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading typing_extensions-4.14.0-py3-none-any.whl (43 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.8/43.8 kB\u001b[0m \u001b[31m3.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading urllib3-2.5.0-py3-none-any.whl (129 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m129.8/129.8 kB\u001b[0m \u001b[31m10.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hInstalling collected packages: tokenizers, urllib3, typing-extensions, tqdm, safetensors, regex, pyyaml, packaging, numpy, idna, hf-xet, fsspec, filelock, charset_normalizer, certifi, requests, huggingface-hub, transformers\n", + " Attempting uninstall: tokenizers\n", + " Found existing installation: tokenizers 0.21.1\n", + " Uninstalling tokenizers-0.21.1:\n", + " Successfully uninstalled tokenizers-0.21.1\n", + " Attempting uninstall: urllib3\n", + " Found existing installation: urllib3 2.4.0\n", + " Uninstalling urllib3-2.4.0:\n", + " Successfully uninstalled urllib3-2.4.0\n", + " Attempting uninstall: typing-extensions\n", + " Found existing installation: typing_extensions 4.14.0\n", + " Uninstalling typing_extensions-4.14.0:\n", + " Successfully uninstalled typing_extensions-4.14.0\n", + " Attempting uninstall: tqdm\n", + " Found existing installation: tqdm 4.67.1\n", + " Uninstalling tqdm-4.67.1:\n", + " Successfully uninstalled tqdm-4.67.1\n", + " Attempting uninstall: safetensors\n", + " Found existing installation: safetensors 0.5.3\n", + " Uninstalling safetensors-0.5.3:\n", + " Successfully uninstalled safetensors-0.5.3\n", + " Attempting uninstall: regex\n", + " Found existing installation: regex 2024.11.6\n", + " Uninstalling regex-2024.11.6:\n", + " Successfully uninstalled regex-2024.11.6\n", + " Attempting uninstall: pyyaml\n", + " Found existing installation: PyYAML 6.0.2\n", + " Uninstalling PyYAML-6.0.2:\n", + " Successfully uninstalled PyYAML-6.0.2\n", + " Attempting uninstall: packaging\n", + " Found existing installation: packaging 24.2\n", + " Uninstalling packaging-24.2:\n", + " Successfully uninstalled packaging-24.2\n", + " Attempting uninstall: numpy\n", + " Found existing installation: numpy 2.0.2\n", + " Uninstalling numpy-2.0.2:\n", + " Successfully uninstalled numpy-2.0.2\n", + " Attempting uninstall: idna\n", + " Found existing installation: idna 3.10\n", + " Uninstalling idna-3.10:\n", + " Successfully uninstalled idna-3.10\n", + " Attempting uninstall: hf-xet\n", + " Found existing installation: hf-xet 1.1.3\n", + " Uninstalling hf-xet-1.1.3:\n", + " Successfully uninstalled hf-xet-1.1.3\n", + " Attempting uninstall: fsspec\n", + " Found existing installation: fsspec 2025.3.2\n", + " Uninstalling fsspec-2025.3.2:\n", + " Successfully uninstalled fsspec-2025.3.2\n", + " Attempting uninstall: filelock\n", + " Found existing installation: filelock 3.18.0\n", + " Uninstalling filelock-3.18.0:\n", + " Successfully uninstalled filelock-3.18.0\n", + " Attempting uninstall: charset_normalizer\n", + " Found existing installation: charset-normalizer 3.4.2\n", + " Uninstalling charset-normalizer-3.4.2:\n", + " Successfully uninstalled charset-normalizer-3.4.2\n", + " Attempting uninstall: certifi\n", + " Found existing installation: certifi 2025.6.15\n", + " Uninstalling certifi-2025.6.15:\n", + " Successfully uninstalled certifi-2025.6.15\n", + " Attempting uninstall: requests\n", + " Found existing installation: requests 2.32.3\n", + " Uninstalling requests-2.32.3:\n", + " Successfully uninstalled requests-2.32.3\n", + " Attempting uninstall: huggingface-hub\n", + " Found existing installation: huggingface-hub 0.33.0\n", + " Uninstalling huggingface-hub-0.33.0:\n", + " Successfully uninstalled huggingface-hub-0.33.0\n", + " Attempting uninstall: transformers\n", + " Found existing installation: transformers 4.52.4\n", + " Uninstalling transformers-4.52.4:\n", + " Successfully uninstalled transformers-4.52.4\n", + "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "google-colab 1.0.0 requires requests==2.32.3, but you have requests 2.32.4 which is incompatible.\n", + "gcsfs 2025.3.2 requires fsspec==2025.3.2, but you have fsspec 2025.5.1 which is incompatible.\n", + "langchain-core 0.3.65 requires packaging<25,>=23.2, but you have packaging 25.0 which is incompatible.\n", + "thinc 8.3.6 requires numpy<3.0.0,>=2.0.0, but you have numpy 1.26.4 which is incompatible.\n", + "sentence-transformers 4.1.0 requires transformers<5.0.0,>=4.41.0, but you have transformers 4.30.2 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cublas-cu12==12.4.5.8; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cublas-cu12 12.5.3.2 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cuda-cupti-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cuda-cupti-cu12 12.5.82 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cuda-nvrtc-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cuda-nvrtc-cu12 12.5.82 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cuda-runtime-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cuda-runtime-cu12 12.5.82 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cudnn-cu12==9.1.0.70; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cudnn-cu12 9.3.0.75 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cufft-cu12==11.2.1.3; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cufft-cu12 11.2.3.61 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-curand-cu12==10.3.5.147; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-curand-cu12 10.3.6.82 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cusolver-cu12==11.6.1.9; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cusolver-cu12 11.6.3.83 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-cusparse-cu12==12.3.1.170; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cusparse-cu12 12.5.1.3 which is incompatible.\n", + "torch 2.6.0+cu124 requires nvidia-nvjitlink-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-nvjitlink-cu12 12.5.82 which is incompatible.\u001b[0m\u001b[31m\n", + "\u001b[0mSuccessfully installed certifi-2025.6.15 charset_normalizer-3.4.2 filelock-3.18.0 fsspec-2025.5.1 hf-xet-1.1.5 huggingface-hub-0.33.0 idna-3.10 numpy-1.26.4 packaging-25.0 pyyaml-6.0.2 regex-2024.11.6 requests-2.32.4 safetensors-0.5.3 tokenizers-0.13.3 tqdm-4.67.1 transformers-4.30.2 typing-extensions-4.14.0 urllib3-2.5.0\n" + ] + }, + { + "output_type": "display_data", + "data": { + "application/vnd.colab-display-data+json": { + "pip_warning": { + "packages": [ + "certifi", + "numpy", + "packaging" + ] + }, + "id": "45157e696c714aad87be51c98f340caf" + } + }, + "metadata": {} + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "# ✅ Now run this AFTER restarting runtime\n", + "import numpy as np\n", + "\n", + "print(\"NumPy version:\", np.__version__) # should be <2.0" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "NumPy version: 1.26.4\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "# **Drug–Target Interaction Prediction**\n", + "\n", + "Welcome to this tutorial on drug–target interaction (DTI) prediction using the **PyKale library**.\n", + "\n", + "**PyKale** is a Python toolkit that helps make machine learning more approachable, especially for researchers working in interdisciplinary fields. It is particularly useful when dealing with **multimodal data**, which simply means combining different types of data — for example, information about drugs and proteins — to learn patterns from them together.\n", + "\n", + "Even if you’re new to Python or machine learning, don’t worry — we’ll explain key concepts as we go.\n", + "\n", + " \n", + "\n", + "---\n", + "\n", + " \n", + "\n", + "This tutorial builds on the work of [**Bai et al. (_Nature Machine Intelligence_, 2023)**](https://www.nature.com/articles/s42256-022-00605-1), which introduced the **DrugBAN** framework. The DrugBAN includes two key ideas:\n", + "\n", + "- A **bilinear attention network (BAN)**. This is a model that learns the features of both the drug and the protein, and how these features interact locally.\n", + "\n", + "\n", + "- **Adversarial domain adaptation**. This is a method that helps the model generalise to data that is different from what it was trained on (also known as out-of-distribution data), improving its performance on unseen drug–target pairs.\n", + "\n", + " \n", + "\n", + "---\n", + "\n", + "\n", + " \n", + "\n", + "## 🔍 What You'll Learn\n", + "\n", + "In the sections that follow, we’ll guide you through the PyKale development pipeline. Specifically, you will learn how to use PyKale to:\n", + "\n", + "- Load and preprocess the data\n", + "\n", + "- Set up the model and the training process\n", + "\n", + "- Train and test the model\n", + "\n", + "Finally, we will compare the results from DrugBAN with those from other established models.\n", + "\n", + "Let’s get started!\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "## Setup\n", + "\n", + "To begin, we will install the necessary packages required for this tutorial. To maintain clarity and focus on interpretation, we will also suppress any warnings." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "import os\n", + "import warnings\n", + "\n", + "warnings.filterwarnings(\"ignore\")\n", + "os.environ[\"PYTHONWARNINGS\"] = \"ignore\"" + ], + "cell_type": "code", + "outputs": [], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "[Optional] If you are using Google Colab, please using the following codes to load necessary demo data and code files." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "!git clone --branch drug-target-interaction https://github.com/pykale/embc-mmai25.git\n", + "%cd /content/embc-mmai25/tutorials/drug-target-interaction" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Cloning into 'embc-mmai25'...\n", + "remote: Enumerating objects: 1165, done.\u001b[K\n", + "remote: Counting objects: 100% (186/186), done.\u001b[K\n", + "remote: Compressing objects: 100% (128/128), done.\u001b[K\n", + "remote: Total 1165 (delta 87), reused 119 (delta 54), pack-reused 979 (from 1)\u001b[K\n", + "Receiving objects: 100% (1165/1165), 128.89 MiB | 34.22 MiB/s, done.\n", + "Resolving deltas: 100% (543/543), done.\n", + "/content/embc-mmai25/tutorials/drug-target-interaction\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "from google.colab import drive\n", + "\n", + "drive.mount(\"/content/drive\")\n", + "\n", + "shared_drives_path = (\n", + " \"/content/drive/Shared drives/EMBC-MMAI 25 Workshop/data/drug-target-interaction\"\n", + ")\n", + "\n", + "import os\n", + "import shutil\n", + "\n", + "print(\"Contents of the folder:\")\n", + "for item in os.listdir(shared_drives_path):\n", + " print(item)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mounted at /content/drive\n", + "Contents of the folder:\n", + "bindingdb\n", + "biosnap\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "### 📦 Packages\n", + "\n", + "The main packages required for this tutorial are **PyKale**, **PyTorch Geometric**, and **RDKit**.\n", + "\n", + "- **PyKale** is an open-source interdisciplinary machine learning library developed at the University of Sheffield, designed for applications in biomedical and scientific domains.\n", + "- **PyG** (PyTorch Geometric) is a library built on top of PyTorch for building and training Graph Neural Networks (GNNs) on structured data.\n", + "- **RDKit** is a cheminformatics toolkit for handling and processing molecular structures, particularly useful for working with SMILES strings and molecular graphs.\n", + "\n", + "Other dependencies are listed in [`embc-mmai25/requirements.txt`](https://github.com/pykale/embc-mmai25/blob/main/requirements.txt).\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "!pip install --quiet git+https://github.com/pykale/pykale@main\\\n", + " && echo \"PyKale installed successfully ✅\" \\\n", + " || echo \"Failed to install PyKale ❌\"\n", + "\n", + "!pip install --quiet -r /content/embc-mmai25/requirements.txt \\\n", + " && echo \"Required packages installed successfully ✅\" \\\n", + " || echo \"Failed to install required packages ❌\"\n", + "\n", + "import torch\n", + "os.environ['TORCH'] = torch.__version__\n", + "!pip install -q torch-scatter -f https://data.pyg.org/whl/torch-${TORCH}.html\n", + "!pip install -q torch-sparse -f https://data.pyg.org/whl/torch-${TORCH}.html\n", + "\n", + "!pip install -q git+https://github.com/pyg-team/pytorch_geometric.git \\\n", + " && echo \"PyG installed successfully ✅\" \\\n", + " || echo \"Failed to install PyG ❌\"\n", + "\n", + "!pip install rdkit-pypi \\\n", + " && echo \"PyG installed successfully ✅\" \\\n", + " || echo \"Failed to install PyG ❌\"" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", + " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", + " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m812.3/812.3 kB\u001b[0m \u001b[31m25.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m779.2/779.2 MB\u001b[0m \u001b[31m1.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m410.6/410.6 MB\u001b[0m \u001b[31m3.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m14.1/14.1 MB\u001b[0m \u001b[31m85.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m23.7/23.7 MB\u001b[0m \u001b[31m64.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m823.6/823.6 kB\u001b[0m \u001b[31m42.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m731.7/731.7 MB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m121.6/121.6 MB\u001b[0m \u001b[31m7.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.5/56.5 MB\u001b[0m \u001b[31m13.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m124.2/124.2 MB\u001b[0m \u001b[31m7.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m196.0/196.0 MB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m176.2/176.2 MB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m99.1/99.1 kB\u001b[0m \u001b[31m9.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m168.1/168.1 MB\u001b[0m \u001b[31m6.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.4/7.4 MB\u001b[0m \u001b[31m71.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.0/7.0 MB\u001b[0m \u001b[31m67.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m962.6/962.6 kB\u001b[0m \u001b[31m41.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h Building wheel for pykale (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "torchaudio 2.6.0+cu124 requires torch==2.6.0, but you have torch 2.3.0 which is incompatible.\n", + "sentence-transformers 4.1.0 requires transformers<5.0.0,>=4.41.0, but you have transformers 4.30.2 which is incompatible.\u001b[0m\u001b[31m\n", + "\u001b[0mPyKale installed successfully ✅\n", + " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", + " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", + " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m45.0/45.0 kB\u001b[0m \u001b[31m3.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.6/8.6 MB\u001b[0m \u001b[31m103.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.5/10.5 MB\u001b[0m \u001b[31m13.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m80.3/80.3 kB\u001b[0m \u001b[31m6.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m83.2/83.2 kB\u001b[0m \u001b[31m6.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.4/3.4 MB\u001b[0m \u001b[31m93.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m434.0/434.0 kB\u001b[0m \u001b[31m28.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.6/4.6 MB\u001b[0m \u001b[31m103.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.2/2.2 MB\u001b[0m \u001b[31m89.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m40.4/40.4 kB\u001b[0m \u001b[31m3.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m127.4/127.4 kB\u001b[0m \u001b[31m10.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m60.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.4/1.4 MB\u001b[0m \u001b[31m68.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequired packages installed successfully ✅\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.9/10.9 MB\u001b[0m \u001b[31m74.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.1/5.1 MB\u001b[0m \u001b[31m41.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", + " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", + " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + " Building wheel for torch-geometric (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", + "PyG installed successfully ✅\n", + "Collecting rdkit-pypi\n", + " Downloading rdkit_pypi-2022.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.9 kB)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (from rdkit-pypi) (1.26.4)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.11/dist-packages (from rdkit-pypi) (11.2.1)\n", + "Downloading rdkit_pypi-2022.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.4 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m29.4/29.4 MB\u001b[0m \u001b[31m71.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hInstalling collected packages: rdkit-pypi\n", + "Successfully installed rdkit-pypi-2022.9.5\n", + "PyG installed successfully ✅\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "### ⚙️ Configuration\n", + "\n", + "Before running any model or data processing, we need to tell the code **what settings to use**. To make this easier, we provide a file called `config.py`. Think of this file as a **menu of default settings** that the rest of the code can refer to — for example, where to find the data, which model to use, and how many times to train it.\n", + "\n", + "You can find `config.py` in the same folder as this notebook. You don’t need to change it directly. Instead, we use a **YAML file** to customise the settings.\n", + "\n", + "> **What is a YAML file?** \n", + "> YAML is a simple text file format often used for configuration. It lets you list out settings in a way that’s easier to read than raw Python code.\n", + "\n", + "For example, we have a YAML file called `experiments/non_da_in_domain.yaml`. You can change this file to adjust things like:\n", + "\n", + "- Which dataset to use \n", + "- How long to train the model \n", + "- Which model settings to apply \n", + "\n", + "This helps keep your work organised and flexible. You don’t need to modify the original Python files — just change the YAML file instead.\n", + "\n", + "Now let’s see how we actually load and apply the settings from a YAML file in Python." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "from configs import get_cfg_defaults\n", + "\n", + "# Load the default settings from config.py\n", + "cfg = get_cfg_defaults()\n", + "\n", + "# Update (or override) some of those settings using a custom YAML file\n", + "cfg.merge_from_file(\"experiments/DA_cross_domain.yaml\")\n", + "\n", + "# Example: temporarily shorten the training time by setting fewer training rounds\n", + "cfg.SOLVER.MAX_EPOCH = 2\n", + "\n", + "# Example: switch the dataset to Biosnap\n", + "cfg.DATA.DATASET = \"biosnap\"\n", + "\n", + "# Print the current settings to check what’s being used\n", + "print(cfg)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "BCN:\n", + " HEADS: 2\n", + "COMET:\n", + " API_KEY: InDQ1UsqJt7QMiANWg55Ulebe\n", + " EXPERIMENT_NAME: DA_cross_domain\n", + " PROJECT_NAME: drugban-23-May\n", + " TAG: DrugBAN_CDAN\n", + " USE: True\n", + "DA:\n", + " INIT_EPOCH: 10\n", + " LAMB_DA: 1\n", + " METHOD: CDAN\n", + " ORIGINAL_RANDOM: True\n", + " RANDOM_DIM: 256\n", + " RANDOM_LAYER: True\n", + " TASK: True\n", + " USE: True\n", + " USE_ENTROPY: False\n", + "DATA:\n", + " DATASET: biosnap\n", + " SPLIT: cluster\n", + "DECODER:\n", + " BINARY: 2\n", + " HIDDEN_DIM: 512\n", + " IN_DIM: 256\n", + " NAME: MLP\n", + " OUT_DIM: 128\n", + "DRUG:\n", + " HIDDEN_LAYERS: [128, 128, 128]\n", + " MAX_NODES: 290\n", + " NODE_IN_EMBEDDING: 128\n", + " NODE_IN_FEATS: 7\n", + " PADDING: True\n", + "PROTEIN:\n", + " EMBEDDING_DIM: 128\n", + " KERNEL_SIZE: [3, 6, 9]\n", + " NUM_FILTERS: [128, 128, 128]\n", + " PADDING: True\n", + "RESULT:\n", + " SAVE_MODEL: True\n", + "SOLVER:\n", + " BATCH_SIZE: 32\n", + " DA_LEARNING_RATE: 5e-05\n", + " LEARNING_RATE: 0.0001\n", + " MAX_EPOCH: 2\n", + " NUM_WORKERS: 0\n", + " SEED: 20\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "## Data Overview\n", + "\n", + "In this tutorial, we use a benchmark dataset called **Biosnap**, which contains information about how well different drugs interact with specific proteins. This dataset has been preprocessed and provided by the authors of the **DrugBAN** paper. You can also find it in their [GitHub repository](https://github.com/peizhenbai/DrugBAN/tree/main).\n", + "\n", + "### 📁 Folder Structure\n", + "\n", + "The dataset is stored in a folder called `biosnap`, which contains a few subfolders. Each subfolder corresponds to a different experimental setting for training and testing machine learning models.\n", + "\n", + "Here is a simplified view of the folder structure:\n", + "\n", + "\n", + "\n", + "```sh\n", + " ├───biosnap\n", + " │ ├───cluster\n", + " │ │ ├───source_train.csv\n", + " │ │ ├───target_train.csv\n", + " │ │ ├───target_test.csv\n", + " │ ├───random\n", + " │ │ ├───test.csv\n", + " │ │ ├───train.csv\n", + " │ │ ├───val.csv\n", + " │ ├───full.csv\n", + "\n", + "```\n", + "\n", + "\n", + "Each file listed here is in **CSV format**, which you can open using spreadsheet software (like Excel) or load into Python using tools like `pandas`. These files contain rows of data, with each row representing one drug–protein pair.\n", + "\n", + "### 🧬 What’s Inside Each File?\n", + "\n", + "Each row of the dataset contains three key pieces of information:\n", + "\n", + "**SMILES** \n", + "This is a way to describe the structure of a drug molecule using a short string of letters and symbols. It’s a compact format called *Simplified Molecular Input Line Entry System*. You don’t need to understand chemistry to use this, but just know that this string uniquely represents a drug.\n", + "\n", + "**Protein Sequence** \n", + "This is a string of letters where each letter stands for an amino acid, the building blocks of proteins. For example, `MGYTSLLT...` is a short protein sequence.\n", + "\n", + "**Y** \n", + "This is the label or answer. It tells us whether the drug and the protein interact. \n", + "`1` means yes, they interact. \n", + "`0` means no, they do not interact.\n", + "\n", + "### 📊 Sample of the Data\n", + "\n", + "Here’s what the data looks like in a table format:\n", + "\n", + "| SMILES | Protein Sequence | Y |\n", + "|--------------------|--------------------------|---|\n", + "| Fc1ccc(C2(COC…) | MDNVLPVDSDLS… | 1 |\n", + "| O=c1oc2c(O)c(…) | MMYSKLLTLTTL… | 0 |\n", + "| CC(C)Oc1cc(N…) | MGMACLTMTEME… | 1 |\n", + "\n", + "Each row shows one drug–protein pair. The goal of our machine learning model is to predict the last column (**Y**) — whether or not the drug and protein interact." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 🧪 Preprocessing\n", + "\n", + "Before we train a model, we need to prepare the data in a format that the model can understand. This process is called **preprocessing**. In this task, we work with two types of biological data: **drugs** and **proteins**.\n", + "\n", + "#### How is the data represented?\n", + "\n", + "**Drugs**: \n", + "Drugs are often written as SMILES strings, which are like chemical formulas in text format (for example, `\"CC(=O)OC1=CC=CC=C1C(=O)O\"` is aspirin). \n", + "\n", + "To make this information useful for machine learning, we convert each SMILES string into a **molecular graph**. In a molecular graph:\n", + "- Each **atom** is a node\n", + "- Each **bond** is an edge between nodes \n", + "\n", + " \n", + "\n", + "---\n", + "\n", + " \n", + "\n", + "**Proteins**: \n", + "Proteins are sequences of amino acids. We convert each sequence into numbers using:\n", + "\n", + "- **One-hot encoding**, which assigns each amino acid a unique numerical representation. A full sequence is then turned into an embedding-like vector, similar to how sentences are represented in natural language processing.\n", + "\n", + "\n", + " \n", + "\n", + "---\n", + "\n", + " \n", + "\n", + "\n", + "**Labels**: \n", + "Each drug–protein pair is given a label:\n", + "- `1` if they interact (i.e. the drug affects the protein)\n", + "- `0` if they do not\n", + "\n", + " \n", + "\n", + "---\n", + "\n", + " \n", + "\n", + "#### How is preprocessing handled in the code?\n", + "\n", + "We use a class called `DTIDataset`, provided by **PyKale**, to handle all of this preprocessing for us. It takes care of:\n", + "- Reading the data\n", + "- Converting drugs to molecular graphs\n", + "- Encoding protein sequences\n", + "- Assigning labels to each pair\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "from kale.loaddata.molecular_datasets import DTIDataset\n", + "import pandas as pd\n", + "\n", + "# Path to the dataset folder\n", + "dataFolder = os.path.join(\n", + " f\"/content/drive/Shared drives/EMBC-MMAI 25 Workshop/data/drug-target-interaction/{cfg.DATA.DATASET}\",\n", + " str(cfg.DATA.SPLIT),\n", + ")\n", + "\n", + "# Path to the dataset folder\n", + "df_train_source = pd.read_csv(os.path.join(dataFolder, \"source_train.csv\"))\n", + "df_train_target = pd.read_csv(os.path.join(dataFolder, \"target_train.csv\"))\n", + "df_test_target = pd.read_csv(os.path.join(dataFolder, \"target_test.csv\"))\n", + "\n", + "# Create preprocessed datasets\n", + "train_dataset = DTIDataset(df_train_source.index.values, df_train_source)\n", + "train_target_dataset = DTIDataset(df_train_target.index.values, df_train_target)\n", + "test_target_dataset = DTIDataset(df_test_target.index.values, df_test_target)" + ], + "cell_type": "code", + "outputs": [], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "### 🗂️ Dataset Inspection\n", + "\n", + "Once we’ve loaded the dataset, it's useful to take a quick look at what it contains. This helps us understand the data format and what kind of information we’ll be working with in the rest of the tutorial.\n", + "\n", + "In this project, our dataset has been split into three parts:\n", + "\n", + "**Train samples from the source domain** \n", + "These are drug–protein pairs the model will learn from. The \"source domain\" typically refers to a distribution of data that the model is familiar with.\n", + "\n", + "**Train samples from the target domain** \n", + "These are additional training samples, but from a different distribution (a \"target domain\") the model should generalise to. This helps simulate real-world scenarios where new data may come from different conditions.\n", + "\n", + "**Test samples from the target domain** \n", + "These are drug–protein pairs that the model has never seen before, and they’re used to evaluate how well the model generalises to new, unseen cases.\n", + "\n", + "Let’s print out the number of samples in each set, and take a peek at one example from the training data.\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "print(\n", + " f\"Train samples from source domain: {len(train_dataset)}, Train samples from target domain: {len(train_target_dataset)}, Test samples from target domain: {len(test_target_dataset)}\"\n", + ")\n", + "\n", + "print(\"\\nAn example sample from source domain:\")\n", + "print(train_dataset[0])" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Train samples from source domain: 9766, Train samples from target domain: 3628, Test samples from target domain: 907\n", + "\n", + "An example sample from source domain:\n", + "(Data(x=[290, 7], edge_index=[2, 58], edge_attr=[58, 1], num_nodes=290), array([11., 1., 18., ..., 0., 0., 0.]), 0.0)\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "### 🧾 Example Sample Explained\n", + "\n", + "Let’s break down what this example from the **source domain** means:\n", + "\n", + "```\n", + "An example sample from source domain:\n", + "(Data(x=[290, 7], edge_index=[2, 58], edge_attr=[58, 1], num_nodes=290), array([11., 1., 18., ..., 0., 0., 0.]), 0.0)\n", + "```\n", + "\n", + "This sample is a tuple with **three parts**:\n", + "\n", + "---\n", + "\n", + "#### 1. **Drug Graph (Data object)**\n", + "\n", + "This part is a graph-based representation of the **drug**, built using the PyTorch Geometric `Data` object:\n", + "\n", + "- `x=[290, 7]` \n", + " This is a table (matrix) with **290 nodes** (atoms) and **7 features** per atom. \n", + " Each row represents an atom, and each column describes one feature of the atom.\n", + "\n", + "- `edge_index=[2, 58]` \n", + " This shows how the atoms are connected (like chemical bonds). \n", + " There are **58 edges**, and the matrix has 2 rows — the first row lists source atoms, the second lists the target atoms.\n", + "\n", + "- `edge_attr=[58, 1]` \n", + " Each edge (bond) has **1 feature**, such as bond type. \n", + " So there are 58 rows (one for each edge), and 1 column.\n", + "\n", + "- `num_nodes=290` \n", + " This confirms that the graph has **290 atoms (nodes)**.\n", + "\n", + "---\n", + "\n", + "#### 2. **Protein Features (array)**\n", + "\n", + "- This is a **1D array** (or vector) representing the **protein**. \n", + "- It contains numerical features extracted from the protein sequence or structure. \n", + "- Example values: `[11., 1., 18., ..., 0., 0., 0.]` \n", + " These could represent biochemical or structural properties, with padding at the end (zeros) to ensure a consistent input size.\n", + "\n", + "---\n", + "\n", + "#### 3. **Label (float)**\n", + "\n", + "- `0.0` \n", + " This is the **label**, which tells us the ground truth: \n", + " The drug and protein **do not interact** in this sample. \n", + "\n", + " If the label were `1.0`, it would mean they **do interact**.\n", + "\n", + "---\n", + "\n", + "This format allows the model to learn from both structured graph data (the drug) and feature-based data (the protein), and predict whether they interact based on the label.\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 🧱 Batching\n", + "\n", + "When training machine learning models, especially on large datasets like molecular graphs, it’s inefficient and memory-intensive to load everything at once. Instead, we split the data into **mini-batches** and feed them into the model one at a time. This process is called **batching**, i.e, loading data in manageable pieces.\n", + "\n", + "In this tutorial, we use PyTorch’s `DataLoader` to help us do this. A `DataLoader` handles the process of batching, shuffling, and loading data efficiently during training and evaluation.\n", + "\n", + "However, because molecular data involves **graphs of different sizes and shapes**, we can't just stack them like regular tables or images. That’s where a custom helper function called `graph_collate_func` comes in. This function tells the `DataLoader` how to correctly combine graphs of different structures into a batch.\n", + "\n", + "#### 🔄 Training vs Testing\n", + "\n", + "- During **training**, we shuffle the data randomly. This helps the model generalise better and prevents it from learning the order of the data.\n", + "- During **validation and testing**, we **don’t** shuffle the data. This ensures consistent and reproducible evaluation.\n", + "\n", + "Now let’s see how this looks in code." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "from torch.utils.data import DataLoader\n", + "from kale.loaddata.molecular_datasets import graph_collate_func\n", + "from kale.loaddata.sampler import MultiDataLoader\n", + "\n", + "# Define the parameters used by the data loaders\n", + "params = {\n", + " \"batch_size\": cfg.SOLVER.BATCH_SIZE, # Number of samples per batch\n", + " \"shuffle\": True, # Shuffle data during training\n", + " \"num_workers\": cfg.SOLVER.NUM_WORKERS, # Number of workers loading the data\n", + " \"drop_last\": True, # Drop the last batch if it's smaller than batch_size\n", + " \"collate_fn\": graph_collate_func, # Custom function to batch graphs correctly\n", + "}\n", + "\n", + "\n", + "# Create data loaders for source and target training datasets\n", + "source_generator = DataLoader(train_dataset, **params)\n", + "target_generator = DataLoader(train_target_dataset, **params)\n", + "\n", + "# Get the number of batches in the longer dataset to align both\n", + "n_batches = max(len(source_generator), len(target_generator))\n", + "\n", + "# Combine the source and target data loaders using MultiDataLoader\n", + "training_generator = MultiDataLoader(\n", + " dataloaders=[source_generator, target_generator], n_batches=n_batches\n", + ") # used to be named as multi_generator\n", + "\n", + "\n", + "# Now we set up data loaders for validation and testing. Since we don’t want to shuffle or drop any samples, we adjust the parameters accordingly.\n", + "\n", + "# Update parameters for validation/testing (no shuffling, keep all data)\n", + "params.update({\"shuffle\": False, \"drop_last\": False})\n", + "\n", + "# Create validation and test data loaders\n", + "valid_generator = DataLoader(test_target_dataset, **params)\n", + "test_generator = DataLoader(test_target_dataset, **params)" + ], + "cell_type": "code", + "outputs": [], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "## Model and Trainer Overview\n", + "\n", + "In this section, we'll look at the model and trainer we're using and how to set it up in your code. Don’t worry if the names sound technical — we’ll break them down for you." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 🏗️ Setting Up the DrugBAN Model\n", + "\n", + "The **DrugBAN** model is designed to predict whether a drug and protein interact. It brings together different parts of the data using specialised tools from deep learning.\n", + "\n", + "Here’s what DrugBAN is made of:\n", + "\n", + "**1. GCN (Graph Convolutional Network)** \n", + "This handles the structure of drug molecules. It treats each molecule as a graph — where atoms are nodes and bonds are edges — and learns useful patterns from it.\n", + "\n", + "**2. CNN (Convolutional Neural Network)** \n", + "This works with the protein sequences. Think of it like scanning the sequence for patterns, just like image recognition scans for edges or shapes.\n", + "\n", + "**3. BAN (Bilinear Attention Network)** \n", + "This connects the drug and protein features and helps the model learn **how parts of the drug interact with parts of the protein**.\n", + "\n", + "**4. MLP (Multilayer Perceptron)** \n", + "This is the final decision-maker. It takes all the features the model has learned and makes the final prediction: will this drug bind to this protein?\n", + "\n", + "Here’s how you can create the model in your code:" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "from kale.embed.ban import DrugBAN\n", + "\n", + "# Create the model using settings from your config\n", + "model = DrugBAN(**cfg)\n", + "\n", + "# Print the model structure to see what's inside\n", + "print(model)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "DrugBAN(\n", + " (drug_extractor): MolecularGCN(\n", + " (init_transform): Linear(in_features=7, out_features=128, bias=False)\n", + " (gcn_layers): ModuleList(\n", + " (0-2): 3 x GCNConv(128, 128)\n", + " )\n", + " )\n", + " (protein_extractor): ProteinCNN(\n", + " (embedding): Embedding(26, 128, padding_idx=0)\n", + " (conv1): Conv1d(128, 128, kernel_size=(3,), stride=(1,))\n", + " (bn1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv2): Conv1d(128, 128, kernel_size=(6,), stride=(1,))\n", + " (bn2): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (conv3): Conv1d(128, 128, kernel_size=(9,), stride=(1,))\n", + " (bn3): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " (bcn): BANLayer(\n", + " (v_net): FCNet(\n", + " (main): Sequential(\n", + " (0): Dropout(p=0.2, inplace=False)\n", + " (1): Linear(in_features=128, out_features=768, bias=True)\n", + " (2): ReLU()\n", + " )\n", + " )\n", + " (q_net): FCNet(\n", + " (main): Sequential(\n", + " (0): Dropout(p=0.2, inplace=False)\n", + " (1): Linear(in_features=128, out_features=768, bias=True)\n", + " (2): ReLU()\n", + " )\n", + " )\n", + " (p_net): AvgPool1d(kernel_size=(3,), stride=(3,), padding=(0,))\n", + " (bn): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " )\n", + " (mlp_classifier): MLPDecoder(\n", + " (fc1): Linear(in_features=256, out_features=512, bias=True)\n", + " (bn1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (fc2): Linear(in_features=512, out_features=512, bias=True)\n", + " (bn2): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (fc3): Linear(in_features=512, out_features=128, bias=True)\n", + " (bn3): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n", + " (fc4): Linear(in_features=128, out_features=2, bias=True)\n", + " )\n", + ")\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "### 🏋️‍♀️ Setup Trainer\n", + "\n", + "In this section, we will set up the **training process** using **PyTorch Lightning**, a high-level library that simplifies training loops and experiment tracking in deep learning. Think of it as a way to organise all the messy training code into something tidy and reusable.\n", + "\n", + "We will use a training class called `DrugbanTrainer`, which is part of **PyKale**, and handles model training, domain adaptation, and evaluation.\n", + "\n", + "The values for the trainer's setup come from a configuration file written in YAML. If you are curious about what each setting means, check the YAML file. We've added comments there to explain each parameter.\n", + "\n", + "---\n", + "\n", + "Step 1: Initialise the Trainer\n", + "```python\n", + "from kale.pipeline.drugban_trainer import DrugbanTrainer\n", + "\n", + "drugban_trainer = DrugbanTrainer(\n", + " model=DrugBAN(**cfg),\n", + " solver_lr=cfg[\"SOLVER\"][\"LEARNING_RATE\"], # learning rate for training the model\n", + " num_classes=cfg[\"DECODER\"][\"BINARY\"], # number of output classes (1 for binary classification)\n", + " batch_size=cfg[\"SOLVER\"][\"BATCH_SIZE\"], # how many samples the model sees at once\n", + "\n", + " # Domain adaptation settings (you can think of this as helping the model\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "from kale.pipeline.drugban_trainer import DrugbanTrainer\n", + "\n", + "# Create an instance of the trainer with your model and configuration\n", + "drugban_trainer = DrugbanTrainer(\n", + " model=DrugBAN(**cfg),\n", + " solver_lr=cfg[\"SOLVER\"][\"LEARNING_RATE\"],\n", + " num_classes=cfg[\"DECODER\"][\"BINARY\"],\n", + " batch_size=cfg[\"SOLVER\"][\"BATCH_SIZE\"],\n", + " # Domain adaptation settings\n", + " is_da=cfg[\"DA\"][\"USE\"],\n", + " solver_da_lr=cfg[\"SOLVER\"][\"DA_LEARNING_RATE\"],\n", + " da_init_epoch=cfg[\"DA\"][\"INIT_EPOCH\"],\n", + " da_method=cfg[\"DA\"][\"METHOD\"],\n", + " original_random=cfg[\"DA\"][\"ORIGINAL_RANDOM\"],\n", + " use_da_entropy=cfg[\"DA\"][\"USE_ENTROPY\"],\n", + " da_random_layer=cfg[\"DA\"][\"RANDOM_LAYER\"],\n", + " # --- discriminator parameters ---\n", + " da_random_dim=cfg[\"DA\"][\"RANDOM_DIM\"],\n", + " decoder_in_dim=cfg[\"DECODER\"][\"IN_DIM\"],\n", + ")" + ], + "cell_type": "code", + "outputs": [], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "Step 2: Setup Checkpointing\n", + "\n", + "We want to save the best model during training. This helps you avoid rerunning training if you want to reuse the model later." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "import pytorch_lightning as pl\n", + "from pytorch_lightning.callbacks import ModelCheckpoint\n", + "\n", + "# Save the model when it achieves the best AUROC score on the validation set\n", + "checkpoint_callback = ModelCheckpoint(\n", + " filename=\"{epoch}-{step}-{val_BinaryAUROC:.4f}\", # how to name saved files\n", + " monitor=\"val_BinaryAUROC\", # which metric to monitor\n", + " mode=\"max\", # we want to maximise this score\n", + ")" + ], + "cell_type": "code", + "outputs": [], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "Step 3: Launch the Trainer\n", + "\n", + "We now create the actual PyTorch Lightning trainer, which handles the training loop." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "trainer = pl.Trainer(\n", + " callbacks=[checkpoint_callback], # automatically save best model\n", + " devices=\"auto\", # use all available GPUs\n", + " accelerator=(\n", + " \"gpu\" if torch.cuda.is_available() else \"cpu\"\n", + " ), # decide training hardware\n", + " max_epochs=cfg[\"SOLVER\"][\"MAX_EPOCH\"], # how many passes over the training set\n", + " deterministic=True, # makes results reproducible every time you run\n", + ")" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "INFO:pytorch_lightning.utilities.rank_zero:GPU available: True (cuda), used: True\n", + "INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n", + "INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n" + ] + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "## Training and Testing Overview\n", + "\n", + "Before we can make any predictions, we need to **train** the model using known examples of drug–protein interactions. This step helps the model learn patterns, so that it can later predict whether a new drug and protein might interact.\n", + "\n", + "### What is training?\n", + "\n", + "Training is the process where the model adjusts itself to improve its guesses. Imagine giving it many examples of drug–protein pairs along with the correct answers (whether they interact or not). The model learns from these examples by updating its internal settings to reduce mistakes.\n", + "\n", + "### What is validation?\n", + "\n", + "Validation happens *during* training. We use a separate set of data (different from the training data) to check how well the model is doing as it learns. This helps us tune the model without accidentally letting it memorise all the training examples. It’s like checking your understanding by doing practice questions while revising.\n", + "\n", + "### What is testing?\n", + "\n", + "Testing is the final step, done *after* training is complete. We give the model new examples it has never seen before. This tells us how well it might perform in the real world when predicting new drug–protein interactions.\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 🏋️‍♀️ Training\n", + "\n", + "The following code starts the training process. It uses a function called `fit` which is part of PyTorch Lightning's training system. You do not need to change anything here unless you're experimenting." + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "trainer.fit(\n", + " drugban_trainer,\n", + " train_dataloaders=training_generator,\n", + " val_dataloaders=valid_generator,\n", + ")" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "WARNING:pytorch_lightning.loggers.tensorboard:Missing logger folder: /content/embc-mmai25/tutorials/drug-target-interaction/lightning_logs\n", + "INFO:pytorch_lightning.accelerators.cuda:LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", + "INFO:pytorch_lightning.callbacks.model_summary:\n", + " | Name | Type | Params | Mode \n", + "---------------------------------------------------------------------\n", + "0 | model | DrugBAN | 1.0 M | train\n", + "1 | domain_discriminator | DomainNetSmallImage | 133 K | train\n", + "2 | random_layer | RandomLayer | 66.0 K | train\n", + "3 | valid_metrics | MetricCollection | 0 | train\n", + "4 | test_metrics | MetricCollection | 0 | train\n", + "---------------------------------------------------------------------\n", + "1.2 M Trainable params\n", + "0 Non-trainable params\n", + "1.2 M Total params\n", + "4.847 Total estimated model params size (MB)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Sanity Checking: | | 0/? [00:00┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃ Test metric DataLoader 0 ┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│ test_BinaryAUROC 0.5569921731948853 │\n", + "│ test_BinaryAccuracy 0.5126791596412659 │\n", + "│ test_BinaryF1Score 0.21071428060531616 │\n", + "│ test_BinaryRecall 0.12967033684253693 │\n", + "│ test_BinarySpecificity 0.8982300758361816 │\n", + "│ test_accuracy_sklearn 0.532524824142456 │\n", + "│ test_auroc_sklearn 0.5569921135902405 │\n", + "│ test_f1_sklearn 0.6724442839622498 │\n", + "│ test_loss 0.7800763249397278 │\n", + "│ test_optim_threshold 0.15476277470588684 │\n", + "│ test_sensitivity 0.09955751895904541 │\n", + "│ test_specificity 0.9626373648643494 │\n", + "└───────────────────────────┴───────────────────────────┘\n", + "\n" + ] + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[{'test_loss': 0.7800763249397278,\n", + " 'test_auroc_sklearn': 0.5569921135902405,\n", + " 'test_accuracy_sklearn': 0.532524824142456,\n", + " 'test_f1_sklearn': 0.6724442839622498,\n", + " 'test_sensitivity': 0.09955751895904541,\n", + " 'test_specificity': 0.9626373648643494,\n", + " 'test_optim_threshold': 0.15476277470588684,\n", + " 'test_BinaryAUROC': 0.5569921731948853,\n", + " 'test_BinaryF1Score': 0.21071428060531616,\n", + " 'test_BinaryRecall': 0.12967033684253693,\n", + " 'test_BinarySpecificity': 0.8982300758361816,\n", + " 'test_BinaryAccuracy': 0.5126791596412659}]" + ] + }, + "metadata": {}, + "execution_count": 15 + } + ], + "execution_count": null + }, + { + "metadata": {}, + "source": [ + "### 📊 Understanding the Evaluation Metrics\n", + "\n", + "After testing the model, several performance metrics are displayed. \n", + "These help you understand how well the model is making predictions. \n", + "Below is a brief explanation of each metric:\n", + "\n", + "---\n", + "\n", + "#### **AUROC (Area Under the Receiver Operating Characteristic Curve)** \n", + "Measures the model’s ability to distinguish between positive (interacting) and negative (non-interacting) pairs. \n", + "A value close to 1.0 means excellent distinction. \n", + "A value around 0.5 means the model is guessing randomly.\n", + "\n", + "---\n", + "\n", + "#### **Accuracy** \n", + "Represents the percentage of correct predictions (both positive and negative) out of all predictions. \n", + "While easy to understand, accuracy can be misleading if the classes are imbalanced.\n", + "\n", + "---\n", + "\n", + "#### **F1 Score** \n", + "A balanced measure that combines **precision** and **recall**. \n", + "It is especially useful when you care equally about false positives and false negatives.\n", + "\n", + "---\n", + "\n", + "#### **Recall (also called Sensitivity or True Positive Rate)** \n", + "Shows the proportion of actual positives (interacting pairs) that the model correctly identified. \n", + "High recall means the model is good at finding interactions.\n", + "\n", + "---\n", + "\n", + "#### **Specificity (also called True Negative Rate)** \n", + "Shows the proportion of actual negatives (non-interacting pairs) that the model correctly identified. \n", + "High specificity means the model is good at ruling out non-interactions.\n", + "\n", + "---\n", + "\n", + "#### **Optimised Threshold** \n", + "During evaluation, the model can choose a threshold value for classification that maximises certain metrics like F1 score. \n", + "This threshold is what the model uses to decide between \"interaction\" and \"no interaction\".\n", + "\n", + "---\n", + "\n", + "#### **Loss** \n", + "This is a number the model tries to minimise during training. \n", + "Lower loss generally means better performance, but it should always be considered alongside the other metrics.\n", + "\n", + "---\n", + "\n", + "> These metrics provide different perspectives on the model’s behaviour. Together, they help you judge how well the model performs on your task.\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 📊 Compare with Baselines\n", + "\n", + "To evaluate the robustness and generalisability of different models, the DrugBAN model was run for **100 epochs** across multiple random seeds and dataset splits. \n", + "\n", + "The figure below compares the performance of these models on the **BioSNAP** and **BindingDB** datasets.\n", + "\n", + "- The **left plot** shows results based on **AUROC** (Area Under the Receiver Operating Characteristic Curve).\n", + "- The **right plot** shows results based on **AUPRC** (Area Under the Precision–Recall Curve).\n", + "\n", + "---\n", + "\n", + "### 🧪 Experimental Setup\n", + "\n", + "- Each model was trained and evaluated multiple times with different random seeds to capture performance variability.\n", + "- Each box plot summarises results from these runs.\n", + "- **DrugBAN** and **DrugBANDA** were trained for 100 epochs per run.\n", + "- Performance on the **BioSNAP** dataset is shown in **blue**, and **BindingDB** results are shown in **orange**.\n", + "\n", + "---\n", + "\n", + "### 📈 How to Read the Box Plots\n", + "\n", + "- The **centre line** of each box represents the **median** performance.\n", + "- The **green triangle** shows the **mean** performance.\n", + "- The **lower and upper edges** of the box indicate the **first and third quartiles**.\n", + "- The **whiskers** show the full range (excluding outliers).\n", + "\n", + "---\n", + "\n", + "### 🔍 Key Insights\n", + "\n", + "- **DrugBANDA** consistently achieves top performance across both metrics and datasets.\n", + "- On the **BioSNAP** dataset (blue), performance varies more across models, highlighting its challenging nature.\n", + "- Simpler models such as **SVM** and **Random Forest (RF)** show limited ability to generalise.\n", + "- Deep learning models such as **GraphDTA** and **MolTrans** show competitive AUROC but less stability in AUPRC.\n", + "- **Domain adaptation** improves the model's ability to generalise from BindingDB to BioSNAP, as seen in DrugBANDA's superior scores.\n", + "\n", + "---" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "![Screenshot from 2025-06-23 16-13-23.png](data:image/png;base64,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)" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "In this tutorial, you learned how to use the **PyKale** library to build and evaluate a deep learning model for drug–target interaction (DTI) prediction.\n", + "\n", + "We walked through the pipeline in three key steps:\n", + "\n", + "### 1. Data Overview \n", + "You explored how to load and prepare drug and protein data using PyKale’s data handling tools.\n", + "\n", + "### 2. Model and Trainer Overview \n", + "You saw how to configure and use the **DrugBAN** model with PyKale. You also learned how PyKale’s trainer simplifies the training process, including logging and model saving.\n", + "\n", + "### 3. Training and Testing Overview \n", + "You trained the model and evaluated its performance using commonly used metrics such as **AUROC**, **F1 score**, **recall**, and **specificity**.\n", + "\n", + "---\n", + "\n", + "This notebook is designed as an accessible entry point for researchers who are new to Python or machine learning, and who want to explore how graph-based deep learning can be applied to biomedical problems.\n", + "\n", + "> 🧠 Tip: Try experimenting with the dataset, changing model settings, or applying PyKale to a new task. That’s the best way to learn!\n", + "\n", + "For more information, check out the [original DrugBAN codebase](https://github.com/peizhenbai/DrugBAN) and the full paper in *Nature Machine Intelligence*.\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### Explore More: 3 Tasks to Try (~1 Hour Total)\n", + "\n", + "These tasks are designed to help you go beyond the tutorial and gain deeper, hands-on experience with model development, interpretation, and dataset handling. You don’t need prior experience in machine learning — just curiosity!" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 🔁 Task 1: Use the BindingDB Dataset (20 minutes)\n", + "\n", + "Swap the current dataset with **BindingDB**, a real-world dataset containing experimentally measured drug–target interactions.\n", + "\n", + "Steps:\n", + "1. Download or prepare the BindingDB dataset (if needed).\n", + "2. Update the `data` fields in the YAML config file.\n", + "3. Reload the dataset and re-run training and testing.\n", + "\n", + "**What to explore:**\n", + "- Does model performance change?\n", + "- Is the dataset more imbalanced?\n", + "- How does training time compare?\n", + "\n", + "> Tip: See if the model struggles more or less with the new dataset. It can reveal how generalisable DrugBAN is.\n", + "\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 🧪 Task 2: Inspect Misclassified Samples (20 minutes)\n", + "\n", + "Dive into the test results and check where the model made incorrect predictions. \n", + "This helps you understand where the model struggles and whether those mistakes make sense.\n", + "\n", + "---\n", + "\n", + "#### ✅ Steps\n", + "\n", + "1. After testing, collect predicted probabilities and the true labels.\n", + "2. Print out the predictions that the model got wrong.\n", + "3. (Optional) Visualise the drug or protein graph for those samples.\n", + "\n", + "---\n", + "\n", + "#### 🔍 What to Explore\n", + "\n", + "- **Are the wrong predictions close to 0.5?** \n", + " If so, the model was unsure. This can help you identify borderline cases.\n", + "\n", + "- **Are there more false positives or false negatives?** \n", + " This tells you whether the model is more likely to over-predict interactions or miss them.\n", + "\n", + "- **Do certain types of drug–protein pairs seem harder to classify?** \n", + " For example, some proteins or drugs may always appear in misclassified samples. This could point to noisy or hard-to-learn examples.\n", + "\n", + "---\n", + "\n", + "#### 🧬 (Optional) Visualise the Graph of a Misclassified Sample\n", + "\n", + "You can plot the structure of a drug or protein graph that the model got wrong. \n", + "This helps you interpret what the model was seeing when it made the incorrect prediction.\n" + ], + "cell_type": "markdown" + }, + { + "metadata": {}, + "source": [ + "### 🧠 Task 3: Change the Protein Encoder (20 minutes)\n", + "\n", + "Explore how the model behaves when you change the way proteins are represented. \n", + "This task helps you understand whether the model relies more on protein structure or other features when making predictions.\n", + "\n", + "---\n", + "\n", + "💡 Ideas to Try\n", + "Use one hot embedding instead of integer encoding.\n", + "\n", + "Replace the protein graph with a flat vector input (e.g. sequence length, molecular weight, or hydrophobicity).\n", + "\n", + "\n", + "🔍 What to Observe\n", + "- Does model performance improve, stay the same, or get worse?\n", + "\n", + "- Which metric changes the most — AUROC, F1 score, or recall?\n", + "\n", + "- Does training take more time or less time with the new encoder?\n", + "\n" + ], + "cell_type": "markdown" + } + ] +}