Loading...
Loading...
Expert in Galaxy workflow development, testing, and IWC best practices. Create, validate, and optimize .ga workflows following Intergalactic Workflow Commission standards.
npx skill4agent add delphine-l/claude_global galaxy-workflow-development.ga{
"a_galaxy_workflow": "true",
"annotation": "Detailed description of workflow purpose and functionality",
"creator": [
{
"class": "Person",
"identifier": "https://orcid.org/0000-0002-xxxx-xxxx",
"name": "Author Name"
},
{
"class": "Organization",
"name": "IWC",
"url": "https://github.com/galaxyproject/iwc"
}
],
"format-version": "0.1",
"license": "MIT",
"release": "0.1.1",
"name": "Human-Readable Workflow Name",
"tags": ["domain-tag", "method-tag"],
"uuid": "unique-identifier",
"version": 1
}type: "data_input"type: "data_collection_input"annotationlabeltype: "parameter_input"type: "tool"tool_idcontent_idtool_shed_repositoryinput_connectionstool_stateworkflow_outputslabelhide: truetype: "text"whenworkflow-name.gaworkflow-name-tests.yml-tests.yml- doc: Description of test case
job:
# Input datasets
Input Label Name:
class: File
path: test-data/input.txt
filetype: txt
hashes:
- hash_function: SHA-1
hash_value: abc123...
# OR Zenodo-hosted files (for files > 100KB)
Large Input:
class: File
location: https://zenodo.org/records/XXXXXX/files/file.fastq.gz
filetype: fastqsanger.gz
hashes:
- hash_function: SHA-1
hash_value: def456...
# Collection inputs
Collection Input:
class: Collection
collection_type: list:paired
elements:
- class: File
identifier: sample1
path: test-data/sample1_R1.fastq
- class: File
identifier: sample1
path: test-data/sample1_R2.fastq
# Parameter inputs
Parameter Label: value
Boolean Parameter: true
Numeric Parameter: 42
outputs:
# Output assertions
Output Label:
file: test-data/expected.txt
# OR various assertions
Another Output:
has_size:
value: 635210
delta: 30000
has_n_lines:
n: 236
has_text:
text: "expected string"
has_line:
line: "exact line content"
has_text_matching:
expression: "regex.*pattern"
# Collection output with element tests
Collection Output:
element_tests:
element_identifier:
file: test-data/expected_element.txt
decompress: true
compare: containsfile: test-data/expected.txthas_size:
value: 1000000
delta: 50000has_n_lines: {n: 100}
has_text: {text: "substring"}
has_line: {line: "exact line"}
has_text_matching: {expression: "regex.*"}compare: contains # Actual contains expected
compare: re_match # Regex match
decompress: true # Decompress before comparisonelement_tests:
element_id:
file: test-data/expected.txtworkflow-folder/ # lowercase, dashes only
├── .dockstore.yml # Dockstore registry metadata (REQUIRED)
├── .workflowhub.yml # WorkflowHub metadata (optional)
├── workflow-name.ga # Galaxy workflow file
├── workflow-name-tests.yml # Planemo test file (REQUIRED)
├── README.md # Usage documentation (REQUIRED)
├── CHANGELOG.md # Version history (REQUIRED)
└── test-data/ # Test datasets (if < 100KB)
├── input1.txt
└── expected_output.txtversion: 1.2
workflows:
- name: main
subclass: Galaxy
publish: true
primaryDescriptorPath: /workflow-name.ga
testParameterFiles:
- /workflow-name-tests.yml
authors:
- name: Author Name
orcid: 0000-0002-xxxx-xxxx
- name: IWC
url: https://github.com/galaxyproject/iwcversion: '0.1'
registries:
- url: https://workflowhub.eu
project: iwc
workflow: category/workflow-name/main# Changelog
## [0.1.2] - 2024-12-11
### Changed
- Updated parameter X to improve Y
- Improved workflow annotation
### Automatic update
- `toolshed.g2.bx.psu.edu/repos/owner/tool/1.0`
was updated to version `1.1`
## [0.1.1] - 2024-11-01
### Added
- Initial workflow version-parallel-accession-downloadrnaseq-paired-endParallel_Accession_DownloadRNA-Seq_PE"Parallel Accession Download from SRA""RNA-Seq Analysis: Paired-End Reads""par_acc_dl""rnaseq_pe""Collection of paired FASTQ files""Reference genome FASTA""fastq_coll""ref_fa""short-read sequencing""single-end library""short-reads sequencing""single-ends library"releasechangeset_revisiontest-data/doc:# Lint workflow (IWC mode)
planemo workflow_lint --iwc workflow.ga
# Test workflow locally
planemo test --galaxy_url http://localhost:8080 \
--galaxy_user_key YOUR_API_KEY \
workflow-tests.yml
# Test workflow with Docker
planemo test --galaxy_docker_image quay.io/galaxyproject/galaxy-min:25.1 \
workflow-tests.ymlInput: Accession list
↓
Tool: Fetch data (e.g., fasterq-dump)
↓
Tool: Quality control (e.g., FastQC)
↓
Output: Raw reads + QC reportInput: FASTQ files
↓
Tool: Quality trimming
↓
Tool: Alignment/Mapping
↓
Tool: Post-processing
↓
Output: Processed data + statisticsInput: Processed data + reference
↓
Tool: Primary analysis (e.g., variant calling, quantification)
↓
Tool: Filtering/Normalization
↓
Tool: Visualization
↓
Output: Results + plots + reportsamplicon/bacterial_genomics/computational-chemistry/data-fetching/epigenetics/genome-annotation/genome-assembly/imaging/metabolomics/microbiome/proteomics/read-preprocessing/repeatmasking/sars-cov-2-variant-calling/scRNAseq/transcriptomics/variant-calling/VGP-assembly-v2/virology/.dockstore.yml.dockstore.ymlannotation-tests.ymlplanemo workflow_lint --iwcplanemo test# Install
pip install planemo
# Lint workflow
planemo workflow_lint --iwc workflow.ga
# Test workflow
planemo test workflow-tests.yml
# Serve workflow locally
planemo serve workflow.gaplanemo workflow_lint --iwcrelease# Update release field
# release: "0.1.1" → "0.1.2"
# Add CHANGELOG entry
echo "## [0.1.2] - $(date +%Y-%m-%d)" >> CHANGELOG.md
echo "### Changed" >> CHANGELOG.md
echo "- Description of changes" >> CHANGELOG.md# Get workflow name and description
head -30 workflow.ga | grep -E '"name"|"annotation"'
# Extract tool names and versions
grep -o '"tool_id": "[^"]*"' workflow.ga | sort -u
# Find specific tools (e.g., assemblers)
grep -o '"tool_id": "[^"]*hifiasm[^"]*"' workflow.gahead -100 workflow.gaGenome assemblies were generated using the [Pipeline Name] workflows (Citation)
implemented in Galaxy (Galaxy Community, 2024). For [condition A], we employed
[approach A]: first, [step 1] using [Tool v.X] (Citation), followed by [step 2]
using [Tool v.Y] (Citation). For [condition B], we performed [approach B]
using [Tool v.Z] (Citation). All assemblies were [post-processing step] using
[Tool] with [specific parameter/reference]. Assembly quality was assessed using
multiple metrics including [Tool A] for [metric type], [Tool B] for [metric type],
and [Tool C] for [metric type]. [Annotation or downstream analysis] was performed
using [Tool/Pipeline] (Citation), which [brief description]. [Specific data sources
with accessions].# Get file size first
ls -lh workflow.ga
# For large files (>100K):
# - Extract metadata only (first 100 lines)
# - Use grep for specific tools
# - Read tool documentation instead of entire workflow
# For small files (<100K):
# - Can read with limit parameter
# - Still prefer targeted grep when possible