360 Secure SkillHub
360 安全技能中心

ChEMBL Query

该Skill通过chembl_query工具访问ChEMBL数据库,支持按靶点名称/UniProt ID、分子名称/SMILES/ChEMBL ID及疾病适应症检索生物活性与药物数据,并解释pChEMBL活性值与临床分期,输出结构化字段列表。

hollyya
hollyya
热度 40.28
最近更新 2026-05-11 17:41:17
分类:搜索依赖:代码执行 / 第三方 API应用场景:研究 / 数据处理 / API 集成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add chembl-query
Metadata
name
chembl-query
description
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).
license
MIT
category
knowledge-retrieval
tags
["chembl","bioactivity","drug-discovery","target","indication"]

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.