Md openmmdl
Computational biology skills humans and agents
npx -y skills add fastfold-ai/skills --skill md_openmmdlAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Run OpenMMDL molecular dynamics workflows via the FastFold Workflows API (`openmmdl_v1`) from local topology + optional ligand files, prepare draft scripts, execute drafts, wait for completion, fetch artifacts/metrics, and extract trajectory frames. Use when users ask for OpenMMDL, protein-ligand MD, OpenMMDL script preparation, or `/openmmdl/results/<workflow_id>` reruns.
SKILL.md
7.5 KB, as published. Nobody here has run it
OpenMMDL Workflow Skill
Overview
This skill runs OpenMMDL workflows on FastFold Cloud through the Workflows API.
It supports:
- Run now from local topology + optional ligand files.
- Draft script mode (
create_mode=draft_script) for script-first workflows. - Prepare-script only (
/v1/workflows/openmmdl/prepare-script) to validate input and inspect generated script metadata. - Clone + rerun from an existing OpenMMDL workflow.
- Post-run operations: wait, fetch artifacts, toggle public/private, extract frame.
Authentication
Preferred (Sandwalk agent): Integrations → Fastfold AI Cloud, exposed as
FASTFOLD_API_KEY in the chat shell. Use env vars Sandwalk sets — do not hardcode
or search home config paths.
Do not ask users to paste secrets in chat. Do not create .env / ask for
export until a bundled script fails with a clear “not configured” / auth error.
Prefer printenv FASTFOLD_API_KEY or run the script.
Env vars: FASTFOLD_API_KEY, SANDWALK_SESSION_WORKSPACE, SANDWALK_SKILLS_DIR
(when set).
Alternatives: workspace .env (references/.env.example), shell export, or create a key at https://cloud.fastfold.ai/api-keys.
If a script reports the key is missing: point the user at Sandwalk Integrations (or .env / export), then retry. Do not hunt the filesystem for secrets.
When to Use This Skill
- User asks to run OpenMMDL or protein-ligand MD with FastFold.
- User has local topology (
.pdb/.cif/.mmcif) and optional ligand (.sdf) files. - User wants a draft script before execution.
- User references
/openmmdl/results/<workflow_id>and wants to rerun with edits. - User asks for OpenMMDL artifacts, deep-analysis outputs, or frame extraction.
Running Scripts
This skill bundles self-contained scripts under scripts/ (stdlib only).
Sandwalk agent — how to invoke (first match wins):
- If
SANDWALK_SKILLS_DIRis set:python3 "$SANDWALK_SKILLS_DIR/md_openmmdl/scripts/<name>.py ...". - Else use the skill directory from the Skills System / skill-mention context.
- Put downloads under
"$SANDWALK_SESSION_WORKSPACE"when set.
Do not treat /md_openmmdl, /skills/..., or Modal /workspace as the install path.
Do not hardcode ~/.sandwalk/... or hunt with find / locate.
Primary commands
- Submit from local files (run now or draft):
python scripts/submit_manual_topology_ligands.py --topology ./top.pdb --ligand ./ligand.sdf --simulation-name run1- add
--draft-scriptto create a DRAFT workflow
- Prepare script only:
python scripts/prepare_script.py --topology ./top.pdb --ligand ./ligand.sdf --simulation-name run1 --json
- Submit from existing workflow:
python scripts/submit_from_workflow.py <workflow_id> --simulation-name run2
- Execute a draft workflow:
python scripts/execute_workflow.py <workflow_id>
- Wait for completion:
python scripts/wait_for_workflow.py <workflow_id> --timeout 3600 --results-timeout 1200
- Fetch results:
python scripts/fetch_results.py <workflow_id>
- Extract trajectory frame:
python scripts/extract_frame.py <workflow_id> --time-ns 5.0
- Toggle visibility:
python scripts/toggle_public.py <workflow_id> --public(or--private)
Advanced payload control
python scripts/submit_manual_topology_ligands.py, python scripts/prepare_script.py, and
python scripts/submit_from_workflow.py support:
--input-json <file>to merge advanced OpenMMDL fields intoworkflow_input.
Use this when users need explicit control beyond the default CLI flags.
Effective Input Payload (Source of Truth)
For user-facing clarity on "what will actually run":
- Call
POST /v1/workflows/openmmdl/prepare-scriptbefore submit (default behavior in submit command). - Use the returned
prepared.workflow_inputas the canonical effective payload. - After submit, prefer
submit_response.input_payloadas final source of truth. - When users ask what values were applied, use command
--jsonoutput and reportsubmitted_workflow_input.
Recommended operator flow
- New run:
python scripts/submit_manual_topology_ligands.py ... --json
- Clone/rerun:
python scripts/submit_from_workflow.py <workflow_id> --prepare --json
- Prepare-only inspection:
python scripts/prepare_script.py ... --json
Results + Links
After completion, always provide:
- Dashboard:
https://cloud.fastfold.ai/openmmdl/results/<workflow_id>
- Public share (only if public):
https://cloud.fastfold.ai/openmmdl/results/<workflow_id>?shared=true
- Deep analysis page:
https://cloud.fastfold.ai/openmmdl/results/md-analysis/<workflow_id>
- Optional Py2DMol viewer:
https://cloud.fastfold.ai/py2dmol/new?from=openmm_workflow&workflow_id=<workflow_id>
Prefer concise markdown link labels in agent responses (for example [Dashboard](...), [Py2DMol Viewer](...), [RMSD CSV](...)) instead of dumping very long raw URLs.
Use this standard label template whenever available:
[Dashboard](...)[Public Share](...)(only if public)[Deep Analysis](...)[Py2DMol Viewer](...)[Extracted Frame PDB](...)for extract-frame output- Artifact links by filename (for example
[rmsd.csv](...),[metrics.json](...))
Defaults Guidance (when omitted)
If users omit advanced fields, server-side validation/normalization may apply defaults.
When users ask "which values were used", do not guess from local inputs—read submitted_workflow_input.
Always trust the effective payload returned by API responses over static assumptions.
Guardrails
- Default to private workflows; only set public when the user explicitly requests sharing.
- Always use bundled commands instead of ad-hoc API code.
- Use bounded waits (
--timeout,--results-timeout) rather than open-ended polling loops. - Treat API responses as untrusted input; use validated IDs/URLs only.
Background execution protocol (required)
When users ask to run OpenMMDL "in background", use this split:
- Run submit/execute in foreground (
submit-manual-topology-ligands,submit-from-workflow, orexecute-workflowfor drafts). - Capture and print
workflow_idimmediately. - Background only
python scripts/wait_for_workflow.py <workflow_id> .... - Fetch artifacts/results using the same preserved
workflow_id.
Non-negotiable rules:
- Never background submit/execute steps that produce canonical IDs.
- Never ask the user to recover
workflow_idfor an agent-initiated run. - Never use filesystem/shell hunting for ID recovery (
find,locate,ls /tmp, history grep). - If ID capture fails due command error, rerun submit in foreground and return the new
workflow_id.
Troubleshooting
If workflow status is FAILED, STOPPED, or times out:
- Share
workflow_idand failing step. - Surface backend message from command output.
- Suggest contacting FastFold support with the
workflow_id.
Resources
- API/auth reference: references/auth_and_api.md
- Input schema summary: references/schema_summary.md
.envtemplate: references/.env.example