mcpField
T
tooluniverse-natural-product-dereplication

tooluniverse-natural-product-dereplication

github.com/mims-harvard数据与数据库1.8k114 次安装3 天前更新
代码仓库

关于 tooluniverse-natural-product-dereplication

这是一个 ToolUniverse skill,用于识别已知天然产物、查找已报道的微生物来源和文献,并分配 ChemOnt 化学类别,面向天然产物化学家和代谢组学分析人员。它区分精确结构匹配与较弱的分子式或名称匹配。

主要功能

  1. 01在 NPAtlas 中搜索微生物天然产物
  2. 02查找产物微生物及文献
  3. 03使用 ChemOnt 对结构分类
  4. 04通过查询工具解析名称和结构
  5. 05在 LOTUS 中检查更广泛的天然产物记录

适用场景

  1. 01判断检测到的化合物是否已知
  2. 02追溯微生物来源及相关论文
  3. 03根据 InChIKey 对化合物分类
  4. 04评估分子式匹配能否唯一确定分子

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-natural-product-dereplication

安装后在 Claude Code 中输入/tooluniverse-natural-product-dereplication确认已加载。

附带文件evals/evals.json

详细介绍

天然产物去重复鉴定与化学分类学

判断某个推测的天然产物是否已知,识别产生它的微生物,附上文献引用,并分配其 ChemOnt 化学类别。这是每位天然产物化学家和代谢组学分析人员面对新特征时都会提出的去重复鉴定问题:“我们以前见过它吗?是什么生物产生了它?”

查询,不要猜测:绝不要臆测 NPAID、产生该物质的生物、精确质量或化学类别。关于身份、来源和分类的所有判断,都必须来自实时工具调用。

范围(仅微生物天然产物):NPAtlas 收录来自细菌和真菌的天然产物。除非有报告指出某种微生物是其产生者,否则 NPAtlas 不收录植物、动物或海洋无脊椎动物的代谢物。因此,“未命中 NPAtlas”意味着不是已知的微生物天然产物,但不能证明该分子绝对新颖。


支持工具(均无需密钥;引用前请核实)

工具输入返回内容
NPAtlas_search_compoundsname / inchikey / formula / smiles,limit{npaid, name, molecular_formula, molecular_weight, exact_mass, inchikey, smiles} 列表。(此处的 origin_organism 为 null — 获取完整记录以查询来源)
NPAtlas_get_compoundnpaid(例如 NPA014588)完整记录,包括 origin_organism(产生该物质的微生物及分类谱系)和 origin_reference(标题/doi/期刊/年份)
ClassyFire_classify_by_inchikeyinchikey(完整的 27 个字符)ChemOnt 界→超类→类→亚类→直接母体、molecular_framework、substituents。若不在缓存中,则返回 classified:false
OPSIN_name_to_structurename(系统 IUPAC 名称)smiles / inchi / inchikey。商品名或俗名会返回 parsed:false
PubChem_get_CID_by_compound_namename{IdentifierList:{CID:[...]}}
PubChem_get_compound_properties_by_CIDcid,properties(例如 ["MolecularFormula","MolecularWeight","InChIKey","IUPACName"])属性表 — 用于获取任意化合物的 InChIKey
LOTUS_search_natural_productsquery(名称 / SMILES / InChIKey)天然产物出现记录列表(lotus_id、smiles、inchikey、contains_sugar、heavy_atom_number)
LOTUS_search_by_inchikeyinchikey与上述格式相同,按 InChIKey 限定
LOTUS_get_compoundcompound_id(LOTUS 内部 ID)完整出现记录,包括报告的来源生物
MIBiG_list_clusterssearch_term(化合物/生物名称)生物合成基因簇(BGC 登录号、质量、完整度、产物名称)
MIBiG_get_stats无按状态和生物合成类别(PKS/NRPS/萜烯等)统计的整个数据库计数

LOTUS 与 NPAtlas 的范围:NPAtlas 仅涵盖微生物(细菌 + 真菌)。LOTUS 涵盖生命之树的所有类群 — 包括植物、动物、海洋无脊椎动物和微生物天然产物。因此,如果想更广泛地解读“未命中 NPAtlas”(即判断某物质是否为任何生物产生的已知天然产物,而不只是微生物产生的),在将其称为非天然产物或新化合物之前,也应查询 LOTUS。LOTUS 自身的记录是出现报告(结构 + 报告的来源),而不是像 NPAtlas 完整记录那样经过整理的单一“来源生物”;请预期来源归属可能有多个,或较为宽泛。

将 MIBiG 用作产生者的后续查询:当 NPAtlas(或 LOTUS)识别出某种微生物天然产物的产生生物后,可使用 MIBiG_list_clusters(按化合物或生物名称搜索)查找实际经过实验表征的生物合成基因簇(如果已有提交记录)——这有助于从“这种微生物能产生它”进一步查到“这是产生它的基因簇”。无需查询即可使用 MIBiG_get_stats 查看整个数据库的背景统计信息(例如各生物合成类别的基因簇数量)。


工作流

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
阶段 0 — 对输入分类
  • 完整 InChIKey(27 个字符,XXXXXXXXXXXXXX-XXXXXXXXXX-X)→ 跳至阶段 2;它已经是通用键。
  • 分子式 / 精确质量 → 直接进行 NPAtlas 分子式搜索(阶段 2);这是最原始的去重复输入(无靶向 MS 特征的典型输入)。
  • SMILES → 可直接用于 NPAtlas_search_compounds(smiles=...);也可以提交给 PubChem 获取 InChIKey。
  • 系统 IUPAC 名称(例如 2-acetyloxybenzoic acid)→ 通过 OPSIN 进行阶段 1。
  • 俗名 / 商品名 / 常用名(例如 staurosporine、penicillin)→ 通过 PubChem 进行阶段 1(OPSIN 对这些名称会返回 parsed:false)。
阶段 1 — 获取 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"]

InChIKey 是实现精确去重复的关键:InChIKey 匹配即为结构匹配;名称匹配则不然(同义词、类似物和盐可能共用名称)。

阶段 2 — 与 NPAtlas 进行去重复比对

使用最具体的可用键搜索。优先使用 InChIKey(精确结构),其次是 分子式(可发现异构体——适用于只有分子式的 MS 特征),最后是 名称(最宽泛——会返回类似物)。

# 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)

对于每个候选 NPAID,获取完整记录,以查看产生该化合物的生物体和参考文献(搜索结果中的 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
阶段 3 — 指定 ChemOnt 化学类别
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"]

如果 classified:false,则该 InChIKey 不在 ClassyFire 缓存中——将类别报告为不可用(不要臆造类别)。必须使用正确的 InChIKey;立体化学 / 质子化层错误会导致无法命中缓存。

阶段 4 — 在 PubChem 中交叉核对身份

确认 PubChem 中存在同一分子(CID、IUPAC 名称、分子式、MW),以便通过第二个独立数据库确认身份。如果 NPAtlas 与 PubChem 中的分子式不一致,则很可能是名称 / 结构解析出了问题。

阶段 5 — 报告结果

提交:

  1. 去重复结论 — 已知微生物天然产物(附 NPAID)或 未匹配到 NPAtlas(可能是新化合物 / 非微生物来源)。
  2. 来源信息 — 产生该化合物的生物体 + 分类谱系 + 文献参考(标题、DOI、年份)。
  3. 化学类别 — ChemOnt 界 → 超类 → 类 → 亚类 → 直接母体(direct_parent)+ 分子骨架。
  4. 身份交叉引用 — PubChem CID/IUPAC、InChIKey、分子式、精确质量。
  5. 结果解读说明(见下文)。

结果解读指南(去重复逻辑)

  • InChIKey 命中 NPAtlas = 结构级匹配 ⇒ 可确认是已知微生物天然产物。引用 NPAID、生物体和论文。
  • 仅分子式 / 精确质量命中 = 分子式级别的候选项。多个异构体可能具有相同的分子式和精确质量(例如,C28H26N4O3、466.2005 Da 会同时匹配星形孢菌素和一个蒽霉素衍生物)。应将这些结果视为按优先级排序的候选列表,而非鉴定结果——在确认身份前,需使用 InChIKey、MS/MS 或 NMR 进行验证。
  • 仅名称命中 = 证据最弱。名称搜索会返回类似物和同系物(搜索“staurosporine”会返回 5'-羟基星形孢菌素等),不一定是完全相同的分子。务必进一步检查 InChIKey。
  • 未命中 NPAtlas = 不是已知的微生物天然产物。可能意味着:确实是新化合物;属于 NPAtlas 范围之外的植物 / 动物 / 海洋代谢物;或者是合成 / 衍生化合物。应说明哪些解释仍有可能——不要无条件地断言它是“新化合物”。
  • ClassyFire classified:false = ChemOnt 中没有该 InChIKey 对应的缓存分类(通常是因为 InChIKey 的立体化学 / 电荷层与缓存条目不同,或者该化合物是新的)。应将类别报告为不可用,而不是猜测。
  • OPSIN parsed:false = 该名称不是系统 IUPAC 名称(而是商品名 / 俗名);应改用 PubChem 获取 InChIKey。

操作示例 — Staurosporine(输入常用名)

输入:staurosporine(常用名)。

  1. OPSIN name=staurosporine → parsed:false(不是系统 IUPAC 名称)→ 转而查询 PubChem。
  2. PubChem 名称→CID = 44259;属性 → MolecularFormula C28H26N4O3、MW 466.5、InChIKey HKSZLNNOFSGOKW-FYTWVXJKSA-N。
  3. NPAtlas inchikey=HKSZLNNOFSGOKW-FYTWVXJKSA-N → 1 个精确匹配:NPA014588 Staurosporine,exact_mass 466.2005。→ 已知微生物天然产物。
  4. NPAtlas get_compound NPA014588 → 产生该化合物的生物为 Streptomyces(属;谱系为 Bacteria → Actinobacteria → Actinobacteria → Streptomycetales → Streptomycetaceae);参考文献 "X-Ray crystal structure of staurosporine: a new alkaloid from a Streptomyces…", DOI 10.1039/C39780000800,1978 年。
  5. ClassyFire inchikey=HKSZLNNOFSGOKW-FYTWVXJKSA-N → 有机化合物 → 有机杂环化合物 → 吲哚及其衍生物 → 咔唑 → 直接父类 吲哚咔唑;分子骨架:芳香杂多环。

结论:已知微生物天然产物(NPA014588),一种由 Streptomyces 产生的吲哚咔唑生物碱,首次报道于 1978 年。

去重复逻辑注释:仅凭分子式 C28H26N4O3(精确质量 466.2005)并不能 唯一确定化合物——NPAtlas 分子式搜索会返回 2 种异构体(staurosporine 和 5-N-acetyl-15b-didehydroardeemin)。InChIKey 才能将身份明确锁定为 staurosporine。仅有该分子式的 MS 特征需要通过 MS/MS 或 NMR 在异构体间进行判断。

操作示例 — Acetylsalicylic acid(输入系统名称)

输入 IUPAC 名称 2-acetyloxybenzoic acid。

  1. OPSIN → parsed:true,InChIKey BSYNRYMUTXBXSQ-UHFFFAOYSA-N。
  2. NPAtlas inchikey=BSYNRYMUTXBXSQ-... → 无微生物天然产物记录 ⇒ 不是已知微生物天然产物(它是一种半合成药物,这与 NPAtlas 的范围一致)。
  3. ClassyFire → 有机化合物 → 苯类化合物 → 苯及其取代衍生物 → 苯甲酸及其衍生物 → 直接父类 酰基水杨酸。

结论:已在 ChemOnt 中分类(酰基水杨酸),但 NPAtlas 中没有微生物天然产物来源记录——这说明“未命中”也可能是合理结果,并不 代表它是新天然产物。


局限性(每份报告都应如实说明)

  • NPAtlas 仅收录微生物天然产物(细菌和真菌)。不包括植物、动物或海洋无脊椎动物的代谢物,除非有记录显示由微生物产生。未收录不能证明其具有新颖性。在得出“非微生物来源意味着‘根本不是天然产物’”这一结论前,请查询覆盖范围更广的 LOTUS,以涵盖生命之树上的其他生物。
  • MIBiG 簇搜索按名称匹配,而不是按结构匹配——命中化合物名称不保证返回的 BGC 是产生该确切分子的正确或唯一 BGC;请确认返回记录中的产物名称与之匹配。
  • ClassyFire 是按 InChIKey 查缓存。classified:false 表示“此确切 InChIKey 未缓存”,而不是“无法分类”。立体化学或电荷层不正确会导致缓存查询未命中。
  • 名称搜索 ≠ 结构匹配。 NPAtlas/PubChem 名称搜索会返回同义词、类似物和盐。宣称某化合物“已知”前,务必在 InChIKey 层面确认其身份。
  • 分子式/精确质量命中结果是候选列表,而非鉴定结果——异构体可能具有相同分子式。请通过正交证据(MS/MS、NMR、InChIKey)进行确认。
  • OPSIN 仅解析系统 IUPAC 名称——常用名或商品名会返回 parsed:false;应改用 PubChem 查询。
  • 搜索结果记录中的 origin_organism: null;需要通过 NPAtlas_get_compound 获取完整记录来确认来源信息。

不在范围内 → 转至其他工具

  • 通用药物/化合物身份鉴定与 ADMET、性质、生物测定 → tooluniverse-chemical-compound-retrieval / tooluniverse-small-molecule-discovery。
  • 代谢组学通路/富集分析 → tooluniverse-metabolomics skills。

完整性检查清单

  • 已对输入类型进行分类(名称 / 分子式 / 质量 / InChIKey / SMILES)。
  • 若输入为名称或 SMILES,已获取 InChIKey(通过 OPSIN 或 PubChem)。
  • 已使用可用的最具体标识符查询 NPAtlas;对任何命中结果均已获取完整记录(生物体 + 参考文献)。
  • 已判断已知或新颖,并附上正确的注意事项(仅限微生物范围)。
  • 已报告 ClassyFire 的 ChemOnt 类别;若 classified:false,则标记为不可用。
  • 已在 PubChem 中交叉核对身份信息(CID / 分子式 / InChIKey 一致)。
  • 已包含解释说明(InChIKey 与分子式或名称匹配的区别;无命中 / classified:false 的含义)。
  • 已说明局限性;每个 NPAID、生物体、DOI 和类别均来自实时工具调用。

评论

支持 Markdown