mcpField
C
cmxflow

cmxflow

ローカル
b-shields.github.io科学・教育28 週間前に更新

cmxflow について

cmxflowは、ケモインフォマティクスと計算化学のワークフローを組み立て、調整するPythonフレームワークです。分子処理やドッキングのブロック、ベイズ最適化を備え、MCPサーバー経由でLLMエージェントによる構築・実行・最適化も行えます。

主な機能

  1. 01組み合わせ可能な分子処理ブロック
  2. 02ドッキングとバーチャルスクリーニング
  3. 03ベイズパラメーター最適化
  4. 04計算負荷の高い処理の並列実行
  5. 05ワークフローの保存と読み込み
  6. 06MCPツールによる構造表示

活用シーン

  1. 01ドッキング用リガンドの準備
  2. 02類縁分子シリーズのドッキング
  3. 03バーチャルスクリーニング用指紋の調整
  4. 04LLMエージェントによるワークフローの構築と実行

MCP 対応

MCPサーバーは、ワークフローの構築、実行、最適化、管理と、分子構造の表示を行う5つのツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"b-shields-cmxflow": {
"command": "uvx",
"args": [
"cmxflow"
]
}
}
}
起動コマンドuvx cmxflow

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicmxflow0.4.0

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
indexanyいいえ挿入/削除/並列化操作の位置。
actionstringはい「create」、「add_block」、「remove_block」、「list_blocks」、「validate」、「clear」、「show」、「make_parallel」、「get_params」のいずれか。
block_typeanyいいえBlock クラス名(例:「ConformerGenerationBlock」)。
block_configanyいいえBlock の初期化パラメーター。「make_parallel」アクションの場合、並列実行オプション max_workers、chunk_size、ordered、error_handling を指定します。
rdkit_methodanyいいえRDKitBlock の場合、メソッドのパス(例:「rdkit.Chem.Descriptors.MolWt」)。

詳細

cmxflow 🧪

Docs CI codecov Python 3.11+ Code style: black License: MIT

合成可能なブロックを使って、ケモインフォマティクスおよび計算化学のパイプラインを構築できます。ベイズ最適化でエンドツーエンドに調整できます。あるいは、LLM エージェントに任せることもできます。

クイック例

ドッキング用のリガンドを準備する
from cmxflow import Workflow
from cmxflow.sources import MoleculeSourceBlock
from cmxflow.operators import (
    MoleculeStandardizeBlock,
    IonizeMoleculeBlock,
    EnumerateStereoBlock,
    ConformerGenerationBlock,
)
from cmxflow.sinks import MoleculeSinkBlock

# Standardize → ionize (pH 6.4–8.4) → enumerate stereo → generate 3D conformers
workflow = Workflow()
workflow.add(
    MoleculeSourceBlock(),
    MoleculeStandardizeBlock(),
    IonizeMoleculeBlock(),
    EnumerateStereoBlock(),
    ConformerGenerationBlock(),
    MoleculeSinkBlock(),
)
workflow("library.smi", "prepared.sdf")
同族化合物系列をドッキングする

純粋な Python によるドッキングです。デフォルトでは自由ドッキング(index_poses=False)が使用されます。足場インデックスモードでは、Bemis–Murcko 足場ごとにポーズをキャッシュするため、ポーズのアラインメントが一貫した同族化合物系列で、スループットが約3倍になります。

from cmxflow import Workflow
from cmxflow.sources import MoleculeSourceBlock
from cmxflow.operators import ConformerGenerationBlock, MoleculeDockBlock
from cmxflow.sinks import MoleculeSinkBlock
from cmxflow.utils.parallel import make_parallel

workflow = Workflow()
workflow.add(
    MoleculeSourceBlock(),
    ConformerGenerationBlock(),
    make_parallel(
        MoleculeDockBlock(
            receptor="receptor.pdb",
            site_reference="crystal_ligand.sdf",
            index_poses=True,  # omit for free docking
        )
    ),
    MoleculeSinkBlock(),
)
workflow("library.smi", "docked.sdf")
リガンドベースのバーチャルスクリーニングを調整する
from cmxflow import Workflow
from cmxflow.sources import MoleculeSourceBlock
from cmxflow.operators import MoleculeSimilarityBlock
from cmxflow.scores import EnrichmentScoreBlock
from cmxflow.opt import Optimizer

# Rank a library by 2D similarity to a known active, then tune the
# fingerprint end-to-end to maximize enrichment AUC.
workflow = Workflow()
workflow.add(
    MoleculeSourceBlock(),
    MoleculeSimilarityBlock(queries="crystal_ligand.sdf"),
    EnrichmentScoreBlock(target="active"),
)

opt = Optimizer(workflow, "benchmark.csv")
opt.optimize(n_trials=30, direction="maximize")

print(f"Best enrichment AUC: {opt.best_score:.3f}")
print(opt.best_params)
# Best enrichment AUC: 0.836
# {'fingerprint_type': 'morgan', 'similarity_metric': 'sokal', 'radius': 2, 'nbits': 2545}

上記の4つのフィンガープリントパラメーターは自動で探索されます。すべてのブロックは、最適化ツールに変更可能なパラメーターを公開します。

または、LLM エージェントとの会話を通じて構築する
claude mcp add cmxflow -- cmxflow-mcp

「library.csv 内の分子のうち、リピンスキーのルールを満たすものはいくつありますか?」

「リガンドベースのバーチャルスクリーニングのワークフローを構築したいです。2Dと3Dのどちらがよいか分からないので、2つのワークフローを最適化してもらえますか?」

「hits.csv 内の分子を、crystal_ligand.sdf を参照構造として使い、receptor.pdb に対してドッキングしてください。」

エージェントはワークフローの構築、実行、最適化ができます。会話の全記録については、Claude での使用方法をご覧ください。

含まれる機能

  • 分子の取得、変換、フィルタリング、クラスタリング、スコアリング、ドッキングを行う15個以上のブロック
  • Optuna によるパイプラインパラメーターのベイズ最適化
  • 計算負荷の高いブロック(コンフォマー生成、ドッキング)の並列実行
  • ワークフローのシリアライズによる保存/読み込み/再利用
  • 5つのツール(build_workflow、run_workflow、optimize_workflow、manage_workflows、view_structures)を備えた MCP サーバー

インストール

pip install cmxflow
MCP サーバー
claude mcp add cmxflow -- cmxflow-mcp
オプション:PyMOL

view_structures MCP ツール(3D可視化)を使う場合にのみ必要です。

conda install -c conda-forge pymol-open-source

ドキュメント

プロジェクト

MIT ライセンスです。CONTRIBUTING.md と RELEASING.md をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。