
Natural Product Dereplication
FreeIdentify and classify microbial natural products efficiently.
Free · Opens the source repo
What Natural Product Dereplication does
The Natural Product Dereplication skill is designed for researchers and chemists working in the field of natural products, particularly those focusing on microbial metabolites. This skill allows users to determine whether a given compound is a known natural product, identify the organism that produces it, and classify it within the ChemOnt chemical taxonomy. By leveraging the NPAtlas database, users can quickly ascertain the provenance of microbial natural products, which is crucial for avoiding redundancy in research and for understanding the biological context of these compounds.
The workflow begins by classifying the input, which can be a chemical name, formula, exact mass, InChIKey, or SMILES notation. The skill then retrieves the InChIKey, a standardized identifier that ensures precise dereplication. Following this, it searches the NPAtlas database to find known compounds, fetching detailed records that include the producing organism and relevant literature references. The skill also utilizes ClassyFire to assign a comprehensive chemical classification, providing users with a hierarchy that includes kingdom, superclass, class, and subclass.
In addition to dereplication, the skill cross-references results with PubChem to confirm the identity of the compound, ensuring that the information is anchored in a reliable secondary database. This multi-step approach minimizes the risk of errors and enhances the reliability of the dereplication process. The Natural Product Dereplication skill is particularly useful for chemists engaged in metabolomics, drug discovery, and related fields, where understanding the identity and classification of compounds is essential for advancing research.
However, it is important to note that this skill is specifically focused on microbial natural products and does not cover compounds derived from plants, animals, or marine organisms unless a microbial producer is reported. Users looking for general compound identity or ADMET analysis should consider other tools in the tooluniverse suite, as this skill is tailored to the specific needs of natural product chemists.
When to use it
Use this skill when you need to verify the identity of a microbial natural product and classify it within a chemical taxonomy.
When not to use it
This skill is not suitable for identifying non-microbial compounds or for conducting metabolomics pathway analysis.
What you can build with it
Verifying a New Compound
When you discover a new compound in your research, use this skill to check if it's already known and documented.
Classifying Microbial Metabolites
If you need to classify a recently isolated microbial metabolite, this skill will provide the necessary chemical taxonomy.
Cross-Referencing Compound Identity
Use this skill to confirm the identity of a compound by cross-referencing it with multiple databases for accuracy.
How to install Natural Product Dereplication
View source1. Install with the skills CLI
npx skills add mims-harvard/tooluniverse/tooluniverse-natural-product-dereplication --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by mims-harvardNatural Product Dereplication & Chemotaxonomy
Decide whether a putative natural product is already known, identify the microbe that produces it, attach the literature reference, and assign its ChemOnt chemical class. This is the dereplication question every NP chemist and metabolomics analyst asks of a new feature: "have we seen this before, and what makes it?"
LOOK UP DON'T GUESS: Never assume an NPAID, producing organism, exact mass, or chemical class. Every identity, provenance, and taxonomy claim must come from a live tool call.
Scope (microbial NPs only): NPAtlas covers natural products from bacteria and fungi. It does NOT cover plant, animal, or marine-invertebrate metabolites unless a microbial producer was reported. A "no NPAtlas hit" therefore means not a known microbial NP — it does not prove the molecule is novel in an absolute sense.
Backing Tools (all keyless; verify before quoting)
| Tool | Input | Returns |
|---|---|---|
NPAtlas_search_compounds | name / inchikey / formula / smiles, limit | list of {npaid, name, molecular_formula, molecular_weight, exact_mass, inchikey, smiles}. (origin_organism is null here — fetch the full record for provenance) |
NPAtlas_get_compound | npaid (e.g. NPA014588) | full record incl. origin_organism (producing microbe + taxonomic lineage) and origin_reference (title/doi/journal/year) |
ClassyFire_classify_by_inchikey | inchikey (full 27-char) | ChemOnt kingdom→superclass→class→subclass→direct_parent, molecular_framework, substituents. classified:false if not in cache |
OPSIN_name_to_structure | name (systematic IUPAC) | smiles / inchi / inchikey. parsed:false for trade/trivial names |
PubChem_get_CID_by_compound_name | name | {IdentifierList:{CID:[...]}} |
PubChem_get_compound_properties_by_CID | cid, properties (e.g. ["MolecularFormula","MolecularWeight","InChIKey","IUPACName"]) | property table — use to obtain an InChIKey for arbitrary compounds |
Workflow
Phase 0: Classify input — name / formula / exact mass / InChIKey / SMILES?
Phase 1: Obtain an InChIKey (the universal key for ClassyFire & precise NPAtlas match)
Phase 2: Dereplicate against NPAtlas (known microbial NP? which organism? which paper?)
Phase 3: Assign ChemOnt chemical class via ClassyFire
Phase 4: Cross-reference identity in PubChem
Phase 5: Report — known/novel call + provenance + class hierarchy + interpretation note
Phase 0 — Classify the input
- Full InChIKey (27 chars,
XXXXXXXXXXXXXX-XXXXXXXXXX-X) → skip to Phase 2; it is already the universal key. - Molecular formula / exact mass → go straight to NPAtlas formula search (Phase 2); these are the rawest dereplication inputs (typical of an untargeted MS feature).
- SMILES → usable directly in
NPAtlas_search_compounds(smiles=...); also feed to PubChem for an InChIKey. - Systematic IUPAC name (e.g.
2-acetyloxybenzoic acid) → Phase 1 via OPSIN. - Trivial / trade / common name (e.g.
staurosporine,penicillin) → Phase 1 via PubChem (OPSIN will returnparsed:falsefor these).
Phase 1 — Obtain an InChIKey
# Systematic IUPAC name → structure (OPSIN). parsed:false ⇒ fall through to PubChem.
op = tu.tools.OPSIN_name_to_structure(name="2-acetyloxybenzoic acid")
inchikey = op["data"]["inchikey"] # only if op["data"]["parsed"]
# Trivial/common name → PubChem CID → properties (incl. InChIKey)
cid = tu.tools.PubChem_get_CID_by_compound_name(name="staurosporine")["data"]["IdentifierList"]["CID"][0]
props = tu.tools.PubChem_get_compound_properties_by_CID(
cid=cid, properties=["MolecularFormula","MolecularWeight","InChIKey","IUPACName"])
inchikey = props["data"]["PropertyTable"]["Properties"][0]["InChIKey"]
The InChIKey is what makes dereplication exact: an InChIKey match is a structure match; a name match is not (synonyms, analogs, and salts share names).
Phase 2 — Dereplicate against NPAtlas
Search by the most specific key available. Prefer InChIKey (exact structure), then formula (catches isomers — useful for an MS feature with only a formula), then name (loosest — returns analogs).
# Exact, structure-level
hits = tu.tools.NPAtlas_search_compounds(inchikey="HKSZLNNOFSGOKW-FYTWVXJKSA-N", limit=5)
# MS-feature style (formula or exact mass) — expect multiple isomeric hits
hits = tu.tools.NPAtlas_search_compounds(formula="C28H26N4O3", limit=10)
For each candidate NPAID, fetch the full record to get the producing organism and reference (search results carry origin_organism: null):
rec = tu.tools.NPAtlas_get_compound(npaid="NPA014588")["data"]
organism = rec["origin_organism"]["name"] # e.g. "Streptomyces"
lineage = rec["origin_organism"]["ancestors"] # domain→...→family
reference = rec["origin_reference"] # title, doi, journal, year
Phase 3 — Assign ChemOnt chemical class
cf = tu.tools.ClassyFire_classify_by_inchikey(inchikey=inchikey)["data"]
# cf["kingdom"], cf["superclass"], cf["class"], cf["subclass"], cf["direct_parent"]
# cf["molecular_framework"], cf["substituents"]
If classified:false, the InChIKey is not in the ClassyFire cache — report the class as unavailable (do not invent one). A correct InChIKey is required; a wrong stereo/protonation layer will miss the cache.
Phase 4 — Cross-reference identity in PubChem
Confirm the same molecule exists in PubChem (CID, IUPAC name, formula, MW) so the identity is anchored to a second independent database. Disagreement in molecular formula between NPAtlas and PubChem is a red flag that the name/structure resolution went astray.
Phase 5 — Report
Deliver:
- Dereplication call — Known microbial NP (with NPAID) or No NPAtlas match (possibly novel / non-microbial).
- Provenance — producing organism + taxonomic lineage + literature reference (title, DOI, year).
- Chemical class — ChemOnt kingdom → superclass → class → subclass → direct_parent (+ molecular framework).
- Identity cross-refs — PubChem CID/IUPAC, InChIKey, formula, exact mass.
- Interpretation note (see below).
Interpretation Guidance (dereplication logic)
- InChIKey hit in NPAtlas = structure-level match ⇒ confidently a known microbial NP. Quote the NPAID, organism, and paper.
- Formula / exact-mass hit(s) only = candidate(s) at the molecular-formula level. Multiple isomers can share one formula and exact mass (e.g.
C28H26N4O3, 466.2005 Da, returns both staurosporine and an ardeemin derivative). Treat these as a ranked candidate list, not an identification — confirm with InChIKey, MS/MS, or NMR before claiming identity. - Name hit only = weakest evidence. A name search returns analogs and congeners (searching "staurosporine" returns 5'-hydroxystaurosporine, etc.), not necessarily the exact molecule. Always escalate to an InChIKey check.
- No NPAtlas hit = not a known microbial natural product. Possible meanings: genuinely novel; a plant/animal/marine metabolite outside NPAtlas scope; or a synthetic/derivatized compound. State which interpretations remain open — do not declare "novel" unconditionally.
- ClassyFire
classified:false= ChemOnt has no cached classification for that exact InChIKey (often because the InChIKey's stereo/charge layer differs from the cached entry, or the compound is new). Report class as unavailable rather than guessing. - OPSIN
parsed:false= the name was not systematic IUPAC (trade/trivial name); route to PubChem for an InChIKey instead.
Worked Example — Staurosporine (trivial name in)
Input: staurosporine (a trivial name).
- OPSIN
name=staurosporine→parsed:false(not systematic IUPAC) → fall through to PubChem. - PubChem name→CID =
44259; properties →MolecularFormula C28H26N4O3,MW 466.5,InChIKey HKSZLNNOFSGOKW-FYTWVXJKSA-N. - NPAtlas
inchikey=HKSZLNNOFSGOKW-FYTWVXJKSA-N→ 1 exact hit:NPA014588 Staurosporine, exact_mass466.2005. → Known microbial NP. - NPAtlas
get_compound NPA014588→ producing organism Streptomyces (genus; lineage Bacteria → Actinobacteria → Actinobacteria → Streptomycetales → Streptomycetaceae); reference "X-Ray crystal structure of staurosporine: a new alkaloid from a Streptomyces…", DOI10.1039/C39780000800, 1978. - ClassyFire
inchikey=HKSZLNNOFSGOKW-FYTWVXJKSA-N→ Organic compounds → Organoheterocyclic compounds → Indoles and derivatives → Carbazoles → direct parent Indolocarbazoles; molecular framework: aromatic heteropolycyclic.
Call: Known microbial natural product (NPA014588), an indolocarbazole alkaloid produced by Streptomyces, first reported 1978.
Dereplication-logic footnote: the formula C28H26N4O3 (exact mass 466.2005) alone is not unique — NPAtlas formula search returns 2 isomers (staurosporine and 5-N-acetyl-15b-didehydroardeemin). The InChIKey is what pins the identity to staurosporine specifically. An MS feature with only this formula would need MS/MS or NMR to choose between the isomers.
Worked Example — Acetylsalicylic acid (systematic name in)
Input IUPAC 2-acetyloxybenzoic acid.
- OPSIN →
parsed:true,InChIKey BSYNRYMUTXBXSQ-UHFFFAOYSA-N. - NPAtlas
inchikey=BSYNRYMUTXBXSQ-...→ no microbial NP record ⇒ not a known microbial natural product (it is a semisynthetic drug — consistent with NPAtlas scope). - ClassyFire → Organic compounds → Benzenoids → Benzene and substituted derivatives → Benzoic acids and derivatives → direct parent Acylsalicylic acids.
Call: Classified into ChemOnt (acylsalicylic acid), but no NPAtlas microbial-NP provenance — illustrating a legitimate "no hit" that is not a novel NP.
Limitations (be honest in every report)
- NPAtlas = microbial NPs only (bacteria + fungi). No plant, animal, or marine-invertebrate metabolites unless a microbial producer was reported. Absence is not proof of novelty.
- ClassyFire is a cache lookup by InChIKey.
classified:falsemeans "not cached for this exact InChIKey", not "unclassifiable". Wrong stereo/charge layers miss the cache. - Name search ≠ structure match. NPAtlas/PubChem name searches return synonyms, analogs, and salts. Always confirm identity at the InChIKey level before declaring a compound "known".
- Formula/exact-mass hits are candidate lists, not identifications — isomers share formulas. Confirm with orthogonal evidence (MS/MS, NMR, InChIKey).
- OPSIN parses systematic IUPAC names only — trivial/trade names return
parsed:false; route them through PubChem. - Search-result records carry
origin_organism: null; provenance requires theNPAtlas_get_compoundfull record.
Out of Scope → route elsewhere
- General drug/compound identity & ADMET, properties, bioassays → tooluniverse-chemical-compound-retrieval / tooluniverse-small-molecule-discovery.
- Metabolomics pathway/enrichment analysis → tooluniverse-metabolomics skills.
Completeness Checklist
- Input type classified (name / formula / mass / InChIKey / SMILES).
- An InChIKey was obtained (OPSIN or PubChem) when starting from a name/SMILES.
- NPAtlas searched with the most specific key available; full record fetched for any hit (organism + reference).
- Known/novel call made with the correct caveats (microbial-only scope).
- ChemOnt class reported from ClassyFire, or marked unavailable if
classified:false. - Identity cross-referenced in PubChem (CID/formula/InChIKey agree).
- Interpretation note included (InChIKey vs formula vs name match; meaning of no-hit / classified:false).
- Limitations stated; every NPAID, organism, DOI, and class came from a live tool call.
Frequently asked questions about Natural Product Dereplication
Similar skills
Scientific Problem Selection
Streamline your research problem selection process.
Nextflow Development
Run nf-core bioinformatics pipelines with ease.
Nature Reviewer Assessment
Simulate peer review for scientific manuscripts.
Research Writing Pipeline
Streamline your scientific writing with structured proposal-first methodologies.
Nature Literature Downloader
Efficiently download academic literature from various sources.
Auto Research
Streamline your NeMo-RL experiments with automated workflows.
