From bb10ca12d9ee62f2cbfb485a0edfa79021d9811c Mon Sep 17 00:00:00 2001
From: Mattia Mancini <mancini@astron.nl>
Date: Fri, 21 Jul 2023 09:53:46 +0000
Subject: [PATCH] Improve LDV workflow

---
 steps/format_quality.cwl                      | 27 ++++++++++++++
 steps/list_directory_files.cwl                | 20 ++++++++++
 ...calibrator.cwl => ldv_linc_calibrator.cwl} | 37 +++++++++++++++----
 ...efactor_target.cwl => ldv_linc_target.cwl} | 31 ++++++++++++----
 4 files changed, 100 insertions(+), 15 deletions(-)
 create mode 100644 steps/format_quality.cwl
 create mode 100644 steps/list_directory_files.cwl
 rename workflows/{ldv_prefactor_calibrator.cwl => ldv_linc_calibrator.cwl} (60%)
 rename workflows/{ldv_prefactor_target.cwl => ldv_linc_target.cwl} (77%)

diff --git a/steps/format_quality.cwl b/steps/format_quality.cwl
new file mode 100644
index 00000000..926c9bde
--- /dev/null
+++ b/steps/format_quality.cwl
@@ -0,0 +1,27 @@
+class: ExpressionTool
+cwlVersion: v1.2
+inputs:
+- id: plots
+  type: File[]
+- id: summary
+  type: File
+  
+outputs:
+- id: quality
+  type: Any
+expression: |
+  ${
+      return {
+       "quality": {
+         "plots": inputs.plots,
+         "details": {},
+         "sensitivity": "N/A",
+         "uv-coverage": "N/A",
+         "observing-conditions": "N/A",
+         "summary_file": inputs.summary
+       }
+    }
+  }
+  
+requirements:
+- class: InlineJavascriptRequirement
diff --git a/steps/list_directory_files.cwl b/steps/list_directory_files.cwl
new file mode 100644
index 00000000..e60a3e59
--- /dev/null
+++ b/steps/list_directory_files.cwl
@@ -0,0 +1,20 @@
+id: listdirectory
+label: list_directory
+class: ExpressionTool
+cwlVersion: v1.2
+
+inputs:
+  - id: input
+    type: Directory
+    loadListing: shallow_listing
+outputs:
+  - id: output
+    type: File[]
+
+expression: |
+  ${
+    return {'output': inputs.input.listing}
+  }
+
+requirements:
+  - class: InlineJavascriptRequirement
diff --git a/workflows/ldv_prefactor_calibrator.cwl b/workflows/ldv_linc_calibrator.cwl
similarity index 60%
rename from workflows/ldv_prefactor_calibrator.cwl
rename to workflows/ldv_linc_calibrator.cwl
index 32892237..30ca3dd8 100644
--- a/workflows/ldv_prefactor_calibrator.cwl
+++ b/workflows/ldv_linc_calibrator.cwl
@@ -15,11 +15,11 @@ outputs:
 - id: solutions
   type: File
   outputSource:
-  - prefactor_calibrator/solutions
+  - linc_calibrator/solutions
 - id: summary
   type: File
   outputSource:
-  - prefactor_calibrator/summary
+  - linc_calibrator/summary
 - id: inspection_plots
   type: File
   outputSource:
@@ -28,7 +28,28 @@ outputs:
   type: File
   outputSource:
   - compress_logs/compressed
+- id: quality
+  type: Any
+  outputSource:
+  - format_quality/quality
+
 steps:
+- id: format_quality
+  in:
+  - id: plots
+    source: list_inspection_plots/output
+  - id: summary
+    source: linc_calibrator/summary
+  run: ../steps/format_quality.cwl
+  out:
+  - id: quality
+- id: list_inspection_plots
+  in:
+  - id: input
+    source: linc_calibrator/inspection_plots
+  run: ../steps/list_directory_files.cwl
+  out:
+  - id: output
 - id: fetch_data
   in:
   - id: surl_link
@@ -37,7 +58,7 @@ steps:
   run: ../steps/fetch_data.cwl
   out:
   - id: uncompressed
-- id: prefactor_calibrator
+- id: linc_calibrator
   in:
   - id: msin
     source: fetch_data/uncompressed
@@ -48,16 +69,16 @@ steps:
   - id: inspection_plots
   - id: log_files
 - id: compress_inspection_plots
-  in: 
+  in:
   - id: directory
-    source: prefactor_calibrator/inspection_plots
+    source: linc_calibrator/inspection_plots
+  run: ../steps/compress.cwl
   out:
   - id: compressed
-  run: ../steps/compress.cwl
 - id: compress_logs
   in:
   - id: directory
-    source: prefactor_calibrator/log_files
+    source: linc_calibrator/log_files
+  run: ../steps/compress.cwl
   out:
   - id: compressed
-  run: ../steps/compress.cwl
\ No newline at end of file
diff --git a/workflows/ldv_prefactor_target.cwl b/workflows/ldv_linc_target.cwl
similarity index 77%
rename from workflows/ldv_prefactor_target.cwl
rename to workflows/ldv_linc_target.cwl
index fdd1b4c4..9a497356 100644
--- a/workflows/ldv_prefactor_target.cwl
+++ b/workflows/ldv_linc_target.cwl
@@ -23,11 +23,11 @@ outputs:
   - id: cal_solutions
     type: File
     outputSource:
-    - prefactor_target/solutions
+    - linc_target/solutions
   - id: summary
     type: File
     outputSource:
-    - prefactor_target/summary
+    - linc_target/summary
   - id: calibrated_data
     type: File[]
     outputSource:
@@ -40,7 +40,18 @@ outputs:
     type: File
     outputSource:
     - compress_logs/compressed
+  - id: quality
+    type: Any
+    outputSource:
+    - format_quality/quality
 steps:
+  - id: format_quality
+    in: 
+    - id: plots
+      source: list_inspection_plots/output
+    out:
+    - id: quality
+    run: ../steps/format_quality.cwl
   - id: fetch_data
     in:
     - id: surl_link
@@ -56,7 +67,7 @@ steps:
     run: ../steps/fetch_file.cwl
     out:
     - id: downloaded
-  - id: prefactor_target
+  - id: linc_target
     in:
     - id: msin
       source: fetch_data/uncompressed
@@ -76,15 +87,21 @@ steps:
   - id: compress_inspection_plots
     in: 
     - id: directory
-      source: prefactor_target/inspection_plots
+      source: linc_target/inspection_plots
     out:
     - id: compressed
     run: ../steps/compress.cwl
-
+  - id: list_inspection_plots
+    in:
+    - id: input
+      source: linc_target/inspection_plots
+    out:
+    - id: output
+    run: ../steps/list_directory_files.cwl
   - id: split_calibrated_data
     in: 
     - id: input
-      source: prefactor_target/calibrated_data
+      source: linc_target/calibrated_data
     out:
     - id: output
     run: ../steps/list_directory.cwl
@@ -99,7 +116,7 @@ steps:
   - id: compress_logs
     in:
     - id: directory
-      source: prefactor_target/log_files
+      source: linc_target/log_files
     out:
     - id: compressed
     run: ../steps/compress.cwl
\ No newline at end of file
-- 
GitLab