Dear all,
I have a Dockerfile image with gzip utilite:
FROM alpine
RUN apk update && apk add gzip
ENTRYPOINT ["unzip"]
Consider I have two fastq.gz files and I want to unzip it using my image.
cwlVersion: v1.0
class: CommandLineTool
label: "gzip wrapper"
baseCommand: [unzip, -p]
requirements:
- class: InlineJavascriptRequirement
- class: DockerRequirement
dockerImageId: gzip_wrapper
dockerFile:
$import: Dockerfile
inputs:
forward:
type: File
inputBinding:
position: 0
reverse:
type: File
inputBinding:
position: 1
output_file_name: string?
outputs:
extracted_fastq: stdout
How can I define stdout for my purpose? Can I perform a certain base command for array of files and receive array of result files?
Many thanks.
Dear Tom,
Thanks for the advice.
I have decided to realize the first strategy from your list.
As a result, I have: 1) Unzip wrapper:
2) Workflow:
3) YAML file:
Unfortunately, I have received the error message:
What's wrong with my implementation? Hope you can help me.
Best wishes, Maria.
Hi Maria,
The workflow is missing a space character between "-" and "class" in the
requirements
section. Also, since theunzip
step usesscatter
, it will return an array as output. For this reason thecompiled_class
entry in theoutputs
section of the workflow needs to be oftype: File[]
.Cheers, Tom
I'm grateful for your assistance, Tom!
I've edited my workflow using your remarks, now it works. :) After that, I've changed my final workflow implementation: steps are presented by unzip_forward, unzip_reverse and target_tool_for_unzipped_reads, and inputs are gzipped files.