From b329b9d660d731a794c4f3f33e029a3f348bcaf5 Mon Sep 17 00:00:00 2001 From: Vlad Kondratiev <vlad.kondratiev@gmail.com> Date: Mon, 7 Apr 2025 09:23:48 +0200 Subject: [PATCH] updated workflow and digitize step to use ScatterFeatureRequirement and also added extra step to combine stdout and stderr output to a single pipeline.log and pipeline_error.log files --- steps/concatenate_files.cwl | 37 ++++++++++++ steps/digitize.cwl | 20 ++++++- workflows/pulp2-xxyy-8bit-requantisation.cwl | 59 +++++++++++++++++--- 3 files changed, 105 insertions(+), 11 deletions(-) create mode 100644 steps/concatenate_files.cwl diff --git a/steps/concatenate_files.cwl b/steps/concatenate_files.cwl new file mode 100644 index 0000000..941a544 --- /dev/null +++ b/steps/concatenate_files.cwl @@ -0,0 +1,37 @@ +cwlVersion: v1.2 +class: CommandLineTool + +label: Concatenates a list of ascii files +doc: | + This tool creates a file that contains the concatenated + content of the input ascii files + +requirements: + - class: InlineJavascriptRequirement + - class: InitialWorkDirRequirement + listing: + - entryname: concatenate.sh + writable: false + entry: | + set -e + files=("\${@}") + filename=$(inputs.output_filename) + cat "\${files[@]}" > $filename + +baseCommand: + - bash + - concatenate.sh + +inputs: + - id: files + type: File[] + inputBinding: + position: 0 + - id: output_filename + type: string + +outputs: + - id: output + type: File + outputBinding: + glob: "$(inputs.output_filename)" diff --git a/steps/digitize.cwl b/steps/digitize.cwl index 5f5d19e..444393b 100644 --- a/steps/digitize.cwl +++ b/steps/digitize.cwl @@ -18,7 +18,7 @@ arguments: ["--verbose"] inputs: - id: h5in - type: File[] + type: File inputBinding: position: 1 doc: Input LOFAR BF .h5 files @@ -45,7 +45,21 @@ outputs: glob: "$(inputs.output_dir)" - id: h5out - type: File[] + type: File doc: Output 8-bit .h5 files outputBinding: - glob: "$(inputs.output_dir)/*.h5" + glob: "$(inputs.output_dir)/$(inputs.h5in.basename)" +# glob: "$(inputs.output_dir)/*.h5" + + - id: stdout_log + type: File[] + outputBinding: + glob: "*_stdout.log" + + - id: stderr_log + type: File[] + outputBinding: + glob: "*_stderr.log" + +stdout: $(inputs.h5in.nameroot)_digitize_stdout.log +stderr: $(inputs.h5in.nameroot)_digitize_stderr.log diff --git a/workflows/pulp2-xxyy-8bit-requantisation.cwl b/workflows/pulp2-xxyy-8bit-requantisation.cwl index 6df443d..b42f4a2 100644 --- a/workflows/pulp2-xxyy-8bit-requantisation.cwl +++ b/workflows/pulp2-xxyy-8bit-requantisation.cwl @@ -3,12 +3,14 @@ class: Workflow requirements: - class: InlineJavascriptRequirement + - class: ScatterFeatureRequirement + - class: StepInputExpressionRequirement inputs: - id: h5in type: File[] - secondaryFiles: ^.raw - doc: Input LOFAR BF .h5 files (input .raw files will be looked for as well) + secondaryFiles: [^.raw] + doc: Input LOFAR BF .h5 files - id: output_dir type: string @@ -21,8 +23,8 @@ inputs: doc: Clip raw data above this many stddevs steps: - digitize: - run: ../steps/digitize.cwl + - id: digitize + run: digitize.cwl label: Converts 32-bit raw LOFAR BF XXYY data to 8-bit doc: | This tool only performs digitizes raw 32-bit LOFAR BF XXYY data to int8. @@ -32,16 +34,57 @@ steps: h5in: h5in output_dir: output_dir nsigma: nsigma - out: [out_dir, h5out] + out: [out_dir, h5out, stdout_log, stderr_log] + scatter: + - h5in + scatterMethod: dotproduct + + - id: concat_stdout_files + label: Combine stdout logfiles from digitize3.py + doc: | + Concatenate stdout files produced by digitize3.py into pipeline.log + run: concatenate_files.cwl + in: + - id: files + source: digitize/stdout_log + valueFrom: $(self.flat()) + - id: output_filename + default: pipeline.log + out: [output] + + - id: concat_stderr_files + label: Combine stderr logfiles from digitize3.py + doc: | + Concatenate stderr files produced by digitize3.py into pipeline.log + run: concatenate_files.cwl + in: + - id: files + source: digitize/stderr_log + valueFrom: $(self.flat()) + - id: output_filename + default: pipeline_error.log + out: [output] outputs: - id: h5out type: File[] outputSource: digitize/h5out - secondaryFiles: ^.raw - doc: Output 8-bit HDF5 (both .h5 and .raw) + secondaryFiles: [^.raw] + doc: Output 8-bit HDF5 - id: out_dir - type: Directory + type: Directory[] outputSource: digitize/out_dir doc: directory for output 8-bit .h5 and .raw files + + - id: stdout_log + type: File + outputSource: + - concat_stdout_files/output + doc: Concatenated stdout logfiles + + - id: stderr_log + type: File + outputSource: + - concat_stderr_files/output + doc: Concatenated stderr logfiles -- GitLab