mcpField
T
tooluniverse-natural-product-dereplication

tooluniverse-natural-product-dereplication

github.com/mims-harvardデータ・データベース1.8k114 回インストール2 日前に更新
リポジトリ

tooluniverse-natural-product-dereplication について

既知の天然物を調べ、微生物の生産者や文献を特定し、ChemOnt分類を付与するToolUniverseスキルです。天然物化学やメタボロミクスの分析者向けで、構造の完全一致と分子式・名称による候補一致を区別します。

主な機能

  1. 01NPAtlasで微生物天然物を検索
  2. 02生産微生物と文献の特定
  3. 03ChemOntによる構造分類
  4. 04検索ツールによる名称と構造の解決
  5. 05LOTUSでより広範な天然物記録を確認

活用シーン

  1. 01検出化合物が既知かどうかの確認
  2. 02微生物の生産者と関連論文の追跡
  3. 03InChIKeyに基づく化合物分類
  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_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=...) で直接使用できます。また、InChIKey を取得するために PubChem にも渡します。
  • 系統的 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)を確認し、独立した 2 つ目のデータベースでも同一性を裏付けます。NPAtlas と PubChem で分子式が一致しない場合、名前または構造の解決が誤っている可能性を示す警告です。

フェーズ 5 — 報告する

以下を提示します。

  1. 構造同定の結論 — 既知の微生物由来 NP(NPAID を記載)または NPAtlas に一致なし(新規または非微生物由来の可能性)。
  2. 由来情報 — 産生生物+分類学的系統+文献情報(タイトル、DOI、年)。
  3. 化学クラス — ChemOnt の界 → 上界 → クラス → サブクラス → 直接親(+分子骨格)。
  4. 同一性の相互参照情報 — PubChem CID/IUPAC、InChIKey、分子式、精密質量。
  5. 解釈に関する注記(以下を参照)。

解釈ガイダンス(構造同定の論理)

  • NPAtlas で InChIKey が一致 = 構造レベルで一致 ⇒ 既知の微生物由来 NP と確信できます。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。→ 既知の微生物由来 NP。
  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)返されます。staurosporine に特定するには InChIKey が必要です。この分子式しか得られていない MS 特徴量の場合、異性体を判別するには MS/MS または NMR が必要です。

作業例 — Acetylsalicylic acid(系統名で入力)

IUPAC 入力名 2-acetyloxybenzoic acid。

  1. OPSIN → parsed:true、InChIKey BSYNRYMUTXBXSQ-UHFFFAOYSA-N。
  2. NPAtlas inchikey=BSYNRYMUTXBXSQ-... → 微生物由来 NP の記録なし ⇒ 既知の微生物由来天然物ではありません(半合成医薬品であり、NPAtlas の対象範囲と一致します)。
  3. ClassyFire → 有機化合物 → ベンゼノイド → ベンゼンおよび置換誘導体 → 安息香酸およびその誘導体 → 直接親化合物 アシルサリチル酸。

判定:ChemOnt では分類されています(アシルサリチル酸)が、NPAtlas に微生物由来 NP の来歴はありません。これは正当な「ヒットなし」の例であり、新規 NP を意味するものではありません。


制限事項(すべての報告で正直に記載してください)

  • NPAtlas の対象は微生物由来 NP のみです(細菌+菌類)。微生物産生者の報告がない限り、植物、動物、海生無脊椎動物の代謝物は対象外です。記録がないことは新規性の証明ではありません。非微生物由来であることを理由に「天然物ではない」と結論づける前に、より広い生物界を対象とする 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 スキル。

完全性チェックリスト

  • 入力タイプを分類しました(name/formula/mass/InChIKey/SMILES)。
  • name/SMILES から開始した場合、InChIKey を取得しました(OPSIN または PubChem)。
  • 入手可能な最も具体的なキーで NPAtlas を検索し、該当するレコードがあれば完全な情報を取得しました(生物種 + 参考文献)。
  • 適切な但し書き(微生物のみを対象とする範囲)を添えて、既知/新規を判定しました。
  • ClassyFire の ChemOnt クラスを報告したか、classified:false の場合は利用不可と記載しました。
  • PubChem で同一性を相互確認しました(CID/formula/InChIKey が一致)。
  • 解釈に関する注記を含めました(InChIKey、formula、name の一致の違い、および該当なし/classified:false の意味)。
  • 制限事項を明記しました。すべての NPAID、生物種、DOI、クラスは、ライブのツール呼び出しから取得しました。

コメント