ChEMBL Query

Data & APIs

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).

Install

openclaw skills install chembl-query

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 TypeOutput Fields
Targetmolecule_chembl_id, molecule_name, target_chembl_id, target_name, standard_type, standard_value, standard_units, pchembl_value
Moleculemolecule_chembl_id, molecule_name, target_chembl_id, target_name, target_organism, standard_type, standard_value, standard_units, pchembl_value
Indicationmolecule_chembl_id, molecule_name, indication, max_phase_for_ind, phase_description

Score Interpretation

Activity Values

pChEMBL ValueIC50/Ki ApproxInterpretation
> 9< 1 nMExtremely potent
8-91-10 nMVery potent
7-810-100 nMPotent
6-7100 nM - 1 uMModerately active
5-61-10 uMWeakly active
< 5> 10 uMInactive

Clinical Phase

PhaseDescription
0Preclinical
1Phase I (safety)
2Phase II (efficacy)
3Phase III (large-scale)
4Approved

Parameters

ParameterTypeDescription
query_typestr"target", "molecule", or "indication"
target_namestrTarget name (e.g., "EGFR", "BACE1")
uniprot_idstrUniProt accession (e.g., "P00533")
molecule_namestrMolecule name (e.g., "aspirin")
smilesstrSMILES string
chembl_idstrChEMBL ID (e.g., "CHEMBL25")
diseasestrDisease name (e.g., "diabetes")
standard_typestrActivity type (e.g., "IC50", "Ki", "EC50")
standard_value_ltefloatMax activity value (nM)
max_phaseintMinimum clinical phase (0-4)
limitintMax results (default: 50)

Error Handling

ErrorSolution
Target not foundTry alternative names or UniProt ID
No activity dataTarget may not have curated bioactivity data
Molecule not foundVerify SMILES or try molecule name
No indication resultsTry simpler disease terms (e.g., "neoplasm" instead of "cancer")
TimeoutReduce limit parameter

Available Tools

Tool NamePurpose
chembl_queryUnified ChEMBL query interface

See examples/basic_example.py for complete runnable examples.