Discover novel small molecule binders for protein targets using structure-based and ligand-based approaches. Creates actionable reports with candidate compounds, ADMET profiles, and synthesis feasibility. Use when users ask to find small molecules for a target, identify novel binders, perform virtual screening, or need hit-to-lead compound identification.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Discover novel small molecule binders for protein targets using structure-based and ligand-based approaches. Creates actionable reports with candidate compounds, ADMET profiles, and synthesis feasibility. Use when users ask to find small molecules for a target, identify novel binders, perform virtual screening, or need hit-to-lead compound identification.
Small Molecule Binder Discovery Strategy
Systematic discovery of novel small molecule binders using 60+ ToolUniverse tools across druggability assessment, known ligand mining, similarity expansion, ADMET filtering, and synthesis feasibility.
KEY PRINCIPLES:
Report-first approach - Create report file FIRST, then populate progressively
Target validation FIRST - Confirm druggability before compound searching
Multi-strategy approach - Combine structure-based and ligand-based methods
ADMET-aware filtering - Eliminate poor compounds early
Evidence grading - Grade candidates by supporting evidence
Actionable output - Provide prioritized candidates with rationale
English-first queries - Always use English terms in tool calls, even if the user writes in another language. Only try original-language terms as a fallback. Respond in the user's language
Critical Workflow Requirements
1. Report-First Approach (MANDATORY)
DO NOT show search process or tool outputs to the user. Instead:
Create the report file FIRST - Before any data collection:
File name: [TARGET]_binder_discovery_report.md
Initialize with all section headers from the template
Add placeholder text: [Researching...] in each section
Progressively update the report - As you gather data:
Update each section with findings immediately
The user sees the report growing, not the search process
Output separate data files:
[TARGET]_candidate_compounds.csv - Prioritized compounds with SMILES, scores
[TARGET]_bibliography.json - Literature references (optional)
2. Citation Requirements (MANDATORY)
Every piece of information MUST include its source:
Competition: Understand what's already in market/clinic
Strategy: Identify gaps (no oral, no CNS-penetrant)
Synergy: Potential combination opportunities
1.3 Binding Site Analysis
1. ChEMBL_search_binding_sites(target_chembl_id)
└─ Extract: Binding site names, types
2. get_binding_affinity_by_pdb_id(pdb_id) # For each PDB with ligand
└─ Extract: Kd, Ki, IC50 values for co-crystallized ligands
3. InterPro_get_protein_domains(uniprot_accession)
└─ Extract: Domain architecture, active sites
When no experimental structure is available, or for custom domain predictions.
Requires: NVIDIA_API_KEY environment variable
Option A: AlphaFold2 (High accuracy, async)
NvidiaNIM_alphafold2(
sequence=kinase_domain_sequence,
algorithm="mmseqs2",
relax_prediction=False
)
└─ Returns: PDB structure with pLDDT confidence scores
└─ Use when: Accuracy is critical, time is available (~5-15 min)
GtoPdb_get_target_interactions(target_id)
└─ Extract: Ligands with pKi/pIC50, selectivity data
2.3 Chemical Probes
OpenTargets_get_chemical_probes_by_target_ensemblID(ensemblId)
└─ Extract: Validated chemical probes with ratings
Output for Report:
### 2.3 Chemical Probes
| Probe | Target | Rating | Use | Caveat | Source |
|-------|--------|--------|-----|--------|--------|
| Probe-X | EGFR | ★★★★ | In vivo | None | Chemical Probes Portal |
| Probe-Y | EGFR | ★★★☆ | In vitro | Off-target kinase activity | Open Targets |
**Recommended Probe for Target Validation**: Probe-X (highest rating, validated in vivo)
2.4 SAR Analysis from Actives
Identify common scaffolds and SAR trends:
### 2.4 Structure-Activity Relationships**Core Scaffolds Identified**:
1.**4-Anilinoquinazoline** (34 compounds, IC50 range: 2-500 nM)
- N1 position: Aryl preferred
- C6/C7: Methoxy groups improve potency
2.**Pyrimidine-amine** (12 compounds, IC50 range: 15-800 nM)
- Less potent than quinazolines
- Better selectivity profile
**Key SAR Insights**:
- Halogen at meta position of aniline increases potency 3-5x
- C7 ethoxy group critical for binding (H-bond to M793)
2.5 BindingDB Affinity Data (NEW)
BindingDB provides experimental binding affinity data complementary to ChEMBL:
defget_bindingdb_ligands(tu, uniprot_id, affinity_cutoff=10000):
"""
Get ligands from BindingDB with measured affinities.
BindingDB advantages:
- May have compounds not in ChEMBL
- Different affinity types (Ki, IC50, Kd)
- Direct literature links
"""
result = tu.tools.BindingDB_get_ligands_by_uniprot(
uniprot=uniprot_id,
affinity_cutoff=affinity_cutoff # nM
)
if result:
ligands = []
for entry in result:
ligands.append({
'smiles': entry.get('smile'),
'affinity_type': entry.get('affinity_type'),
'affinity_nM': entry.get('affinity'),
'pmid': entry.get('pmid'),
'monomer_id': entry.get('monomerid')
})
# Sort by potency
ligands.sort(key=lambda x: float(x['affinity_nM']) if x['affinity_nM'] else1e6)
return ligands[:50] # Top 50return []
deffind_compound_polypharmacology(tu, smiles, similarity_cutoff=0.85):
"""Find off-target interactions for selectivity analysis."""
targets = tu.tools.BindingDB_get_targets_by_compound(
smiles=smiles,
similarity_cutoff=similarity_cutoff
)
return targets # Other proteins this compound may bind
BindingDB Output for Report:
### 2.5 Additional Ligands (BindingDB) (NEW)**Total Unique Ligands**: 89 (non-overlapping with ChEMBL)
**Most Potent**: 0.3 nM Ki
| SMILES | Affinity Type | Value (nM) | PMID | BindingDB ID |
|--------|---------------|------------|------|--------------|
| CC(C)Cc1ccc... | Ki | 0.3 | 15737014 | 12345 |
| COc1cc2ncnc... | IC50 | 2.1 | 16460808 | 12346 |
**Novel Scaffolds from BindingDB**: 3 scaffolds not seen in ChEMBL data
*Source: BindingDB via `BindingDB_get_ligands_by_uniprot`*
2.6 PubChem BioAssay Screening Data (NEW)
PubChem BioAssay provides HTS screening results and dose-response data:
defget_pubchem_assays_for_target(tu, gene_symbol):
"""
Get bioassays and active compounds from PubChem.
Advantages:
- HTS data not in ChEMBL
- NIH-funded screening programs (MLPCN)
- Dose-response curves for IC50 calculation
"""# Search assays targeting this gene
assays = tu.tools.PubChem_search_assays_by_target_gene(
gene_symbol=gene_symbol
)
results = {
'assays': [],
'total_active_compounds': 0
}
if assays.get('data', {}).get('aids'):
for aid in assays['data']['aids'][:10]: # Top 10 assays# Get assay summary
summary = tu.tools.PubChem_get_assay_summary(aid=aid)
# Get active compounds
actives = tu.tools.PubChem_get_assay_active_compounds(aid=aid)
active_cids = actives.get('data', {}).get('cids', [])
results['assays'].append({
'aid': aid,
'summary': summary.get('data', {}),
'active_count': len(active_cids)
})
results['total_active_compounds'] += len(active_cids)
return results
defget_dose_response_data(tu, aid):
"""Get dose-response curves for IC50/EC50 determination."""
dr_data = tu.tools.PubChem_get_assay_dose_response(aid=aid)
return dr_data
defget_compound_bioactivity_profile(tu, cid):
"""Get all bioactivity data for a compound."""
profile = tu.tools.PubChem_get_compound_bioactivity(cid=cid)
return profile
PubChem BioAssay Output for Report:
### 2.6 PubChem HTS Screening Data (NEW)**Assays Found**: 45
**Total Active Compounds Across Assays**: ~1,200
| AID | Assay Type | Active Compounds | Target | Description |
|-----|------------|------------------|--------|-------------|
| 504526 | HTS | 234 | EGFR | qHTS inhibition screen |
| 1053104 | Dose-response | 12 | EGFR kinase | Confirmatory IC50 |
| 651564 | Cellular | 8 | EGFR | Cell proliferation assay |
**Novel Actives** (not in ChEMBL/BindingDB):
- CID 12345678: Active in AID 504526, IC50 = 45 nM
- CID 23456789: Active in AID 1053104, IC50 = 120 nM
*Source: PubChem via `PubChem_search_assays_by_target_gene`, `PubChem_get_assay_active_compounds`*
NvidiaNIM_diffdock(
protein=pdb_content, # PDB text content
ligand=reference_sdf, # SDF/MOL2 content
num_poses=10
)
└─ Returns: Docking poses with confidence scores
└─ Use: When you have PDB structure and ligand SDF file
Option B: Boltz2 (From sequence + SMILES)
NvidiaNIM_boltz2(
polymers=[{"molecule_type": "protein", "sequence": kinase_sequence}],
ligands=[{"smiles": "COc1cc2ncnc(Nc3ccc(C#C)cc3)c2cc1OCCOC"}],
sampling_steps=50,
diffusion_samples=1
)
└─ Returns: Protein-ligand complex structure
└─ Use: When starting from SMILES, no SDF needed
3.5.2 Docking Score Interpretation
Score vs Reference
Priority
Symbol
Higher than reference
Top priority
★★★★
Within 5% of reference
High priority
★★★
Within 20% of reference
Moderate priority
★★☆
>20% lower
Low priority
★☆☆
Report Format:
### 3.5 Docking Validation Results**Reference Compound**: Erlotinib
**Method**: DiffDock via NVIDIA NIM
| Metric | Value | Interpretation |
|--------|-------|----------------|
| Best Pose Confidence | 0.906 | Excellent |
| Steric Clashes | None | Clean binding pose |
**Validation Status**: ✓ Structure captures binding pocket correctly
*Source: NVIDIA NIM via `NvidiaNIM_diffdock`*
Phase 4: Compound Expansion
4.1 Similarity Search
Starting from top actives, expand chemical space:
1. ChEMBL_search_similar_molecules(molecule=top_active_smiles, similarity=70)
└─ Extract: Similar compounds not yet tested on target
2. PubChem_search_compounds_by_similarity(smiles, threshold=0.7)
└─ Extract: PubChem CIDs with similar structures
Strategy:
Use 3-5 diverse actives as seeds
Similarity threshold: 70-85% (balance novelty vs. activity)
Prioritize compounds NOT in ChEMBL bioactivity for target