832 lines
21 KiB
Markdown
832 lines
21 KiB
Markdown
---
|
|
title: "Target Intelligence Examples"
|
|
task: ""
|
|
lineage_type: import
|
|
upstream_source: https://github.com/mims-harvard/ToolUniverse/blob/e2520a96/skills/tooluniverse-target-research/EXAMPLES.md
|
|
upstream_sha: e2520a96
|
|
imported_at: 2026-06-26
|
|
prompt_class: prompt
|
|
upstream_changes: accepted
|
|
author: upstream
|
|
validated: false
|
|
---
|
|
|
|
# Target Intelligence Examples
|
|
|
|
Detailed examples showing multi-step workflows for comprehensive target analysis.
|
|
|
|
## Example 1: Complete EGFR Target Profile
|
|
|
|
**Query**: "Tell me everything about EGFR as a drug target"
|
|
|
|
### Step 1: Resolve Identifiers
|
|
|
|
```python
|
|
from tooluniverse import ToolUniverse
|
|
|
|
tu = ToolUniverse(use_cache=True)
|
|
tu.load_tools()
|
|
|
|
# Resolve EGFR to all IDs
|
|
# Search UniProt for human EGFR
|
|
search_result = tu.tools.UniProt_search(
|
|
query='gene:EGFR AND organism_id:9606',
|
|
limit=1
|
|
)
|
|
uniprot_id = search_result['results'][0]['primaryAccession'] # P00533
|
|
|
|
# Map to Ensembl
|
|
mapping = tu.tools.UniProt_id_mapping(
|
|
ids=['P00533'],
|
|
from_db='UniProtKB_AC-ID',
|
|
to_db='Ensembl'
|
|
)
|
|
ensembl_id = mapping['results'][0]['to'] # ENSG00000146648
|
|
|
|
ids = {
|
|
'symbol': 'EGFR',
|
|
'uniprot': 'P00533',
|
|
'ensembl': 'ENSG00000146648'
|
|
}
|
|
```
|
|
|
|
### Step 2: Core Identity (PATH 1)
|
|
|
|
```python
|
|
# Get full UniProt entry
|
|
entry = tu.tools.UniProt_get_entry_by_accession(accession='P00533')
|
|
|
|
# Extract key info
|
|
identity = {
|
|
'name': entry.get('proteinDescription', {}).get('recommendedName', {}).get('fullName', {}).get('value'),
|
|
'length': entry.get('sequence', {}).get('length'),
|
|
'organism': entry.get('organism', {}).get('scientificName'),
|
|
'function': tu.tools.UniProt_get_function_by_accession(accession='P00533')
|
|
}
|
|
|
|
# Get gene annotation
|
|
gene_info = tu.tools.MyGene_get_gene_annotation(
|
|
gene_id='1956', # Entrez ID for EGFR
|
|
fields='symbol,name,summary,alias,genomic_pos'
|
|
)
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
Name: Epidermal growth factor receptor
|
|
Symbol: EGFR
|
|
Length: 1210 amino acids
|
|
Organism: Homo sapiens
|
|
Function: Receptor tyrosine kinase binding ligands of the EGF family...
|
|
```
|
|
|
|
### Step 3: Structure & Domains (PATH 2)
|
|
|
|
```python
|
|
# Get PDB structures from UniProt entry
|
|
pdb_refs = [xref for xref in entry.get('uniProtKBCrossReferences', [])
|
|
if xref.get('database') == 'PDB']
|
|
|
|
# Get details for best structure
|
|
best_pdb = '1M17' # Example: EGFR kinase domain
|
|
pdb_info = tu.tools.get_protein_metadata_by_pdb_id(pdb_id='1M17')
|
|
|
|
# Get AlphaFold prediction
|
|
alphafold = tu.tools.alphafold_get_prediction(qualifier='P00533')
|
|
|
|
# Get domain architecture
|
|
domains = tu.tools.InterPro_get_protein_domains(protein_id='P00533')
|
|
|
|
# Get PTMs and active sites
|
|
ptms = tu.tools.UniProt_get_ptm_processing_by_accession(accession='P00533')
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
PDB Structures: 150+ entries
|
|
Best Resolution: 1.8Å (1M17)
|
|
AlphaFold: Available, high confidence
|
|
Key Domains:
|
|
- Receptor L domain (EGF binding)
|
|
- Furin-like domain
|
|
- Growth factor receptor domain
|
|
- Protein kinase domain
|
|
PTMs: Multiple phosphorylation sites (Y992, Y1068, Y1086...)
|
|
```
|
|
|
|
### Step 4: Function & Pathways (PATH 3)
|
|
|
|
```python
|
|
# GO annotations
|
|
go_terms = tu.tools.GO_get_annotations_for_gene(gene_id='UniProtKB:P00533')
|
|
|
|
# Reactome pathways
|
|
reactome_pathways = tu.tools.Reactome_map_uniprot_to_pathways(id='P00533')
|
|
|
|
# KEGG pathways
|
|
kegg_info = tu.tools.kegg_get_gene_info(gene_id='hsa:1956')
|
|
|
|
# Open Targets GO
|
|
ot_go = tu.tools.OpenTargets_get_target_gene_ontology_by_ensemblID(
|
|
ensemblID='ENSG00000146648'
|
|
)
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
GO Biological Process:
|
|
- Signal transduction (GO:0007165)
|
|
- Cell proliferation (GO:0008283)
|
|
- MAPK cascade (GO:0000165)
|
|
|
|
GO Molecular Function:
|
|
- Protein tyrosine kinase activity (GO:0004713)
|
|
- ATP binding (GO:0005524)
|
|
- Receptor binding (GO:0005102)
|
|
|
|
Key Pathways:
|
|
- EGFR signaling pathway (Reactome)
|
|
- PI3K-Akt signaling (KEGG hsa04151)
|
|
- MAPK signaling (KEGG hsa04010)
|
|
- ErbB signaling pathway (KEGG hsa04012)
|
|
```
|
|
|
|
### Step 5: Protein Interactions (PATH 4)
|
|
|
|
```python
|
|
# STRING interactions
|
|
string_ppi = tu.tools.STRING_get_protein_interactions(
|
|
protein_ids=['EGFR'],
|
|
species=9606,
|
|
confidence_score=0.9,
|
|
limit=50
|
|
)
|
|
|
|
# IntAct experimental interactions
|
|
intact_ppi = tu.tools.intact_get_interactions(
|
|
identifier='P00533',
|
|
format='json'
|
|
)
|
|
|
|
# Open Targets interactions
|
|
ot_ppi = tu.tools.OpenTargets_get_target_interactions_by_ensemblID(
|
|
ensemblID='ENSG00000146648'
|
|
)
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
Top STRING Interactors (score > 0.9):
|
|
1. GRB2 (0.999) - Adapter protein
|
|
2. SHC1 (0.999) - Signal transduction
|
|
3. ERBB2 (0.998) - Receptor family
|
|
4. SRC (0.996) - Kinase
|
|
5. STAT3 (0.994) - Transcription factor
|
|
|
|
IntAct Complexes:
|
|
- EGFR-GRB2-SOS1 complex
|
|
- EGFR-PI3K complex
|
|
```
|
|
|
|
### Step 6: Expression Profile (PATH 5)
|
|
|
|
```python
|
|
# GTEx expression
|
|
gtex = tu.tools.GTEx_get_median_gene_expression(
|
|
gencode_id='ENSG00000146648.11'
|
|
)
|
|
|
|
# HPA expression
|
|
hpa = tu.tools.HPA_get_comprehensive_gene_details_by_ensembl_id(
|
|
ensembl_id='ENSG00000146648'
|
|
)
|
|
|
|
# Subcellular location
|
|
subcell = tu.tools.HPA_get_subcellular_location(
|
|
ensembl_id='ENSG00000146648'
|
|
)
|
|
|
|
# Cancer prognostics
|
|
cancer = tu.tools.HPA_get_cancer_prognostics_by_gene(
|
|
gene_symbol='EGFR'
|
|
)
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
Top Expression Tissues (GTEx TPM):
|
|
1. Skin (150+ TPM)
|
|
2. Esophagus mucosa (120+ TPM)
|
|
3. Kidney cortex (100+ TPM)
|
|
4. Lung (80+ TPM)
|
|
|
|
Tissue Specificity: Low (broadly expressed)
|
|
Subcellular: Plasma membrane, Cytoplasm
|
|
|
|
Cancer Relevance:
|
|
- Overexpressed in: NSCLC, Glioblastoma, Colorectal
|
|
- Prognostic: Unfavorable in lung cancer
|
|
```
|
|
|
|
### Step 7: Variants & Disease (PATH 6)
|
|
|
|
```python
|
|
# gnomAD constraint scores
|
|
constraints = tu.tools.gnomad_get_gene_constraints(gene_symbol='EGFR')
|
|
|
|
# UniProt disease variants
|
|
disease_vars = tu.tools.UniProt_get_disease_variants_by_accession(accession='P00533')
|
|
|
|
# ClinVar variants
|
|
clinvar = tu.tools.ClinVar_search_variants(gene='EGFR', max_results=100)
|
|
|
|
# Open Targets disease associations
|
|
diseases = tu.tools.OpenTargets_get_diseases_phenotypes_by_target_ensembl(
|
|
ensemblId='ENSG00000146648'
|
|
)
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
Constraint Scores:
|
|
- pLI: 0.99 (highly loss-of-function intolerant)
|
|
- LOEUF: 0.18
|
|
- Missense Z: 3.5
|
|
|
|
Disease Associations (Open Targets):
|
|
1. Non-small cell lung carcinoma (0.95)
|
|
2. Glioblastoma multiforme (0.89)
|
|
3. Colorectal cancer (0.82)
|
|
4. Pancreatic cancer (0.75)
|
|
|
|
ClinVar Pathogenic Variants: 45
|
|
- L858R (common activating mutation)
|
|
- T790M (resistance mutation)
|
|
- Exon 19 deletions
|
|
```
|
|
|
|
### Step 8: Drug Interactions (PATH 7)
|
|
|
|
```python
|
|
# Open Targets tractability
|
|
tractability = tu.tools.OpenTargets_get_target_tractability_by_ensemblID(
|
|
ensemblID='ENSG00000146648'
|
|
)
|
|
|
|
# DGIdb druggability
|
|
druggability = tu.tools.DGIdb_get_gene_druggability(genes=['EGFR'])
|
|
|
|
# Known drugs
|
|
drugs = tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblID(
|
|
ensemblID='ENSG00000146648'
|
|
)
|
|
|
|
# ChEMBL bioactivity
|
|
# First get ChEMBL target ID
|
|
chembl_target = tu.tools.ChEMBL_search_targets(
|
|
pref_name__contains='EGFR',
|
|
organism='Homo sapiens',
|
|
limit=1
|
|
)
|
|
target_chembl_id = chembl_target['targets'][0]['target_chembl_id'] # CHEMBL203
|
|
|
|
activities = tu.tools.ChEMBL_get_target_activities(
|
|
target_chembl_id__exact='CHEMBL203',
|
|
limit=100
|
|
)
|
|
|
|
# Safety profile
|
|
safety = tu.tools.OpenTargets_get_target_safety_profile_by_ensemblID(
|
|
ensemblID='ENSG00000146648'
|
|
)
|
|
|
|
# Chemical probes
|
|
probes = tu.tools.OpenTargets_get_chemical_probes_by_target_ensemblID(
|
|
ensemblID='ENSG00000146648'
|
|
)
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
Tractability:
|
|
- Small Molecule: HIGH (clinical precedence)
|
|
- Antibody: HIGH (approved antibodies)
|
|
- PROTAC: HIGH (structural data available)
|
|
- Other Modalities: MEDIUM
|
|
|
|
Approved Drugs:
|
|
1. Erlotinib (Tarceva) - TKI
|
|
2. Gefitinib (Iressa) - TKI
|
|
3. Afatinib (Gilotrif) - TKI
|
|
4. Osimertinib (Tagrisso) - 3rd gen TKI
|
|
5. Cetuximab (Erbitux) - mAb
|
|
6. Panitumumab (Vectibix) - mAb
|
|
|
|
ChEMBL Activities:
|
|
- 50,000+ bioactivity records
|
|
- Best IC50: 0.5 nM (osimertinib)
|
|
|
|
Safety Liabilities:
|
|
- Skin toxicity (class effect)
|
|
- Diarrhea (common)
|
|
- Interstitial lung disease (rare)
|
|
|
|
Chemical Probes:
|
|
- Gefitinib (SGC probe)
|
|
```
|
|
|
|
### Step 9: Literature (PATH 8)
|
|
|
|
```python
|
|
# PubMed publications
|
|
pubmed_total = tu.tools.PubMed_search_articles(
|
|
query='EGFR[Gene Name]',
|
|
limit=0 # Just count
|
|
)
|
|
|
|
pubmed_recent = tu.tools.PubMed_search_articles(
|
|
query='EGFR[Gene Name] AND "2024"[Date - Publication]',
|
|
limit=0
|
|
)
|
|
|
|
pubmed_drug = tu.tools.PubMed_search_articles(
|
|
query='EGFR AND drug AND cancer',
|
|
limit=10
|
|
)
|
|
|
|
# Open Targets publications
|
|
ot_pubs = tu.tools.OpenTargets_get_publications_by_target_ensemblID(
|
|
ensemblID='ENSG00000146648',
|
|
size=10
|
|
)
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
Literature Summary:
|
|
- Total publications: 180,000+
|
|
- Recent (2024): 8,000+
|
|
- Drug-related: 45,000+
|
|
- Trend: Stable (mature, well-studied target)
|
|
|
|
Recent Focus Areas:
|
|
- Resistance mechanisms
|
|
- Third-generation inhibitors
|
|
- Combination therapies
|
|
- Liquid biopsy for monitoring
|
|
```
|
|
|
|
### Final Synthesized Report
|
|
|
|
```markdown
|
|
# Target Intelligence Report: EGFR
|
|
|
|
## Quick Facts
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| Symbol | EGFR |
|
|
| UniProt | P00533 |
|
|
| Ensembl | ENSG00000146648 |
|
|
| Name | Epidermal growth factor receptor |
|
|
| Length | 1210 amino acids |
|
|
| Organism | Homo sapiens |
|
|
|
|
## Druggability Assessment
|
|
| Modality | Score | Evidence |
|
|
|----------|-------|----------|
|
|
| Small molecule | ✅ HIGH | 4+ approved TKIs |
|
|
| Antibody | ✅ HIGH | 2+ approved mAbs |
|
|
| PROTAC | ✅ HIGH | Structural data |
|
|
|
|
## Summary by Domain
|
|
|
|
### Identity & Function
|
|
- Receptor tyrosine kinase of the ErbB family
|
|
- Regulates cell proliferation, survival, differentiation
|
|
- Activates RAS-MAPK and PI3K-AKT pathways
|
|
|
|
### Structure
|
|
- 150+ PDB structures available
|
|
- Key domains: Kinase (for TKIs), Extracellular (for mAbs)
|
|
- AlphaFold model: High confidence
|
|
|
|
### Expression
|
|
- Broadly expressed (skin, lung, kidney highest)
|
|
- Overexpressed in multiple cancers
|
|
- Subcellular: Plasma membrane
|
|
|
|
### Variants & Disease
|
|
- Highly constrained (pLI=0.99)
|
|
- Major cancer associations: NSCLC, glioblastoma, CRC
|
|
- Key mutations: L858R, T790M, exon 19 del
|
|
|
|
### Drugs
|
|
- 6+ approved drugs
|
|
- 200+ clinical trials
|
|
- Well-characterized safety profile (skin toxicity)
|
|
|
|
### Research
|
|
- Mature target (180K+ publications)
|
|
- Active research on resistance mechanisms
|
|
|
|
## Recommendations
|
|
1. [HIGH] Excellent target validation - multiple approved therapies
|
|
2. [MEDIUM] Consider resistance mutations in drug design
|
|
3. [INFO] Extensive structural data for SBDD available
|
|
```
|
|
|
|
---
|
|
|
|
## Example 2: Novel Target Assessment (KRAS G12C)
|
|
|
|
**Query**: "Is KRAS druggable? What's the current state?"
|
|
|
|
### Multi-Step Workflow
|
|
|
|
```python
|
|
from tooluniverse import ToolUniverse
|
|
from concurrent.futures import ThreadPoolExecutor
|
|
|
|
tu = ToolUniverse(use_cache=True)
|
|
tu.load_tools()
|
|
|
|
# Resolve KRAS
|
|
ids = {
|
|
'symbol': 'KRAS',
|
|
'uniprot': 'P01116',
|
|
'ensembl': 'ENSG00000133703'
|
|
}
|
|
|
|
# Parallel execution
|
|
def assess_druggability():
|
|
results = {}
|
|
|
|
# 1. Tractability
|
|
results['tractability'] = tu.tools.OpenTargets_get_target_tractability_by_ensemblID(
|
|
ensemblID=ids['ensembl']
|
|
)
|
|
|
|
# 2. DGIdb assessment
|
|
results['dgidb'] = tu.tools.DGIdb_get_gene_druggability(genes=['KRAS'])
|
|
|
|
# 3. Known drugs
|
|
results['drugs'] = tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblID(
|
|
ensemblID=ids['ensembl']
|
|
)
|
|
|
|
# 4. ChEMBL activities
|
|
chembl = tu.tools.ChEMBL_search_targets(
|
|
pref_name__contains='KRAS',
|
|
organism='Homo sapiens',
|
|
limit=1
|
|
)
|
|
if chembl.get('targets'):
|
|
target_id = chembl['targets'][0]['target_chembl_id']
|
|
results['activities'] = tu.tools.ChEMBL_get_target_activities(
|
|
target_chembl_id__exact=target_id,
|
|
limit=50
|
|
)
|
|
|
|
# 5. Structures
|
|
results['structures'] = tu.tools.alphafold_get_prediction(qualifier='P01116')
|
|
|
|
# 6. Safety
|
|
results['safety'] = tu.tools.OpenTargets_get_target_safety_profile_by_ensemblID(
|
|
ensemblID=ids['ensembl']
|
|
)
|
|
|
|
return results
|
|
|
|
druggability = assess_druggability()
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
KRAS Druggability Assessment:
|
|
|
|
Tractability:
|
|
- Small Molecule: MEDIUM → HIGH (recent breakthroughs!)
|
|
- Previously "undruggable" - now validated
|
|
|
|
Approved Drugs (G12C-specific):
|
|
- Sotorasib (Lumakras) - 2021
|
|
- Adagrasib (Krazati) - 2022
|
|
|
|
ChEMBL Activities:
|
|
- 5000+ bioactivity records
|
|
- G12C-specific covalent inhibitors
|
|
|
|
Structure:
|
|
- Multiple G12C-bound structures
|
|
- Switch II pocket (key for covalent inhibitors)
|
|
|
|
Recent Breakthrough:
|
|
- Covalent inhibitors targeting G12C mutant
|
|
- Switch II pocket discovered as druggable site
|
|
- Active clinical development for other mutations (G12D, G12V)
|
|
```
|
|
|
|
---
|
|
|
|
## Example 3: Target Comparison
|
|
|
|
**Query**: "Compare EGFR vs HER2 as drug targets"
|
|
|
|
### Parallel Analysis
|
|
|
|
```python
|
|
targets = [
|
|
{'symbol': 'EGFR', 'uniprot': 'P00533', 'ensembl': 'ENSG00000146648'},
|
|
{'symbol': 'ERBB2', 'uniprot': 'P04626', 'ensembl': 'ENSG00000141736'} # HER2
|
|
]
|
|
|
|
def analyze_target(target):
|
|
result = {
|
|
'symbol': target['symbol'],
|
|
'tractability': tu.tools.OpenTargets_get_target_tractability_by_ensemblID(
|
|
ensemblID=target['ensembl']
|
|
),
|
|
'drugs': tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblID(
|
|
ensemblID=target['ensembl']
|
|
),
|
|
'diseases': tu.tools.OpenTargets_get_diseases_phenotypes_by_target_ensembl(
|
|
ensemblId=target['ensembl']
|
|
),
|
|
'safety': tu.tools.OpenTargets_get_target_safety_profile_by_ensemblID(
|
|
ensemblID=target['ensembl']
|
|
),
|
|
'ppi': tu.tools.STRING_get_protein_interactions(
|
|
protein_ids=[target['symbol']],
|
|
species=9606,
|
|
confidence_score=0.9,
|
|
limit=20
|
|
)
|
|
}
|
|
return result
|
|
|
|
# Parallel analysis
|
|
with ThreadPoolExecutor(max_workers=2) as executor:
|
|
results = list(executor.map(analyze_target, targets))
|
|
```
|
|
|
|
**Comparison Output**:
|
|
```markdown
|
|
| Property | EGFR | HER2/ERBB2 |
|
|
|----------|------|------------|
|
|
| **Approved Drugs** | 6+ | 8+ |
|
|
| **TKI Tractability** | HIGH | HIGH |
|
|
| **mAb Tractability** | HIGH | HIGH |
|
|
| **ADC** | N/A | HIGH (T-DM1, T-DXd) |
|
|
| **Primary Indication** | NSCLC | Breast cancer |
|
|
| **Key Mutations** | L858R, T790M | Amplification |
|
|
| **Safety Concerns** | Skin toxicity | Cardiotoxicity |
|
|
```
|
|
|
|
---
|
|
|
|
## Example 4: Target Validation Pipeline
|
|
|
|
**Query**: "Validate CDK4 as a potential drug target for cancer"
|
|
|
|
### Systematic Validation
|
|
|
|
```python
|
|
def validate_target(gene_symbol, disease_area='cancer'):
|
|
"""
|
|
Systematic target validation following industry best practices.
|
|
"""
|
|
tu = ToolUniverse(use_cache=True)
|
|
tu.load_tools()
|
|
|
|
validation_results = {}
|
|
|
|
# 1. GENETIC EVIDENCE
|
|
# Disease associations
|
|
ensembl_id = 'ENSG00000135446' # CDK4
|
|
|
|
disease_assoc = tu.tools.OpenTargets_get_diseases_phenotypes_by_target_ensembl(
|
|
ensemblId=ensembl_id
|
|
)
|
|
validation_results['genetic_evidence'] = {
|
|
'disease_associations': disease_assoc,
|
|
'score': 'HIGH' if any(d.get('score', 0) > 0.5 for d in disease_assoc.get('data', [])) else 'LOW'
|
|
}
|
|
|
|
# Constraint score
|
|
constraint = tu.tools.gnomad_get_gene_constraints(gene_symbol='CDK4')
|
|
validation_results['constraint'] = constraint
|
|
|
|
# 2. EXPRESSION EVIDENCE
|
|
# Cancer expression
|
|
hpa_cancer = tu.tools.HPA_get_cancer_prognostics_by_gene(gene_symbol='CDK4')
|
|
validation_results['expression'] = hpa_cancer
|
|
|
|
# 3. FUNCTIONAL EVIDENCE
|
|
# Pathways
|
|
pathways = tu.tools.Reactome_map_uniprot_to_pathways(id='P11802')
|
|
go_terms = tu.tools.GO_get_annotations_for_gene(gene_id='UniProtKB:P11802')
|
|
validation_results['function'] = {
|
|
'pathways': pathways,
|
|
'go_terms': go_terms
|
|
}
|
|
|
|
# 4. DRUGGABILITY
|
|
tractability = tu.tools.OpenTargets_get_target_tractability_by_ensemblID(
|
|
ensemblID=ensembl_id
|
|
)
|
|
existing_drugs = tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblID(
|
|
ensemblID=ensembl_id
|
|
)
|
|
validation_results['druggability'] = {
|
|
'tractability': tractability,
|
|
'existing_drugs': existing_drugs
|
|
}
|
|
|
|
# 5. SAFETY
|
|
safety = tu.tools.OpenTargets_get_target_safety_profile_by_ensemblID(
|
|
ensemblID=ensembl_id
|
|
)
|
|
mouse_models = tu.tools.OpenTargets_get_biological_mouse_models_by_ensemblID(
|
|
ensemblID=ensembl_id
|
|
)
|
|
validation_results['safety'] = {
|
|
'profile': safety,
|
|
'mouse_models': mouse_models
|
|
}
|
|
|
|
# 6. COMPETITIVE LANDSCAPE
|
|
lit_count = tu.tools.PubMed_search_articles(
|
|
query=f'{gene_symbol} AND drug AND cancer',
|
|
limit=0
|
|
)
|
|
validation_results['competitive'] = {
|
|
'publication_count': lit_count.get('count', 0),
|
|
'maturity': 'mature' if lit_count.get('count', 0) > 1000 else 'emerging'
|
|
}
|
|
|
|
return validation_results
|
|
|
|
results = validate_target('CDK4')
|
|
```
|
|
|
|
**Validation Report**:
|
|
```markdown
|
|
# Target Validation Report: CDK4
|
|
|
|
## Validation Scorecard
|
|
|
|
| Criterion | Score | Evidence |
|
|
|-----------|-------|----------|
|
|
| Genetic Evidence | ✅ HIGH | Strong cancer associations |
|
|
| Expression | ✅ HIGH | Overexpressed in multiple cancers |
|
|
| Functional Role | ✅ HIGH | Cell cycle regulator |
|
|
| Druggability | ✅ HIGH | Approved inhibitors |
|
|
| Safety | ⚠️ MEDIUM | On-target effects expected |
|
|
| Competitive | 🔴 HIGH | Mature, crowded space |
|
|
|
|
## Existing Drugs
|
|
- Palbociclib (Ibrance)
|
|
- Ribociclib (Kisqali)
|
|
- Abemaciclib (Verzenio)
|
|
|
|
## Recommendation
|
|
CDK4 is a **validated target** with approved drugs.
|
|
New entrants would need differentiation (selectivity, CNS penetration, etc.)
|
|
```
|
|
|
|
---
|
|
|
|
## Example 5: Finding Drug Targets for a Disease
|
|
|
|
**Query**: "What are the best drug targets for Alzheimer's disease?"
|
|
|
|
### Disease-to-Target Discovery
|
|
|
|
```python
|
|
def find_targets_for_disease(disease_name):
|
|
tu = ToolUniverse(use_cache=True)
|
|
tu.load_tools()
|
|
|
|
# 1. Get disease ID
|
|
disease_search = tu.tools.OpenTargets_get_disease_ids_by_name(
|
|
diseaseName=disease_name
|
|
)
|
|
efo_id = disease_search.get('id') # e.g., EFO_0000249 for Alzheimer's
|
|
|
|
# 2. Get associated targets
|
|
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
|
|
efoId=efo_id
|
|
)
|
|
|
|
# 3. For top targets, assess druggability
|
|
top_targets = targets.get('data', [])[:10]
|
|
|
|
target_assessments = []
|
|
for target in top_targets:
|
|
ensembl_id = target.get('target_id')
|
|
symbol = target.get('gene_symbol')
|
|
|
|
# Druggability
|
|
tract = tu.tools.OpenTargets_get_target_tractability_by_ensemblID(
|
|
ensemblID=ensembl_id
|
|
)
|
|
|
|
# Existing drugs
|
|
drugs = tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblID(
|
|
ensemblID=ensembl_id
|
|
)
|
|
|
|
# Safety
|
|
safety = tu.tools.OpenTargets_get_target_safety_profile_by_ensemblID(
|
|
ensemblID=ensembl_id
|
|
)
|
|
|
|
target_assessments.append({
|
|
'symbol': symbol,
|
|
'ensembl_id': ensembl_id,
|
|
'disease_score': target.get('score'),
|
|
'tractability': tract,
|
|
'drug_count': len(drugs.get('data', [])),
|
|
'safety_flags': len(safety.get('data', []))
|
|
})
|
|
|
|
return target_assessments
|
|
|
|
alzheimer_targets = find_targets_for_disease("Alzheimer's disease")
|
|
```
|
|
|
|
**Output**:
|
|
```markdown
|
|
# Top Drug Targets for Alzheimer's Disease
|
|
|
|
| Rank | Target | Score | Druggability | Drugs | Safety |
|
|
|------|--------|-------|--------------|-------|--------|
|
|
| 1 | APP | 0.95 | MEDIUM | 0 | ⚠️ |
|
|
| 2 | PSEN1 | 0.92 | LOW | 0 | ⚠️ |
|
|
| 3 | APOE | 0.88 | LOW | 0 | ✅ |
|
|
| 4 | MAPT | 0.85 | MEDIUM | 2 | ⚠️ |
|
|
| 5 | BACE1 | 0.82 | HIGH | 0* | ⚠️ |
|
|
| 6 | GSK3B | 0.75 | HIGH | 5 | ⚠️ |
|
|
| 7 | ACE | 0.70 | HIGH | 10+ | ✅ |
|
|
| 8 | TREM2 | 0.68 | MEDIUM | 2 | ✅ |
|
|
|
|
*BACE1 inhibitors failed in trials
|
|
|
|
## Recommendations
|
|
1. **TREM2** - Emerging target, favorable safety, antibody approaches
|
|
2. **GSK3B** - Druggable, existing tool compounds
|
|
3. **ACE** - Repurposing opportunity (existing drugs)
|
|
```
|
|
|
|
---
|
|
|
|
## Quick Reference: Common Multi-Step Patterns
|
|
|
|
### Pattern: Gene Symbol → Full Profile
|
|
|
|
```python
|
|
# 1. Symbol → UniProt
|
|
search = tu.tools.UniProt_search(query=f'gene:{symbol} AND organism_id:9606', limit=1)
|
|
uniprot = search['results'][0]['primaryAccession']
|
|
|
|
# 2. UniProt → Ensembl
|
|
mapping = tu.tools.UniProt_id_mapping(ids=[uniprot], from_db='UniProtKB_AC-ID', to_db='Ensembl')
|
|
ensembl = mapping['results'][0]['to']
|
|
|
|
# 3. Get all info
|
|
entry = tu.tools.UniProt_get_entry_by_accession(accession=uniprot)
|
|
tractability = tu.tools.OpenTargets_get_target_tractability_by_ensemblID(ensemblID=ensembl)
|
|
```
|
|
|
|
### Pattern: PDB → Ligand Analysis
|
|
|
|
```python
|
|
# 1. Get PDB info
|
|
pdb_info = tu.tools.get_protein_metadata_by_pdb_id(pdb_id='1M17')
|
|
|
|
# 2. Get ligands
|
|
ligands = pdb_info.get('rcsb_binding_affinity', [])
|
|
|
|
# 3. For each ligand, get ChEMBL data
|
|
for lig in ligands:
|
|
comp_id = lig.get('comp_id')
|
|
smiles = tu.tools.get_ligand_smiles_by_chem_comp_id(chem_comp_id=comp_id)
|
|
# Search ChEMBL for similar molecules
|
|
```
|
|
|
|
### Pattern: Disease → Target → Drug
|
|
|
|
```python
|
|
# 1. Disease → EFO ID
|
|
efo = tu.tools.OpenTargets_get_disease_ids_by_name(diseaseName='lung cancer')
|
|
|
|
# 2. EFO → Targets
|
|
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(efoId=efo['id'])
|
|
|
|
# 3. Target → Drugs
|
|
for target in targets['data'][:5]:
|
|
drugs = tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblID(
|
|
ensemblID=target['target_id']
|
|
)
|
|
```
|