#!/usr/bin/env cwl-runner
cwlVersion: v1.2
class: Workflow

requirements:
  ScatterFeatureRequirement: {}
  SubworkflowFeatureRequirement: {}
  MultipleInputFeatureRequirement: {}

inputs:
  inKallistoResults: Directory
  inMetadataFile: File
  inMetadataSample: string
  inMetadataFactorList: string[]
  inMetadataDataCol: string
  finaloutdir: string
 
steps:
  sleuth:
    run: sleuth.cwl
    in:
      inKallistoResults: inKallistoResults
      inMetadataFile: inMetadataFile
      inMetadataSample: inMetadataSample
      inMetadataFactorList: inMetadataFactorList
      inMetadataDataCol: inMetadataDataCol
    out:
      - kallisto_sleuthObject
      - kallisto_df
      - kallisto_tpmMatrix
      - kallisto_mappingStats
      - sleuth_dge
  collectFiles:
    run: ./gather-files.cwl
    in: 
      inFiles:
        source:
          - sleuth/kallisto_sleuthObject
          - sleuth/kallisto_df
          - sleuth/kallisto_tpmMatrix
          - sleuth/kallisto_mappingStats
          - sleuth/sleuth_dge
        linkMerge: merge_flattened
      destination: finaloutdir
    out: [outDir]
  
outputs:
  sleuth_outdir:
    type: Directory
    outputSource: collectFiles/outDir

$namespaces:
  s: https://schema.org/
  edam: http://edamontology.org/

$schemas:
  - https://schema.org/version/latest/schemaorg-current-https.rdf
  - http://edamontology.org/EDAM_1.25.owl

s:author:
  - class: s:Person
    s:name: Dominik Brilhaus
    s:identifier: https://orcid.org/0000-0001-9021-3197