From 312c490768d2d2fd653741f130ca02c54bf9fbb1 Mon Sep 17 00:00:00 2001
From: Dominik Brilhaus <brilhaus@nfdi4plants.org>
Date: Fri, 2 Aug 2024 14:52:19 +0200
Subject: [PATCH] collect results in single folder

---
 runs/kallisto/workflow.yml                    | 11 +++++++----
 workflows/_aux-tools/collectFilesInDir.cwl    | 19 +++++++++++++++++++
 .../_aux-tools/yield-dirInDestination.cwl     | 19 +++++++++++++++++++
 workflows/kallisto/kallisto-workflow.cwl      | 15 +++++++++++----
 4 files changed, 56 insertions(+), 8 deletions(-)
 create mode 100644 workflows/_aux-tools/collectFilesInDir.cwl
 create mode 100644 workflows/_aux-tools/yield-dirInDestination.cwl

diff --git a/runs/kallisto/workflow.yml b/runs/kallisto/workflow.yml
index db33ad6..44b12a5 100644
--- a/runs/kallisto/workflow.yml
+++ b/runs/kallisto/workflow.yml
@@ -13,17 +13,20 @@ InputReadsMultipleSamples:
     - class: File
       path: ../../assays/Talinum_RNASeq_minimal/dataset/DB_097_CAMMD_CAGATC_L001_R1_001.fastq.gz
       format: edam:format_1930 # FASTQ
-  - 
-    - class: File
-      path: ../../assays/Talinum_RNASeq_minimal/dataset/DB_099_CAMMD_CTTGTA_L001_R1_001.fastq.gz
-      format: edam:format_1930 # FASTQ
+  # - 
+  #   - class: File
+  #     path: ../../assays/Talinum_RNASeq_minimal/dataset/DB_099_CAMMD_CTTGTA_L001_R1_001.fastq.gz
+  #     format: edam:format_1930 # FASTQ
 
 numCharsFastqFileName: 6
+
 ### Kallisto quant Parameters
 isSingle: true
 FragmentLength: 200
 StandardDeviation: 20
 BootstrapSamples: 1
 
+resultsFolder: kallist_results
+
 $namespaces:
   edam: https://edamontology.org/
\ No newline at end of file
diff --git a/workflows/_aux-tools/collectFilesInDir.cwl b/workflows/_aux-tools/collectFilesInDir.cwl
new file mode 100644
index 0000000..f8d411f
--- /dev/null
+++ b/workflows/_aux-tools/collectFilesInDir.cwl
@@ -0,0 +1,19 @@
+cwlVersion: v1.2
+class: ExpressionTool
+doc: |
+  Takes Files (e.g. from a workflow step) and yields them in a desired directory.
+requirements:
+  - class: InlineJavascriptRequirement
+inputs:
+  files: File[]
+  destination: string
+expression: |
+  ${
+    return {"outDir": {
+      "class": "Directory", 
+      "basename": inputs.destination,
+      "listing": inputs.files
+    } };
+  }
+outputs:
+  outDir: Directory
\ No newline at end of file
diff --git a/workflows/_aux-tools/yield-dirInDestination.cwl b/workflows/_aux-tools/yield-dirInDestination.cwl
new file mode 100644
index 0000000..c2a20ea
--- /dev/null
+++ b/workflows/_aux-tools/yield-dirInDestination.cwl
@@ -0,0 +1,19 @@
+cwlVersion: v1.2
+class: ExpressionTool
+doc: |
+  Takes a directory (e.g. from a workflow step) and yield it in a desired directory.
+requirements:
+  - class: InlineJavascriptRequirement
+inputs:
+  inDir: Directory
+  destinationDir: string
+expression: |
+  ${
+    return {"outDir": {
+      "class": "Directory", 
+      "basename": inputs.destinationDir,
+      "listing": [inputs.inDir]
+    } };
+  }
+outputs:
+  outDir: Directory
\ No newline at end of file
diff --git a/workflows/kallisto/kallisto-workflow.cwl b/workflows/kallisto/kallisto-workflow.cwl
index 0cf46eb..6bbeb9d 100644
--- a/workflows/kallisto/kallisto-workflow.cwl
+++ b/workflows/kallisto/kallisto-workflow.cwl
@@ -14,11 +14,11 @@ inputs:
       items: 
         type: array
         items: File
-  numCharsFastqFileName: int?
   isSingle: boolean
   FragmentLength: double?  
   StandardDeviation: double?
-  BootstrapSamples: int?  
+  BootstrapSamples: int?
+  resultsFolder: string
 
 steps:
   index:
@@ -46,8 +46,15 @@ steps:
       StandardDeviation: StandardDeviation
       BootstrapSamples: BootstrapSamples
     out: [outFolder]
+  collectResults:
+    run: ../_aux-tools/yield-dirInDestination.cwl
+    scatter: inDir
+    in:
+      inDir: quant/outFolder
+      destinationDir: resultsFolder
+    out: outDir
 
 outputs:
   finalOut:
-    type: Directory[]
-    outputSource: quant/outFolder
+    type: Directory
+    outputSource: collectResults/outDir
-- 
GitLab