tooluniverse-chemical-compound-retrieval
tooluniverse-chemical-compound-retrieval について
化合物の同定や性質・活性の収集を行う研究者向けの化学データ取得スキルです。PubChem や ChEMBL などの情報源で識別子を照合し、構造解析と可視化も行えます。
主な機能
- 01化合物名と識別子の曖昧さ解消
- 02PubChem と ChEMBL のデータ照合
- 03化学的性質と生物活性の取得
- 04系統名から構造への変換
- 05ファーマコフォア特徴の計算と構造表示
活用シーン
- 01CID、ChEMBL ID、構造の確認
- 02化合物の性質と標的活性の整理
- 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