ChEMBL Query
Query ChEMBL database for bioactivity data on drug-like compounds.
When to Use
- Find compounds active against a protein target (target-based search)
- Get bioactivity profile for a molecule (molecule-based search)
- Find drugs for a disease indication (indication-based search)
Workflow
Use Case 1: Target-Based Compound Search
Find compounds with activity against a protein target.
from open_biomed.tools.tool_registry import TOOLS
tool = TOOLS["chembl_query"]
# Search by target name
results, _ = tool.run(
query_type="target",
target_name="EGFR",
standard_type="IC50",
standard_value_lte=100, # nM
limit=20
)
# Or search by UniProt ID
results, _ = tool.run(
query_type="target",
uniprot_id="P00533",
standard_type="IC50",
limit=20
)
Use Case 2: Molecule Bioactivity Profile
Get all known targets and activity data for a compound.
# Search by molecule name
results, _ = tool.run(
query_type="molecule",
molecule_name="imatinib",
limit=50
)
# Or search by SMILES
results, _ = tool.run(
query_type="molecule",
smiles="CC(=O)Oc1ccccc1C(=O)O",
limit=20
)
# Or search by ChEMBL ID
results, _ = tool.run(
query_type="molecule",
chembl_id="CHEMBL25",
limit=20
)
Use Case 3: Disease/Indication-Based Drug Search
Find drugs studied for a specific disease.
# Find all drugs for diabetes
results, _ = tool.run(
query_type="indication",
disease="diabetes",
limit=50
)
# Filter for approved drugs only (max_phase=4)
results, _ = tool.run(
query_type="indication",
disease="diabetes",
max_phase=4, # Approved drugs only
limit=20
)
Expected Outputs
| Query Type |
Output Fields |
| Target |
molecule_chembl_id, molecule_name, target_chembl_id, target_name, standard_type, standard_value, standard_units, pchembl_value |
| Molecule |
molecule_chembl_id, molecule_name, target_chembl_id, target_name, target_organism, standard_type, standard_value, standard_units, pchembl_value |
| Indication |
molecule_chembl_id, molecule_name, indication, max_phase_for_ind, phase_description |
Score Interpretation
Activity Values
| pChEMBL Value |
IC50/Ki Approx |
Interpretation |
| > 9 |
< 1 nM |
Extremely potent |
| 8-9 |
1-10 nM |
Very potent |
| 7-8 |
10-100 nM |
Potent |
| 6-7 |
100 nM - 1 uM |
Moderately active |
| 5-6 |
1-10 uM |
Weakly active |
| < 5 |
> 10 uM |
Inactive |
Clinical Phase
| Phase |
Description |
| 0 |
Preclinical |
| 1 |
Phase I (safety) |
| 2 |
Phase II (efficacy) |
| 3 |
Phase III (large-scale) |
| 4 |
Approved |
Parameters
| Parameter |
Type |
Description |
query_type |
str |
"target", "molecule", or "indication" |
target_name |
str |
Target name (e.g., "EGFR", "BACE1") |
uniprot_id |
str |
UniProt accession (e.g., "P00533") |
molecule_name |
str |
Molecule name (e.g., "aspirin") |
smiles |
str |
SMILES string |
chembl_id |
str |
ChEMBL ID (e.g., "CHEMBL25") |
disease |
str |
Disease name (e.g., "diabetes") |
standard_type |
str |
Activity type (e.g., "IC50", "Ki", "EC50") |
standard_value_lte |
float |
Max activity value (nM) |
max_phase |
int |
Minimum clinical phase (0-4) |
limit |
int |
Max results (default: 50) |
Error Handling
| Error |
Solution |
| Target not found |
Try alternative names or UniProt ID |
| No activity data |
Target may not have curated bioactivity data |
| Molecule not found |
Verify SMILES or try molecule name |
| No indication results |
Try simpler disease terms (e.g., "neoplasm" instead of "cancer") |
| Timeout |
Reduce limit parameter |
Available Tools
| Tool Name |
Purpose |
chembl_query |
Unified ChEMBL query interface |
See examples/basic_example.py for complete runnable examples.
1---2name: chembl-query3description: Query ChEMBL database for bioactivity data on drug-like compounds. Use this skill when: (1) Finding compounds active against a protein target (target-based search), (2) Getting bioactivity profile for a molecule (molecule-based search), (3) Finding drugs for a disease indication (indication-based search).4license: MIT5---67# ChEMBL Query89Query ChEMBL database for bioactivity data on drug-like compounds.1011## When to Use1213- Find compounds active against a protein target (target-based search)14- Get bioactivity profile for a molecule (molecule-based search)15- Find drugs for a disease indication (indication-based search)1617## Workflow1819### Use Case 1: Target-Based Compound Search2021Find compounds with activity against a protein target.2223```python24from open_biomed.tools.tool_registry import TOOLS2526tool = TOOLS["chembl_query"]2728# Search by target name29results, _ = tool.run(30 query_type="target",31 target_name="EGFR",32 standard_type="IC50",33 standard_value_lte=100, # nM34 limit=2035)3637# Or search by UniProt ID38results, _ = tool.run(39 query_type="target",40 uniprot_id="P00533",41 standard_type="IC50",42 limit=2043)44```4546### Use Case 2: Molecule Bioactivity Profile4748Get all known targets and activity data for a compound.4950```python51# Search by molecule name52results, _ = tool.run(53 query_type="molecule",54 molecule_name="imatinib",55 limit=5056)5758# Or search by SMILES59results, _ = tool.run(60 query_type="molecule",61 smiles="CC(=O)Oc1ccccc1C(=O)O",62 limit=2063)6465# Or search by ChEMBL ID66results, _ = tool.run(67 query_type="molecule",68 chembl_id="CHEMBL25",69 limit=2070)71```7273### Use Case 3: Disease/Indication-Based Drug Search7475Find drugs studied for a specific disease.7677```python78# Find all drugs for diabetes79results, _ = tool.run(80 query_type="indication",81 disease="diabetes",82 limit=5083)8485# Filter for approved drugs only (max_phase=4)86results, _ = tool.run(87 query_type="indication",88 disease="diabetes",89 max_phase=4, # Approved drugs only90 limit=2091)92```9394## Expected Outputs9596| Query Type | Output Fields |97|------------|---------------|98| Target | `molecule_chembl_id`, `molecule_name`, `target_chembl_id`, `target_name`, `standard_type`, `standard_value`, `standard_units`, `pchembl_value` |99| Molecule | `molecule_chembl_id`, `molecule_name`, `target_chembl_id`, `target_name`, `target_organism`, `standard_type`, `standard_value`, `standard_units`, `pchembl_value` |100| Indication | `molecule_chembl_id`, `molecule_name`, `indication`, `max_phase_for_ind`, `phase_description` |101102## Score Interpretation103104### Activity Values105106| pChEMBL Value | IC50/Ki Approx | Interpretation |107|---------------|----------------|----------------|108| > 9 | < 1 nM | Extremely potent |109| 8-9 | 1-10 nM | Very potent |110| 7-8 | 10-100 nM | Potent |111| 6-7 | 100 nM - 1 uM | Moderately active |112| 5-6 | 1-10 uM | Weakly active |113| < 5 | > 10 uM | Inactive |114115### Clinical Phase116117| Phase | Description |118|-------|-------------|119| 0 | Preclinical |120| 1 | Phase I (safety) |121| 2 | Phase II (efficacy) |122| 3 | Phase III (large-scale) |123| 4 | Approved |124125## Parameters126127| Parameter | Type | Description |128|-----------|------|-------------|129| `query_type` | str | "target", "molecule", or "indication" |130| `target_name` | str | Target name (e.g., "EGFR", "BACE1") |131| `uniprot_id` | str | UniProt accession (e.g., "P00533") |132| `molecule_name` | str | Molecule name (e.g., "aspirin") |133| `smiles` | str | SMILES string |134| `chembl_id` | str | ChEMBL ID (e.g., "CHEMBL25") |135| `disease` | str | Disease name (e.g., "diabetes") |136| `standard_type` | str | Activity type (e.g., "IC50", "Ki", "EC50") |137| `standard_value_lte` | float | Max activity value (nM) |138| `max_phase` | int | Minimum clinical phase (0-4) |139| `limit` | int | Max results (default: 50) |140141## Error Handling142143| Error | Solution |144|-------|----------|145| Target not found | Try alternative names or UniProt ID |146| No activity data | Target may not have curated bioactivity data |147| Molecule not found | Verify SMILES or try molecule name |148| No indication results | Try simpler disease terms (e.g., "neoplasm" instead of "cancer") |149| Timeout | Reduce limit parameter |150151## Available Tools152153| Tool Name | Purpose |154|-----------|---------|155| `chembl_query` | Unified ChEMBL query interface |156157See `examples/basic_example.py` for complete runnable examples.