mcpField
M
md_openmmdl

md_openmmdl

github.com/fastfold-aiその他3128 回インストール12 週間前に更新
リポジトリ

md_openmmdl について

FastFold Cloud 上で OpenMMDL のタンパク質・リガンドワークフローを実行するスキルです。準備や送信、既存ワークフローの再実行、結果処理を同梱スクリプトで行えます。

主な機能

  1. 01ワークフローの送信・草案作成
  2. 02スクリプトの準備と確認
  3. 03ワークフローの複製と再実行
  4. 04実行の待機と成果物の取得
  5. 05公開設定の変更とフレーム抽出

活用シーン

  1. 01ローカルのトポロジーとリガンドファイルからタンパク質・リガンド MD を実行
  2. 02送信前に生成スクリプトを確認
  3. 03既存の OpenMMDL ワークフローを編集して再実行
  4. 04結果の取得やトラジェクトリフレームの抽出

インストール

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

$npx skills add https://github.com/fastfold-ai/skills --skill md_openmmdl

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
auth_and_api.md
.env.example
schema_summary.md
scripts/
load_env.py
execute_workflow.py
extract_frame.py
fetch_results.py
prepare_script.py
_api.py
submit_from_workflow.py
security_utils.py
toggle_public.py
submit_manual_topology_ligands.py
wait_for_workflow.py

詳細

OpenMMDL ワークフロースキル

概要

このスキルは、Workflows API を通じて FastFold Cloud 上で OpenMMDL ワークフローを実行します。

次の操作に対応しています。

  1. ローカルのトポロジーとオプションのリガンドファイルからすぐに実行します。
  2. スクリプト優先のワークフロー向けにスクリプトの下書きモード(create_mode=draft_script)を使用します。
  3. スクリプトの準備のみ(/v1/workflows/openmmdl/prepare-script)を行い、入力を検証して生成されたスクリプトのメタデータを確認します。
  4. 既存の OpenMMDL ワークフローを複製して再実行します。
  5. 実行後の操作:待機、アーティファクトの取得、公開/非公開の切り替え、フレームの抽出。

認証

推奨(Sandwalk エージェント): Integrations → Fastfold AI Cloud から設定します。チャットシェルでは FASTFOLD_API_KEY として公開されます。Sandwalk が設定する環境変数を使用してください。値をハードコードしたり、 ホームディレクトリの設定パスを探したりしないでください。

チャットでユーザーにシークレットの貼り付けを求めないでください。バンドルされたスクリプトが「未設定」や認証エラーを明確に返すまでは、 .env を作成したり、export の実行を求めたりしないでください。 printenv FASTFOLD_API_KEY を使うか、スクリプトを実行してください。

環境変数: FASTFOLD_API_KEY、SANDWALK_SESSION_WORKSPACE、SANDWALK_SKILLS_DIR (設定されている場合)。

代替方法: ワークスペースの .env(references/.env.example)、シェルでのエクスポート、または https://cloud.fastfold.ai/api-keys でのキー作成。

スクリプトでキーが見つからないと報告された場合: Sandwalk Integrations(または .env/エクスポート)を案内してから、再試行してください。ファイルシステム内のシークレットを探さないでください。

このスキルを使用する場面

  • ユーザーが FastFold で OpenMMDL またはタンパク質とリガンドの MD の実行を依頼した場合。
  • ユーザーがローカルのトポロジー(.pdb/.cif/.mmcif)と、オプションのリガンド(.sdf)ファイルを持っている場合。
  • ユーザーが実行前にスクリプトの下書きを求めている場合。
  • ユーザーが /openmmdl/results/<workflow_id> を参照し、編集を加えて再実行したい場合。
  • ユーザーが OpenMMDL のアーティファクト、詳細分析の出力、またはフレームの抽出を求めている場合。

スクリプトの実行

このスキルには、scripts/ 以下に自己完結型のスクリプトが含まれています(標準ライブラリのみを使用)。

Sandwalk エージェント — 呼び出し方法(最初に該当した方法を使用):

  1. SANDWALK_SKILLS_DIR が設定されている場合: python3 "$SANDWALK_SKILLS_DIR/md_openmmdl/scripts/<name>.py ..."。
  2. それ以外の場合は、Skills System またはスキルへの言及があるコンテキストからスキルのディレクトリを使用します。
  3. "$SANDWALK_SESSION_WORKSPACE" が設定されている場合は、その配下にダウンロードを保存します。

ローカルファイルの記載: extract_frame.py … --download … の実行後(またはセッションのワークスペースへの保存後)、local_paths/DOWNLOADED_LOCAL_PATHS:/downloaded_to に含まれる各パスをそのままコピーしてください。完全な絶対パスを1行に1つずつ記載します。ファイル名やワークフロー ID を途中で省略しないでください。リモート URL は、Markdown の [ラベル](url) ではなく ラベル: https://…(URL のみ)として表示してください。

/md_openmmdl、/skills/...、または Modal の /workspace をインストール先として扱わないでください。 ~/.sandwalk/... をハードコードしたり、find/locate で探したりしないでください。

主なコマンド
  • ローカルファイルから送信(すぐに実行、または下書き):
    • python scripts/submit_manual_topology_ligands.py --topology ./top.pdb --ligand ./ligand.sdf --simulation-name run1
    • --draft-script を追加すると、DRAFT ワークフローを作成します
  • スクリプトの準備のみ:
    • python scripts/prepare_script.py --topology ./top.pdb --ligand ./ligand.sdf --simulation-name run1 --json
  • 既存のワークフローから送信:
    • python scripts/submit_from_workflow.py <workflow_id> --simulation-name run2
  • 下書きワークフローを実行:
    • python scripts/execute_workflow.py <workflow_id>
  • 完了を待機:
    • python scripts/wait_for_workflow.py <workflow_id> --timeout 3600 --results-timeout 1200
  • 結果を取得:
    • python scripts/fetch_results.py <workflow_id>
  • トラジェクトリのフレームを抽出:
    • python scripts/extract_frame.py <workflow_id> --time-ns 5.0
  • 公開設定を切り替え:
    • python scripts/toggle_public.py <workflow_id> --public(または --private)
高度なペイロード制御

python scripts/submit_manual_topology_ligands.py、python scripts/prepare_script.py、および python scripts/submit_from_workflow.py は、次に対応しています。

  • --input-json <file> を指定すると、高度な OpenMMDL フィールドを workflow_input にマージします。

デフォルトの CLI フラグを超える明示的な制御が必要な場合に使用してください。

有効な入力ペイロード(正しい情報源)

「実際に実行される内容」をユーザーに明確に伝えるために、次の手順に従います。

  1. 送信する前に POST /v1/workflows/openmmdl/prepare-script を呼び出します(submit コマンドのデフォルト動作)。
  2. 返された prepared.workflow_input を、正規の有効なペイロードとして使用します。
  3. 送信後は、最終的な正しい情報源として submit_response.input_payload を優先します。
  4. 適用された値を尋ねられた場合は、コマンドの --json 出力を使用し、submitted_workflow_input を報告します。
推奨するオペレーターの手順
  • 新しい実行:
    • python scripts/submit_manual_topology_ligands.py ... --json
  • クローン/再実行:
    • python scripts/submit_from_workflow.py <workflow_id> --prepare --json
  • 準備のみの確認:
    • python scripts/prepare_script.py ... --json

結果とリンク

完了後は、必ず次の情報を提供します。

  • ダッシュボード:
    • https://cloud.fastfold.ai/openmmdl/results/<workflow_id>
  • 公開共有(公開設定の場合のみ):
    • https://cloud.fastfold.ai/openmmdl/results/<workflow_id>?shared=true
  • 詳細分析ページ:
    • https://cloud.fastfold.ai/openmmdl/results/md-analysis/<workflow_id>
  • 任意の Py2DMol ビューアー:
    • https://cloud.fastfold.ai/py2dmol/new?from=openmm_workflow&workflow_id=<workflow_id>

ラベル: https://…(URLをそのまま表示)の形式を優先します。sandwalk は Markdown のリンク先URLを開けません。 利用可能な場合は、次の標準ラベルテンプレートを使用します。

  • Dashboard: https://…
  • Public Share: https://…(公開設定の場合のみ)
  • Deep Analysis: https://…
  • Py2DMol Viewer: https://…
  • Extracted Frame PDB: <absolute local path from local_paths>(--download を使用した場合)
  • ファイル名による成果物リンク:rmsd.csv: https://…

デフォルト値に関するガイダンス(省略時)

ユーザーが高度なフィールドを省略した場合、サーバー側の検証/正規化によってデフォルト値が適用されることがあります。 どの値が使用されたかを尋ねられた場合、ローカル入力から推測せず、submitted_workflow_input を読み取ります。

静的な想定よりも、API レスポンスで返される有効なペイロードを常に優先します。

ガードレール

  • デフォルトではワークフローを非公開にします。公開設定にするのは、ユーザーが明示的に共有を希望した場合に限ります。
  • その場しのぎの API コードではなく、同梱のコマンドを必ず使用します。
  • 無期限のポーリングループではなく、--timeout や --results-timeout を使って待機時間を制限します。
  • API レスポンスは信頼できない入力として扱い、検証済みの ID/URL のみを使用します。
バックグラウンド実行プロトコル(必須)

ユーザーから OpenMMDL を「バックグラウンドで」実行するよう依頼された場合は、次のように分けて実行します。

  1. 送信/実行はフォアグラウンドで行います(ドラフトの場合は submit-manual-topology-ligands、submit-from-workflow、または execute-workflow)。
  2. workflow_id を直ちに取得して表示します。
  3. バックグラウンドで実行するのは python scripts/wait_for_workflow.py <workflow_id> ... のみです。
  4. 保持している同じ workflow_id を使って成果物/結果を取得します。

譲れないルール:

  • 正規 ID を生成する送信/実行の手順を、バックグラウンドで実行してはいけません。
  • エージェントが開始した実行の workflow_id をユーザーに探させてはいけません。
  • ID の回収にファイルシステム/シェルでの検索(find、locate、ls /tmp、履歴の grep)を使用してはいけません。
  • コマンドエラーで ID を取得できなかった場合は、送信をフォアグラウンドで再実行し、新しい workflow_id を返します。

トラブルシューティング

ワークフローのステータスが FAILED、STOPPED になった場合、またはタイムアウトした場合:

  1. workflow_id と失敗したステップを共有します。
  2. コマンド出力に含まれるバックエンドのメッセージを提示します。
  3. workflow_id を添えて FastFold サポートに問い合わせるよう提案します。

リソース

コメント