Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

chembl-database化学数据库

Agent Skill

用于辅助数据库表结构、查询语句、迁移脚本和数据维护任务。它适合让 Agent 分析 schema、编写 SQL、排查查询问题、整理索引或生成迁移建议。使用时需要明确数据库类型、连接环境和目标表,区分只读分析与写入变更;涉及删除、更新、迁移和批量导入时,应优先 dry-run、备份或事务保护,避免误操作。

总安装

685

周安装

28

GitHub Stars

公开资料未说明

下载量

222
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:chembl-database(化学数据库)
来源仓库:https://github.com/aminoanalytica/amina-skills
仓库路径:skills/chembl-database
安装命令:
npx skills add https://github.com/aminoanalytica/amina-skills --skill chembl-database
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/aminoanalytica/amina-skills --skill chembl-database

简介

chembl-database 用于访问 ChEMBL 生物活性化合物数据库,包含超过 200 万个化合物和 1900 万生物活性测量数据。

  • 适用于查找蛋白靶点抑制剂、搜索类似化合物或获取药物作用机制数据的场景。
  • 支持按分子属性(如 Lipinski 规则)筛选化合物。
  • 安装命令:npx skills add https://github.com/aminoanalytica/amina-skills --skill chembl-database。
  • 使用前请确认数据库连接权限和查询频率限制。

SKILL.md

ChEMBL Database

ChEMBL is the European Bioinformatics Institute's repository of bioactive compound data, containing over 2 million compounds, 19 million bioactivity measurements, and 13,000+ drug targets.

Use Cases

  • Find potent inhibitors for a protein target
  • Search for compounds similar to a known drug
  • Retrieve drug mechanism of action data
  • Filter compounds by molecular properties (Lipinski, etc.)
  • Export bioactivity data for ML or analysis

Installation

uv pip install chembl_webresource_client

Basic Usage

from chembl_webresource_client.new_client import new_client

# Fetch compound by identifier
mol = new_client.molecule.get('CHEMBL192')

# Retrieve target data
tgt = new_client.target.get('CHEMBL203')

# Query activity measurements
acts = new_client.activity.filter(
    target_chembl_id='CHEMBL203',
    standard_type='IC50',
    standard_value__lte=50
)

Available Endpoints

ResourceDescription
moleculeCompound structures and properties
targetBiological targets
activityBioassay measurements
assayExperimental protocols
drugApproved drug data
mechanismDrug mechanisms of action
drug_indicationTherapeutic indications
similarityStructure similarity search
substructureSubstructure search
documentLiterature references
cell_lineCell line data
protein_classProtein classifications
imageSVG molecular images

Query Operators

The client uses Django-style filtering:

OperatorFunctionExample
__exactExact matchpref_name__exact='Aspirin'
__icontainsCase-insensitive substringpref_name__icontains='kinase'
__lte, __gteLess/greater than or equalstandard_value__lte=10
__lt, __gtLess/greater thanpchembl_value__gt=7
__rangeValue within rangealogp__range=[-1, 5]
__inValue in listtarget_chembl_id__in=['CHEMBL203']
__isnullNull checkpchembl_value__isnull=False
__startswithPrefix matchpref_name__startswith='Proto'
__regexRegular expressionpref_name__regex='^[A-Z]{3}'

Common Workflows

Find Target Inhibitors

from chembl_webresource_client.new_client import new_client

activity = new_client.activity

# Get potent BRAF inhibitors (IC50 < 100 nM)
braf_hits = activity.filter(
    target_chembl_id='CHEMBL5145',
    standard_type='IC50',
    standard_value__lte=100,
    standard_units='nM'
)

for hit in braf_hits:
    print(f"{hit['molecule_chembl_id']}: {hit['standard_value']} nM")

Search by Target Name

from chembl_webresource_client.new_client import new_client

target = new_client.target
activity = new_client.activity

# Find CDK targets
cdk_targets = target.filter(
    pref_name__icontains='cyclin-dependent kinase',
    target_type='SINGLE PROTEIN'
)

target_ids = [t['target_chembl_id'] for t in cdk_targets]

# Get activities for these targets
cdk_activities = activity.filter(
    target_chembl_id__in=target_ids[:5],
    standard_type='IC50',
    standard_value__lte=100,
    standard_units='nM'
)

Structure Similarity Search

from chembl_webresource_client.new_client import new_client

sim = new_client.similarity

# Find molecules 80% similar to ibuprofen
ibuprofen_smiles = 'CC(C)Cc1ccc(cc1)C(C)C(=O)O'
matches = sim.filter(smiles=ibuprofen_smiles, similarity=80)

for m in matches:
    print(f"{m['molecule_chembl_id']}: {m['similarity']}%")

Substructure Search

from chembl_webresource_client.new_client import new_client

sub = new_client.substructure

# Find compounds with benzimidazole core
benzimidazole = 'c1ccc2[nH]cnc2c1'
compounds = sub.filter(smiles=benzimidazole)

Filter by Molecular Properties

from chembl_webresource_client.new_client import new_client

mol = new_client.molecule

# Lipinski-compliant fragments
fragments = mol.filter(
    molecule_properties__mw_freebase__lte=300,
    molecule_properties__alogp__lte=3,
    molecule_properties__hbd__lte=3,
    molecule_properties__hba__lte=3
)

Drug Mechanisms of Action

from chembl_webresource_client.new_client import new_client

mech = new_client.mechanism
drug_ind = new_client.drug_indication

# Get mechanism of metformin
metformin_id = 'CHEMBL1431'
mechanisms = mech.filter(molecule_chembl_id=metformin_id)

for m in mechanisms:
    print(f"Target: {m['target_chembl_id']}")
    print(f"Action: {m['action_type']}")

# Get approved indications
indications = drug_ind.filter(molecule_chembl_id=metformin_id)

Generate Molecule Images

from chembl_webresource_client.new_client import new_client

img = new_client.image

# Get SVG of caffeine
caffeine_svg = img.get('CHEMBL113')

with open('caffeine.svg', 'w') as f:
    f.write(caffeine_svg)

Key Response Fields

Molecule Properties

FieldDescription
molecule_chembl_idChEMBL identifier
pref_namePreferred name
molecule_structures.canonical_smilesSMILES string
molecule_structures.standard_inchi_keyInChI key
molecule_properties.mw_freebaseMolecular weight
molecule_properties.alogpCalculated LogP
molecule_properties.hba / hbdH-bond acceptors/donors
molecule_properties.psaPolar surface area
molecule_properties.rtbRotatable bonds
molecule_properties.num_ro5_violationsLipinski violations
molecule_properties.qed_weightedQED drug-likeness

Activity Fields

FieldDescription
molecule_chembl_idCompound ID
target_chembl_idTarget ID
standard_typeMeasurement type (IC50, Ki, EC50)
standard_valueNumeric value
standard_unitsUnits (nM, uM)
pchembl_valueNormalized -log10 value
data_validity_commentQuality flag
potential_duplicateDuplicate indicator

Target Fields

FieldDescription
target_chembl_idChEMBL target ID
pref_namePreferred name
target_typeSINGLE PROTEIN, PROTEIN COMPLEX, etc.
organismSpecies

Mechanism Fields

FieldDescription
molecule_chembl_idDrug ID
target_chembl_idTarget ID
mechanism_of_actionDescription
action_typeINHIBITOR, AGONIST, ANTAGONIST, etc.

Export to DataFrame

import pandas as pd
from chembl_webresource_client.new_client import new_client

activity = new_client.activity

results = activity.filter(
    target_chembl_id='CHEMBL279',
    standard_type='Ki',
    pchembl_value__isnull=False
)

df = pd.DataFrame(list(results))
df.to_csv('dopamine_d2_ligands.csv', index=False)

Configuration

from chembl_webresource_client.settings import Settings

cfg = Settings.Instance()

cfg.CACHING = True           # Enable response caching
cfg.CACHE_EXPIRE = 43200     # Cache TTL (12 hours)
cfg.TIMEOUT = 60             # Request timeout
cfg.TOTAL_RETRIES = 5        # Retry attempts

Data Quality Notes

  • ChEMBL data is manually curated but verify data_validity_comment fields
  • Check potential_duplicate flags when aggregating results
  • Use pchembl_value for normalized comparisons across assay types
  • Activity values without standard_units should be used cautiously

Best Practices

  1. Use caching - Reduces API load and improves performance
  2. Filter early - Apply filters to reduce data transfer
  3. Limit results - Use [:n] slicing for testing
  4. Check validity - Inspect data_validity_comment fields
  5. Use pchembl_value - Normalized values enable cross-assay comparison
  6. Batch queries - Use __in operator for multiple IDs

Error Handling

from chembl_webresource_client.new_client import new_client

mol = new_client.molecule

try:
    result = mol.get('INVALID_ID')
except Exception as e:
    if '404' in str(e):
        print("Compound not found")
    elif '503' in str(e):
        print("Service unavailable - retry later")
    else:
        raise

External Links

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.27%
按下载量换算76

Claude

31.27%
按下载量换算69

Cursor

20.1%
按下载量换算45

Gemini CLI

10.67%
按下载量换算24

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills