Skip to content
Automation
Skill

/chembl-database

Query ChEMBL bioactive molecules and drug discovery data. Search compounds by structure/properties, retrieve bioactivity data (IC50, Ki), find inhibitors, perform SAR studies, for medicinal chemistry.

From plugin
vibe-skills
3.8k200 skills7 agents3 commands

Claude Code

$ npx -y skills add foryourhealth111-pixel/Vibe-Skills --skill chembl-database --agent claude-code

SKILL.md

chembl-database.SKILL.md
name: chembl-database
description: Query ChEMBL bioactive molecules and drug discovery data. Search compounds by structure/properties, retrieve bioactivity data (IC50, Ki), find inhibitors, perform SAR studies, for medicinal chemistry.
license: Unknown
metadata:
    skill-author: K-Dense Inc.

ChEMBL Database

Overview

ChEMBL is a manually curated database of bioactive molecules maintained by the European Bioinformatics Institute (EBI), containing over 2 million compounds, 19 million bioactivity measurements, 13,000+ drug targets, and data on approved drugs and clinical candidates. Access and query this data programmatically using the ChEMBL Python client for drug discovery and medicinal chemistry research.

When to Use This Skill

This skill should be used when:

  • **Compound searches**: Finding molecules by name, structure, or properties
  • **Target information**: Retrieving data about proteins, enzymes, or biological targets
  • **Bioactivity data**: Querying IC50, Ki, EC50, or other activity measurements
  • **Drug information**: Looking up approved drugs, mechanisms, or indications
  • **Structure searches**: Performing similarity or substructure searches
  • **Cheminformatics**: Analyzing molecular properties and drug-likeness
  • **Target-ligand relationships**: Exploring compound-target interactions
  • **Drug discovery**: Identifying inhibitors, agonists, or bioactive molecules

Installation and Setup

Python Client

The ChEMBL Python client is required for programmatic access:

uv pip install chembl_webresource_client

Basic Usage Pattern

from chembl_webresource_client.new_client import new_client

# Access different endpoints
molecule = new_client.molecule
target = new_client.target
activity = new_client.activity
drug = new_client.drug

Core Capabilities

1. Molecule Queries

**Retrieve by ChEMBL ID:**

molecule = new_client.molecule
aspirin = molecule.get('CHEMBL25')

**Search by name:**

results = molecule.filter(pref_name__icontains='aspirin')

**Filter by properties:**

# Find small molecules (MW <= 500) with favorable LogP
results = molecule.filter(
    molecule_properties__mw_freebase__lte=500,
    molecule_properties__alogp__lte=5
)

2. Target Queries

**Retrieve target information:**

target = new_client.target
egfr = target.get('CHEMBL203')

**Search for specific target types:**

# Find all kinase targets
kinases = target.filter(
    target_type='SINGLE PROTEIN',
    pref_name__icontains='kinase'
)

3. Bioactivity Data

**Query activities for a target:**

activity = new_client.activity
# Find potent EGFR inhibitors
results = activity.filter(
    target_chembl_id='CHEMBL203',
    standard_type='IC50',
    standard_value__lte=100,
    standard_units='nM'
)

**Get all activities for a compound:**

compound_activities = activity.filter(
    molecule_chembl_id='CHEMBL25',
    pchembl_value__isnull=False
)

4. Structure-Based Searches

**Similarity search:**

similarity = new_client.similarity
# Find compounds similar to aspirin
similar = similarity.filter(
    smiles='CC(=O)Oc1ccccc1C(=O)O',
    similarity=85  # 85% similarity threshold
)

**Substructure search:**

substructure = new_client.substructure
# Find compounds containing benzene ring
results = substructure.filter(smiles='c1ccccc1')

5. Drug Information

**Retrieve drug data:**

drug = new_client.drug
drug_info = drug.get('CHEMBL25')

**Get mechanisms of action:**

mechanism = new_client.mechanism
mechanisms = mechanism.filter(molecule_chembl_id='CHEMBL25')

**Query drug indications:**

drug_indication = new_client.drug_indication
indications = drug_indication.filter(molecule_chembl_id='CHEMBL25')

Query Workflow

Workflow 1: Finding Inhibitors for a Target

1. **Identify the target** by searching by name:

   targets = new_client.target.filter(pref_name__icontains='EGFR')
   target_id = targets[0]['target_chembl_id']

2. **Query bioactivity data** for that target:

   activities = new_client.activity.filter(
       target_chembl_id=target_id,
       standard_type='IC50',
       standard_value__lte=100
   )

3. **Extract compound IDs** and retrieve details:

   compound_ids = [act['molecule_chembl_id'] for act in activities]
   compounds = [new_client.molecule.get(cid) for cid in compound_ids]

Workflow 2: Analyzing a Known Drug

1. **Get drug information**:

   drug_info = new_client.drug.get('CHEMBL1234')

2. **Retrieve mechanisms**:

   mechanisms = new_client.mechanism.filter(molecule_chembl_id='CHEMBL1234')

3. **Find all bioactivities**:

   activities = new_client.activity.filter(molecule_chembl_id='CHEMBL1234')

Workflow 3: Structure-Activity Relationship (SAR) Study

1. **Find similar compounds**:

   similar = new_client.similarity.filter(smiles='query_smiles', similarity=80)

2. **Get activities for each compound**:

   for compound in similar:
       activities = new_client.activity.filter(
           molecule_chembl_id=compound['molecule_chembl_id']
       )

3. **Analyze property-activity relationships** using molecular properties from results.

Filter Operators

ChEMBL supports Django-style query filters:

  • `__exact` - Exact match
  • `__iexact` - Case-insensitive exact match
  • `__contains` / `__icontains` - Substring matching
  • `__startswith` / `__endswith` - Prefix/suffix matching
  • `__gt`, `__gte`, `__lt`, `__lte` - Numeric comparisons
  • `__range` - Value in range
  • `__in` - Value in list
  • `__isnull` - Null/not null check

Data Export and Analysis

Convert results to pandas DataFrame for analysis:

import pandas as pd

activities = new_client.activity.filter(target_chembl_id='CHEMBL203')
df = pd.Data
Read more
@foryourhealth111-pixel
Ships withvibe-skills

Intelligent Skill routing and workflow orchestration for AI agents — +21.12 pp reward, −29.6% tokens on SkillsBench with DeepSeekV4Flash-VE.

3.8k200 skills7 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.8k
Star history of foryourhealth111-pixel/Vibe-Skills on GitHub, a chart by star-history.com

Other skills on vibe-skills.

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about chembl-database.

Which coding agents can use chembl-database?
chembl-database installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.