Question: CWL: Is there a way to only pass certain fields from a `record` type to a step?
1
gravatar for ionox0
6 weeks ago by
ionox080
ionox080 wrote:

Is there a way to only pass certain fields from a record type to a step? As opposed to the whole record object?

This is my best guess, but I was wondering if there was a cleaner way:

inputs:
  samples:
    type:
      type: array
      items:
        type: record
        fields:
          fastq1: File
          fastq2: File
          SM: string

steps:
  step_1: 
    in:
      samples: samples
    out: [bams]

  step_2:
    in:
      bams: step_1/bams
      SM: 
        valueFrom: ${ return inputs.samples.map(function(x) { return x.SM }) }
    out: [changed_bams]
cwl • 100 views
ADD COMMENTlink modified 9 days ago by Michael R. Crusoe820 • written 6 weeks ago by ionox080

Is this because you are sharing that record among many steps in a workflow, like this use case?

ADD REPLYlink written 13 days ago by kaushik.ghose30

Yes exactly, for the purpose of not having to list all the fields from the record type at each subworkflow layer of inputs

ADD REPLYlink written 8 hours ago by ionox080
2
gravatar for Michael R. Crusoe
9 days ago by
currently based out of Vilnius, Lithuania / Common Workflow Language project
Michael R. Crusoe820 wrote:

You almost have it:

steps:
  step_2:
    in:
      SM:
        source: samples
        valueFrom: ${ return self.map(function(x) { return x.SM })
ADD COMMENTlink written 9 days ago by Michael R. Crusoe820
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1584 users visited in the last hour