<< All versions

Skill v1.0.0

currentAutomated scan100/100
qsong-github/drugclaw/chebi
──Details
PublishedOctober 21, 2026 at 11:22 PM
Content Hashsha256:21a938424c35b38f...
Git SHA2c940ca560c6
──Files
Files (1 file, 3.0 KB)
SKILL.md3.0 KBactive
SKILL.md · 79 lines · 3.0 KB

version: "1.0.0" name: chebi-query description: > Query the ChEBI (Chemical Entities of Biological Interest) database. Use whenever the user asks about small molecule identifiers, chemical ontology roles, molecular formulae, SMILES, InChI, synonyms, or cross-references for biologically relevant chemical compounds via ChEBI.


ChEBI Query Skill

Search the ChEBI 2.0 REST API by any entity. Auto-detects input type:

Input PatternDetected AsAction
CHEBI:15422 / chebi:15422ChEBI ID (prefixed)full entity lookup via /compound/{id}/
27732 (pure digits ≤7)ChEBI ID (numeric)full entity lookup via /compound/{id}/
anything elsefree textElasticsearch search via /es_search/?term=...

API

FunctionInputReturns
search(query, max_results=25)single entity stringlist[dict]
search_batch(queries, max_results=25)list of entity stringsdict[str, list[dict]]
summarize(results, label)result list + labelcompact one-line-per-hit text
to_json(results)result listlist[dict] (JSON-serialisable)

Lower-level helpers (called internally):

FunctionPurpose
search_chebi(query, max_results)keyword search via GET /es_search/?term=...&size=N
get_entity(chebi_id)full entity via GET /compound/CHEBI:{id}/
get_entities_batch(chebi_ids)batch lookup via GET /compounds/?chebi_ids=id1,id2,...

search_batch() automatically uses the efficient batch endpoint when all queries are ChEBI IDs; otherwise it iterates with a 0.3 s delay.

Usage

See if __name__ == "__main__" block in 64_ChEBI.py for runnable examples covering: single ID lookup, name search, formula search, batch ID search, mixed batch search, and JSON output.

Key Fields Returned

Top-level: chebi_accession, name, ascii_name, definition, stars (curation quality; 3 = fully curated), secondary_ids, is_released.

chemical_data (nested dict): formula, charge, mass, monoisotopic_mass.

default_structure (nested dict): smiles, standard_inchi, standard_inchi_key, wurcs.

names (nested dict by type): keys like IUPAC NAME, SYNONYM, BRAND NAME, UNIPROT NAME; each value is a list of name objects.

ontology_relations: incoming_relations and outgoing_relations, each a list of {init_id, init_name, relation_type, final_id, final_name}.

database_accessions (nested dict by type): CAS, MANUAL_X_REF, REGISTRY_NUMBER, CITATION; cross-refs to DrugBank, KEGG, HMDB, PubChem, PDBeChem, Wikipedia, etc.

roles_classification: list of role dicts with chebi_accession, name, definition, biological_role (bool), application (bool), chemical_role (bool).

Data Source

  • Database: ChEBI 2.0 (EMBL-EBI), >195,000 molecular entities
  • API base: https://www.ebi.ac.uk/chebi/backend/api/public/
  • Docs: <https://www.ebi.ac.uk/chebi/backend/api/docs/>
  • License: CC BY 4.0
  • Citation: Bento et al. Nucleic Acids Res. 2025, 54(D1), D1768–D1774.
All versions