mcpField
T
tooluniverse-chemical-compound-retrieval

tooluniverse-chemical-compound-retrieval

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

tooluniverse-chemical-compound-retrieval について

化合物の同定や性質・活性の収集を行う研究者向けの化学データ取得スキルです。PubChem や ChEMBL などの情報源で識別子を照合し、構造解析と可視化も行えます。

主な機能

  1. 01化合物名と識別子の曖昧さ解消
  2. 02PubChem と ChEMBL のデータ照合
  3. 03化学的性質と生物活性の取得
  4. 04系統名から構造への変換
  5. 05ファーマコフォア特徴の計算と構造表示

活用シーン

  1. 01CID、ChEMBL ID、構造の確認
  2. 02化合物の性質と標的活性の整理
  3. 03類縁体間の構造変化の比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-chemical-compound-retrieval

インストール後、Claude Code で/tooluniverse-chemical-compound-retrievalを入力して読み込まれたか確認します。

同梱ファイルCHECKLIST.mdexamples.md

詳細

化学化合物情報の検索

適切な曖昧性解消とデータベース間の検証を行い、化学化合物の包括的なデータを取得します。

推測せず、必ず検索してください:CID、ChEMBL ID、分子特性の値を決して推測しないでください。必ず PubChem/ChEMBL から取得してください。

英語を優先:ツール呼び出しでは、必ず化合物名を英語で使用してください。回答はユーザーの言語で行ってください。

分野別の推論:曖昧性解消

「Aspirin」は1つの化合物です。「Vitamin D」には複数の形態(D2/D3/活性代謝物)があります。一般的なクラス名(ステロイド、ビタミン、酸)の場合は、候補を提示し、先に確認を求めてください。


ワークフロー

Phase 0: Clarify (only if highly ambiguous -- skip for unambiguous names or specific IDs)
Phase 1: Disambiguate → resolve PubChem CID + ChEMBL ID
Phase 2: Retrieve data (silent)
Phase 3: Report compound profile
フェーズ 1:曖昧性解消
# By name
result = tu.tools.PubChem_get_CID_by_compound_name(compound_name=name)
# By SYSTEMATIC (IUPAC) name -> structure, deterministic parser (no DB lookup)
opsin = tu.tools.OPSIN_name_to_structure(name="2-acetoxybenzoic acid")
# Returns {parsed, smiles, inchi, inchikey}; use the SMILES/InChIKey to anchor a
# PubChem_get_CID_by_SMILES lookup. Trade/trivial names give parsed=false -> fall
# back to PubChem_get_CID_by_compound_name for those.
# By SMILES
result = tu.tools.PubChem_get_CID_by_SMILES(smiles=smiles)
# Cross-reference
chembl_result = tu.tools.ChEMBL_search_molecules(query=name, limit=5)

検証項目:CID、ChEMBL ID、標準 SMILES、立体化学、塩形。

フェーズ 2:データ取得

PubChem:PubChem_get_compound_properties_by_CID、PubChemBioAssay_get_assay_summary、PubChemTox_get_acute_effects、PubChem_get_compound_2D_image_by_CID

ChEMBL:ChEMBL_get_compound_record_activities、ChEMBL_get_molecule_targets、ChEMBL_get_assay_activities

任意:PubChem_get_associated_patents_by_CID、PubChem_search_compounds_by_similarity

フェーズ 3:レポート

化合物プロファイルには、次の情報を含めます:識別情報(CID、ChEMBL ID、IUPAC、SMILES)、化学的特性(MW、LogP、HBD、HBA、PSA、リピンスキー則)、生物活性(標的、IC50/Ki)、医薬品情報(承認済みの場合)、データソース。


フォールバックチェーン

優先フォールバック
PubChem の名前検索(系統名)OPSIN_name_to_structure → SMILES/InChIKey → PubChem_get_CID_by_SMILES
PubChem の名前検索ChEMBL 検索 → SMILES → PubChem_get_CID_by_SMILES
ChEMBL の生物活性PubChem のバイオアッセイ概要
医薬品ラベル「利用不可」と記載

エビデンスの評価

評価基準
確認済みCID と ChEMBL が照合し、InChI/SMILES が一致
有力CID が見つかり、ChEMBL と一部一致
不確実単一のデータベースのみ、または複数の CID
未検証相互参照がなく、単一ソースのみ

生物活性:キュレーション済みデータでは、PubChem BioAssay より ChEMBL を優先します。IC50/Ki が 100nM 未満なら強力、100nM~1uM なら中程度、10uM 超なら弱い活性です。リピンスキー則への違反は経口バイオアベイラビリティを低下させますが、適格性を否定するものではありません。


SMILES の検証

新規の SMILES は必ず検証してください:python3 src/tooluniverse/tools/smiles_verifier.py --smiles "SMILES_STRING"。無効な SMILES は、誤った結果や分かりにくいエラーの原因になります。


識別子の解決とデータベース間の参照

PubChem/ChEMBL以外にも、PubChemで名前が見つからない場合や、他の化学データベース間の相互参照が必要な場合に識別子を解決できるツールが2つあります。

  • NCICACTUS_resolve(NCI CACTUS リゾルバー) — 化学名(IUPAC名または一般名)、SMILES、InChI、InChIKey、CAS番号、分子式の相互変換を行います。実データで動作を確認済みです:NCICACTUS_resolve(identifier="ibuprofen", representation="smiles") → CC(C)Cc1ccc(cc1)C(C)C(O)=O。CAS番号("50-78-2")からIUPAC名("2-acetyloxybenzoic acid"、つまりアスピリン)への直接変換や、InChIKeyから分子式への変換にも対応しています。OPSIN_name_to_structure や PubChem_get_CID_by_compound_name と併用できる、名前解決のもう1つの手段として便利です。CACTUSは、OPSINが解析できないCAS番号や慣用名に対応しています。
  • UniChem_search_compound / UniChem_connectivity_search — InChIKey(またはソースデータベースの化合物ID)を指定すると、UniChemに登録された25以上のソースデータベース(ChEMBL、DrugBank、PubChem、Wikipedia、ChEBIなど)にわたる相互参照を返します(UniChem_list_sources で実データを使って確認済み)。connectivity_search は、同じ結合関係を持つ化合物(骨格は同じで、立体化学、塩、同位体が異なるもの)も検索します。厳密な一致ではなく、「名前や形態を問わず同じ分子」を探したい場合に使います。アスピリンのInChIKey(BSYNRYMUTXBXSQ-UHFFFAOYSA-N)を使って実データで確認済みです。どちらも、Wikipediaへのリンクを含む実際のデータベース間レコードを返しました。

識別子を連鎖させるワークフロー(実際の値): NCICACTUS_resolve(identifier="aspirin", representation="smiles") → CC(=O)Oc1ccccc1C(O)=O → 同じ識別子を representation="stdinchikey" で解決 → 実際の結果 "InChIKey=BSYNRYMUTXBXSQ-UHFFFAOYSA-N"(InChIKey= のプレフィックスに注意してください。実データで確認済みです。別のツールにキーだけを渡す前に、このプレフィックスを取り除いてください)→ プレフィックスを除いた BSYNRYMUTXBXSQ-UHFFFAOYSA-N を UniChem_search_compound に渡してデータベース間のIDを取得 → 必要に応じて PubChem_get_CID_by_SMILES を使ってPubChemに再び紐付けます。

ケモインフォマティクス計算と構造の可視化

物性の検索にとどまらない計算や描画には、次のツールを使います。

  • RDKit_pharmacophore_features — SMARTSマッチングを使って、SMILESから薬理特性の特徴中心(HBD、HBA、芳香族、疎水性など)を抽出します。アスピリン(CC(=O)Oc1ccccc1C(=O)O)で実データを使って確認済みです。原子インデックスを含むHBDが1つ返され、メソッドは "SMARTS-based pharmacophore features" と記録されています。
  • RDKit_matched_molecular_pair — 2つのSMILESを指定すると、両者間の単一結合切断によるMMP変換(Hussain-Reaアルゴリズム)とTanimoto類似度を検出します。「化合物Aを化合物Bに変える単一の置換は何か」(SAR解析)を調べるのに便利です。
  • visualize_molecule_2d — SMILES、InChI、または分子名から2D構造をPNG/SVG/インタラクティブHTMLとして描画します。実データで動作を確認済みです。成功時には埋め込みHTMLの可視化を返します。
  • visualize_molecule_3d — RDKitとpy3Dmolを使って3D構造を描画します。py3Dmol のインストールが必要です。未インストールの場合、ツールがクラッシュせず、{"status": "error", ...: "py3Dmol is not installed. Please install it with: pip install py3Dmol"} を適切に返すことを実データで確認済みです。可視化のリクエストが別の理由で失敗したと判断する前に、この点を確認してください。

ツールリファレンス

PubChem: PubChem_get_CID_by_compound_name、PubChem_get_CID_by_SMILES、PubChem_get_compound_properties_by_CID、PubChem_get_compound_2D_image_by_CID、PubChemBioAssay_get_assay_summary、PubChemTox_get_acute_effects、PubChem_get_associated_patents_by_CID、PubChem_search_compounds_by_similarity、PubChem_search_compounds_by_substructure

ChEMBL: ChEMBL_search_drugs、ChEMBL_get_molecule、ChEMBL_get_activity、ChEMBL_get_target、ChEMBL_search_targets、ChEMBL_search_assays

名称のパース: OPSIN_name_to_structure(パラメーター name)— 決定論的な IUPAC/体系名から SMILES/InChI/InChIKey へのパーサーです。データベースを介さずに体系名を構造に変換する場合に最適です。商標名や慣用名は parsed=false を返します(これらの名称には PubChem の名称検索を使用してください)。

識別子の解決と相互参照: NCICACTUS_resolve、UniChem_search_compound、UniChem_connectivity_search、UniChem_list_sources

ケモインフォマティクスと可視化: RDKit_pharmacophore_features、RDKit_matched_molecular_pair、visualize_molecule_2d、visualize_molecule_3d

コメント