nf-process-to-galaxy-tool
Convert a single Nextflow process to a Galaxy tool XML
When & Why to Use This Skill
This Claude skill automates the conversion of Nextflow processes into Galaxy tool XML wrappers, streamlining the integration of bioinformatics pipelines into the Galaxy ecosystem. It intelligently handles the mapping of container images to Bioconda packages, translates file patterns into Galaxy datatypes, and generates structured XML components including requirements, commands, inputs, and outputs, ensuring compliance with Planemo validation standards.
Use Cases
- Bioinformatics Pipeline Migration: Efficiently porting individual processes from Nextflow workflows into the Galaxy platform to increase tool accessibility.
- Automated Tool Wrapping: Rapidly generating standardized Galaxy XML wrappers for command-line tools by extracting metadata and logic from existing Nextflow scripts.
- Workflow Interoperability: Bridging the gap between different workflow management systems by automating the translation of execution logic and environment requirements.
- Development Standardization: Ensuring newly created Galaxy tools follow best practices for XML structure and dependency management through automated mapping.
| name | nf-process-to-galaxy-tool |
|---|---|
| description | Convert a single Nextflow process to a Galaxy tool XML |
Nextflow Process to Galaxy Tool
When to Use
Use this skill when:
- Converting a single Nextflow process to a Galaxy tool
- Creating a Galaxy tool wrapper for a specific bioinformatics tool
- You've identified a missing tool during pipeline conversion
Don't use this skill if:
- The tool already exists in Galaxy (check first with
../check-tool-availability.md) - You're converting a whole workflow (use
nf-subworkflow-to-galaxy-workflowinstead)
Step-by-Step Process
Step 1: Check if Tool Already Exists
CRITICAL: Always check first.
Use: ../check-tool-availability.md and ../scripts/check_tool.sh
cd ../
./scripts/check_tool.sh TOOL_NAME
If tool exists: Stop here, use existing tool. You don't need this skill.
If tool doesn't exist: Continue to Step 2.
Step 2: Decide Where to Create Tool
Use: ../tool-sources.md for decision guidance
Options:
- tools-iuc (if community-useful and you have access)
- Custom tool (if project-specific)
Present decision to user and wait for approval.
If targeting tools-iuc, follow the higher-level tool creation guidance in:
../../tool-dev/creation/SKILL.md
Step 3: Extract Process Information
Identify from Nextflow process:
- Container image
- Input files/parameters
- Output files
- Command/script
See: ../process-to-tool.md for detailed extraction guide
Step 4: Map to Galaxy Tool XML
Use these references:
../container-mapping.md- Container → bioconda package../datatype-mapping.md- File patterns → Galaxy datatypes../process-to-tool.md- Complete mapping guide
Step 5: Create Tool XML
Follow Galaxy tool XML structure:
<tool>wrapper<requirements>(from container)<command>(from script)<inputs>(from process inputs)<outputs>(from process outputs)<tests>(create test cases)<help>(documentation)
See: ../process-to-tool.md for complete examples
Step 6: Validate
planemo lint tool.xml
planemo test tool.xml
Quick Reference
One Nextflow process = One Galaxy tool XML
Key mappings:
container→<requirements>(bioconda package)input: path(file)→<param type="data" format="..."/>output: path("*.ext")→<data format="..." name="output"/>script: """..."""→<command><![CDATA[...]]></command>
Resources
These docs live in the parent directory (../):
process-to-tool.md- Complete process-to-tool conversion guidecheck-tool-availability.md- Tool availability checkingtool-sources.md- Where to create toolscontainer-mapping.md- Container to bioconda mappingdatatype-mapping.md- File patterns to Galaxy datatypestesting-and-validation.md- Routing page to canonical testing docs../../tool-dev/shared/testing.md- Tool testing with Planemo
Example
See ../examples/capheine-mapping.md for real-world examples of process analysis.
Note: CAPHEINE shows a case where all tools already existed, so no tool creation was needed. This is common - always check first!