with one click
nf-pipeline-to-galaxy-workflow
Convert a complete Nextflow pipeline to Galaxy
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Convert a complete Nextflow pipeline to Galaxy
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Use when authoring a Galaxy User-Defined Tool (UDT) -- a `class: GalaxyUserTool` YAML definition that wraps a container and command into a tool a non-admin user creates and runs (e.g. via Galaxy MCP create_user_tool / run_user_tool, or POST /api/unprivileged_tools). Not for classic XML/ToolShed tool wrappers.
Use this skill when asked to create, draft, or write a Galaxy workflow report template for the Workflow Editor's Report tab. Triggers on requests like "create a report for this workflow", "draft a workflow report template", "write a Galaxy report for workflow <id/url>".
Galaxy Collection Transformation Command - transform Galaxy dataset collections reproducibly using Galaxy's native tools. Use when asked to filter, sort, relabel, restructure, flatten, nest, merge, or otherwise manipulate Galaxy collections.
Galaxy MCP server tools reference for histories, datasets, tools, and workflows
Router for Galaxy MCP, JupyterLite notebooks, and BioBlend automation
Building UCSC Track Hubs (track hubs and assembly hubs) — bigBed/bigChain/bigMaf format requirements, composite-track rules, hub.txt / genomes.txt / trackDb.txt structure. Use when emitting a UCSC hub from Galaxy outputs, wrapping a hub-publishing tool, or debugging hubCheck failures.
| name | nf-pipeline-to-galaxy-workflow |
| description | Convert a complete Nextflow pipeline to Galaxy |
Use this skill when:
Don't use this skill if:
nf-process-to-galaxy-tool instead)nf-subworkflow-to-galaxy-workflow instead)REQUIRED before starting conversion - ask the user:
What parts of the Nextflow pipeline to convert?
Quality control and reporting requirements:
Best-practice scientific / bioinformatics sanity check (REQUIRED):
Workflow metadata:
NEVER use placeholder values - always get real information from the user. NEVER assume scope - explicitly confirm what to include/exclude.
Read the main Nextflow file and all imported workflows/subworkflows.
Document:
For each process, verify a corresponding Galaxy tool exists:
CRITICAL: Verify tool owner/repository (COMMON ERROR):
devteam, iuc, bgruening)freebayes is under devteam, NOT iucsamtools_sort is under iuc, NOT devteamtoolshed.g2.bx.psu.edu/repos/{owner}/{repo}/{tool}/{version}Check for tool dependencies:
Use the check-tool-availability.md reference.
Prefer a splitter approach when the Nextflow workflow:
--mode, --skip_*, etc.)Splitter pattern:
Deliverable: your plan should explicitly state whether you are producing:
Example (CAPHEINE):
CAPHEINE Pipeline:
├── PIPELINE_INITIALISATION (setup)
├── CAPHEINE (main analysis)
│ ├── PROCESS_VIRAL_NONRECOMBINANT (preprocessing subworkflow)
│ ├── HYPHY_ANALYSES (analyses subworkflow)
│ └── DRHIP (aggregation)
└── PIPELINE_COMPLETION (reporting)
CAPHEINE splitter example (foreground branch): CAPHEINE has an optional branch controlled by providing a foreground regexp/list. In Galaxy, it may be clearer to publish two workflows:
Workflow A: CAPHEINE (no foreground)
Workflow B: CAPHEINE (with foreground)
This keeps each workflow form smaller and avoids large conditional sections.
Use: ../check-tool-availability.md and ../scripts/check_tool.sh
Create comprehensive tool inventory:
cd ../
# List all unique tools used in pipeline
for tool in tool1 tool2 tool3; do
./scripts/check_tool.sh $tool
done
Document all findings in a table:
| Process | Tool | Status | Action |
|---------|------|--------|--------|
| PROCESS_A | tool_a | ✅ Exists | Use existing |
| PROCESS_B | tool_b | ❌ Missing | Create tool |
Plan must include:
Tool inventory (from Step 2)
Tool creation strategy (for missing tools)
Workflow structure
Implementation order
Present plan to user and wait for approval before implementing.
See: ../tool-sources.md for tool placement decisions
For each missing tool, use the nf-process-to-galaxy-tool skill.
Wait for all tools to be created and validated before continuing.
For each subworkflow, use the nf-subworkflow-to-galaxy-workflow skill.
Caveats (important for most pipelines):
UUIDs must be in proper UUID4 format:
uuid fields are valid UUID4 strings (e.g., 550e8400-e29b-41d4-a716-446655440000).UUIDs must be unique across the entire workflow JSON:
uuid is duplicated (common failure: copying the workflow uuid into a step uuid, or reusing the same step UUID across multiple steps).uuidsteps.<n>.uuidsteps.<n>.workflow_outputs[*].uuidInterpret Galaxy warnings correctly: The user may provide a list of warnings produced by Galaxy for a workflow they try to import.
input_connections uses the wrong parameter name, ortool_state was not set, so Galaxy expects a different input branch.tool_id.These two mistakes are extremely common — preempt them:
tool_id + version.tool_state and use the exact conditional parameter path in input_connections.Tool forms often require setting conditional selectors in tool_state:
input_connections correctly, Galaxy may still treat the input as missing unless the selector branch is chosen in tool_state.Validation checkpoint (recommended):
.ga, import into the target Galaxy and scan for:
input_connections key names and/or conditional selectors)Iterate using Galaxy’s import warnings report:
.ga into their Galaxy instanceinput_connections keystool_stateTool existence and repository owner must be verified:
Tool existence must be verified (CRITICAL):
Tool semantics must be validated (tool may exist but still be wrong) (CRITICAL):
seqkit_split2 exists, but it splits into parts/chunks; for “one FASTA record → one dataset in a collection”, use an appropriate splitter tool (e.g. ToolShed rnateam/splitfasta / rbc_splitfasta).Tool input/output connections are REQUIRED (CRITICAL):
input_connections that wire it to upstream steps (except workflow inputs).id + exact output_name from that step.reference_cond|reference_history not reference).fasta not query).labeled_tree not output).Dataset collections vs individual datasets:
data_collection_input type with collection_type: "paired".type: "input" to preserve collection structure.Tool dependencies and helper steps:
Tool versions in drafted .ga files are often placeholders:
tool_id/tool_version to what is actually installed (tool revisions and +galaxyN suffixes differ).tool_id/tool_version you emit as a placeholder and explicitly tell the user they must verify/adjust versions against their Galaxy.Recommended structure:
Example (CAPHEINE):
Workflow 1: CAPHEINE_Preprocessing
- Input: Raw sequences
- Output: Alignment + Tree
Workflow 2: CAPHEINE_Analyses
- Input: Alignment + Tree
- Output: Analysis results + DRHIP report
Use the canonical testing docs:
../../tool-dev/references/testing.md../../galaxy-integration/galaxy-integration.md../testing-and-validation.md is a short routing page that links to these.
At minimum:
Create documentation for users:
Nextflow pipeline = Multiple Galaxy workflows + tools
Decomposition strategy:
nf-process-to-galaxy-tool)nf-subworkflow-to-galaxy-workflow)All detailed guides are in parent directory (../):
check-tool-availability.md - Tool availability checkingtool-sources.md - Where to create toolsworkflow-to-ga.md - Workflow creation guidenextflow-galaxy-terminology.md - Conceptual mappingstesting-and-validation.md - Routing page to canonical testing docsRelated skills:
nf-process-to-galaxy-tool - For creating missing toolsnf-subworkflow-to-galaxy-workflow - For building workflow componentsSee ../examples/capheine-mapping.md for full CAPHEINE conversion.
Key findings:
This demonstrates the ideal case: Most established pipelines use common tools that already exist in Galaxy.