# 60_GDSC_GDSC2 — Genomics of Drug Sensitivity in Cancer
## Overview
| Field | Value |
|---|---|
| Category | Drug-centric |
| Subcategory | Drug Molecular Property |
| Source | Sanger / Wellcome Trust |
| Datasets | **screened_compounds** (drug list), **GDSC1/GDSC2** (dose-response), **Cell Model Passports** (cell-line annotations) |
| URL | |
| Cell Models | |
GDSC contains pharmacological profiles for ~500 drugs tested in ~1,000 cancer cell lines. Queryable entities include drug names, gene targets, pathways, and cell-line identifiers.
## File Layout
```
DATA_DIR/
├── screened_compounds_rel_8.4.csv # drug list (~100 KB)
├── GDSC1_fitted_dose_response_27Oct23.xlsx # GDSC1 IC50/AUC (~80 MB, optional)
└── GDSC2_fitted_dose_response_27Oct23.xlsx # GDSC2 IC50/AUC (~50 MB, optional)
```
Default `DATA_DIR`:
```
resources_metadata/drug_molecular_property/GDSC
```
Override via environment variable: `export GDSC_DATA_DIR=/your/path`
## Dependencies
```bash
conda install openpyxl # or: pip install openpyxl
```
## Download & Query
The script auto-downloads all data files (drug list CSV + GDSC1/GDSC2 dose-response XLSX) on first run if the data directory is empty.
### CLI
```bash
# First run: auto-downloads all files, then queries default examples (Erlotinib, Nutlin, A549)
python 60_GDSC_GDSC2.py
```
If auto-download fails (e.g. no internet on HPC compute node), download manually from the repository root:
```bash
cd resources_metadata/drug_molecular_property/GDSC
wget 'https://ftp.sanger.ac.uk/pub/project/cancerrxgene/releases/current_release/screened_compounds_rel_8.4.csv'
wget 'https://cog.sanger.ac.uk/cancerrxgene/GDSC_data_8.5/GDSC1_fitted_dose_response_27Oct23.xlsx'
wget 'https://cog.sanger.ac.uk/cancerrxgene/GDSC_data_8.5/GDSC2_fitted_dose_response_27Oct23.xlsx'
```
### Python API
```python
from importlib.machinery import SourceFileLoader
mod = SourceFileLoader("gdsc", "60_GDSC_GDSC2.py").load_module()
# Single entity
results = mod.query_gdsc("Erlotinib")
# Multiple entities
results = mod.query_gdsc(["Nutlin", "A549", "EGFR"])
# Optional: manually trigger download
mod.download_gdsc_data()
```
### Return Format
```json
[
{
"source": "screened_compounds_rel_8.4.csv",
"match_count": 1,
"matches": [
{
"DRUG_NAME": "Erlotinib",
"TARGET": "EGFR",
"TARGET_PATHWAY": "EGFR signaling",
"PUBCHEM_ID": "176870",
"...": "..."
}
]
}
]
```
- Returns an empty list when no matches are found.
- Returns `{"error": "..."}` if the data directory is missing or empty.
### LLM Integration Example
```text
User: "What is the target of Erlotinib in GDSC?"
Agent: calls query_gdsc("Erlotinib")
→ source: screened_compounds_rel_8.4.csv, TARGET: EGFR, PATHWAY: EGFR signaling
→ "Erlotinib targets EGFR (EGFR signaling pathway) according to GDSC."
```