mcpField
C
cheminformatics

cheminformatics

github.com/awslabsデータ・データベース6977 回インストール4 週間前に更新
リポジトリ

cheminformatics について

化合物フィルタリング、類似性分析、クラスタリング、またはMatched Molecular Pair解析を行うエージェント向けの、RDKitケモインフォマティクスの基本スキルです。フィンガープリント選択、フィルター順序、バージョン固有のAPI上の注意点を扱います。

主な機能

  1. 01分析目的に応じたフィンガープリント選択
  2. 02化合物フィルターの順序付け
  3. 03Matched Molecular Pair解析の案内
  4. 04非推奨RDKit APIの注意喚起
  5. 05SMILESの検証とサニタイズ

活用シーン

  1. 01化合物ライブラリのフィルタリング
  2. 02分子類似性による検索やクラスタリング
  3. 03Matched Molecular Pairの解析
  4. 04非推奨のフィンガープリントAPI呼び出しの回避

インストール

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

$npx skills add https://github.com/awslabs/hcls-agent-skills --skill cheminformatics

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

詳細

ケモインフォマティクス(RDKit)— パイプラインスキル(薄いスキャフォールド)

概要

RDKit のワークフロー向けに、フィンガープリントの選択ロジック、フィルターカスケードの順序、およびバージョン固有の注意点を追加します。エージェントはすでに RDKit の構文を把握しています。このスキルは、パラメーターの不一致や非推奨 API の使用を防ぎます。

使用方法

  • 化合物ライブラリのフィルタリング時に有効化します(Lipinski/Veber/PAINS)
  • フィンガープリントによる類似性検索やクラスタリング時に有効化します
  • mmpdb を使ったマッチドペア解析(MMP)時に有効化します

主要な概念

フィルターカスケードの順序: Lipinski → Veber → PAINS → 類似性(最も低コストなものから、最も高コストなものへ)。

フィンガープリント API: rdFingerprintGenerator モジュールのみを使用してください(RDKit 2024.03 以降)。AllChem.GetMorganFingerprintAsBitVect() の経路は非推奨であり、削除される予定です。

SMILES の検証: 常に sanitize=False を指定してパースし、その後 try/except 内で明示的に SanitizeMol() を呼び出してください。デフォルトの MolFromSmiles は、部分的な失敗があっても None を黙って返します。

判断ロジック

フィンガープリントの選択
目的フィンガープリントパラメータータニモト閾値
一般的な類似性Morgan(ECFP4)radius=2, fpSize=2048≥ 0.7
高特異度のマッチングMorgan(ECFP6)radius=3, fpSize=4096≥ 0.6
部分構造スクリーニングMACCS 166 keys—≥ 0.8
ファーマコフォアの類似性FCFPradius=2, GetMorganFeatureAtomInvGen()≥ 0.6
大規模クラスタリングMorganradius=2, fpSize=1024精度より速度を優先
フィルター閾値
フィルタールール閾値注記
Lipinski MW≤ 500 Da違反は合計 ≤1 件まで許容二値の合格/不合格ではありません
Lipinski LogP≤ 5——
Lipinski HBD≤ 5——
Lipinski HBA≤ 10——
Veber TPSA≤ 140 Ų厳格な上限—
Veber RotBonds≤ 10厳格な上限—
PAINSA+B+C カタログHTS のトリアージのみ高度な化合物には適用しないでください
MMP 解析の判断
シナリオツール主なパラメーター
化合物ペアからの SARmmpdb fragment → index → transform--min-pairs 3
物性予測mmpdb predict物性データを含むインデックス済み DB が必要です
コアの特定rdFMCS.FindMCS()ringMatchesRingOnly=True, completeRingsOnly=True
大規模ライブラリ(>10K)mmpdb CLI断片化を制限するため --max-variable-size 10

重要なパラメーター

パラメーター値変更するタイミング
Morgan radius2(ECFP4)特異度を高める場合は 3
fpSize2048速度を優先する場合は 1024、精度を優先する場合は 4096
includeChiralityFalse立体化学に敏感な用途では True
Lipinski max_violations1厳格にする場合は 0、生物製剤は完全に対象外
mmpdb --min-pairs3データセットが疎な場合は低くする
mmpdb --max-variable-size10大環状化合物の変換では増やす
PAINS catalogsA+B+C(3 つすべて)一部のセットは決して使用しないでください

よくある間違い

  • 誤り: AllChem.GetMorganFingerprintAsBitVect() → 正しい: rdFingerprintGenerator.GetMorganGenerator(radius=2, fpSize=2048).GetFingerprint(mol) → 理由: AllChem FP 関数は RDKit 2024.03 以降非推奨となっており、今後削除されます

  • 誤り: エラー処理なしでデフォルトの MolFromSmiles(smi) を使う → 正しい: MolFromSmiles(smi, sanitize=False) と、try/except 内での SanitizeMol() の組み合わせ → 理由: デフォルトでは何も通知せず None を返しますが、明示的にサニタイズすることで部分的な失敗を検出できます

  • 誤り: Lipinski を厳格な二値フィルターとして使う → 正しい: 1 件以下の違反を許容する → 理由: 承認済み医薬品の多くは 1 つのルールに違反しており、二値フィルタリングでは有効な候補が除外されます

  • 誤り: 臨床候補化合物に PAINS を適用する → 正しい: PAINS は HTS ライブラリのトリアージにのみ使う → 理由: スクリーニングアーティファクト向けに設計されており、開発段階の進んだ有効な化合物もフラグ付けされます

  • 誤り: Morgan の radius=1 を使う → 正しい: 最低でも radius=2(ECFP4)を使う → 理由: Radius 1 では構造情報が失われ、偽陽性の類似判定が多くなります

  • 誤り: radius または nBits が異なる FP を比較する → 正しい: 両方の FP に同一のパラメーターを使う → 理由: Tanimoto は同じパラメーター空間内でのみ意味があります

  • 誤り: キラル化合物の立体化学を無視する → 正しい: ジェネレーターで includeChirality=True を指定する → 理由: デフォルトではエナンチオマーが同一として扱われます

  • 誤り: すべての FP 型に固定の 0.7 しきい値を使う → 正しい: フィンガープリント型と化学系列ごとにしきい値を検証する → 理由: 0.7 という慣例は ECFP4 固有のもので、ほかの型には異なるカットオフが必要です

  • 誤り: 生の SMILES を mmpdb に渡す → 正しい: MolToSmiles(MolFromSmiles(smi)) で事前に正準化する → 理由: mmpdb は正準 SMILES を想定しており、非正準の SMILES はフラグメンテーションエラーの原因になります

  • 誤り: LogP と LogD を混同する → 正しい: イオン化可能な化合物には pH 7.4 での LogD を使う。RDKit が計算するのは LogP のみです → 理由: 生理的 pH では、LogP はイオン化可能な分子の親油性を過大評価します

応答形式

  • ユーザーが必要とするコマンドまたはコードを最初に提示し、その後に説明する
  • 次の構成にする:入力の確認 → 動作するコード → 主なパラメーターの説明 → 注意点
  • タスクごとに動作する完全な例を 1 つ示す。すべての代替案は示さない
  • コードコメントは必要最小限かつ実用的なものにする
  • 目安:コード 50~100 行と、簡潔な説明文

コメント