Token导航 LogoToken导航

Agent Skill · 研究检索

chembl-database(化学数据库)

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

chembl-database 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 48,496。

总安装 685周安装 28GitHub Stars 公开资料未说明下载 222核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 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

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

chembl-database 用于访问 ChEMBL 生物活性化合物数据库,包含超过 200 万个化合物和 1900 万生物活性测量数据。适用于查找蛋白靶点抑制剂、搜索类似化合物或获取药物作用机制数据的场景。支持按分子属性(如 Lipinski 规则)筛选化合物。

安装命令:npx skills add https://github.com/aminoanalytica/amina-skills --skill chembl-database。使用前请确认数据库连接权限和查询频率限制。

来源仓库内路径:skills/chembl-database

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/aminoanalytica/amina-skills --skill chembl-dat…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

chembl-database 怎么安装?

在终端执行 npx skills add https://github.com/aminoanalytica/amina-skills --skill chembl-database。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

chembl-database 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

chembl-database 需要什么权限?

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

chembl-database 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

chembl-database 用的人多吗?

公开数据是累计安装 685 次,近一周安装 28 次,下载 222 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

chembl-database 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
chembl-database

化学数据库 · 本页

685—需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

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

平台分布

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