Skip to content
Snippets Groups Projects
check_unflagged_fraction.cwl 2.21 KiB
Newer Older
alex's avatar
alex committed
class: CommandLineTool
alex's avatar
alex committed
cwlVersion: v1.1
alex's avatar
alex committed
$namespaces:
  sbg: 'https://www.sevenbridges.com/'
id: check_unflagged_fraction
baseCommand:
  - python3
alex's avatar
alex committed
inputs:
    - id: msin
      type: Directory
      doc: MS to check
      inputBinding:
        position: 0
    - id: min_fraction
      type: float?
      default: 0.5
      doc: Fraction of flagged data in a MS to be acceptable
requirements:
  - class: InlineJavascriptRequirement
  - class: InitialWorkDirRequirement
    listing:
      - entry: $(inputs.msin)
        writable: true
      - entryname: check_fraction.py
        entry: |
          import sys
          import json
          import shutil
          import os

          from check_unflagged_fraction import main as check_unflagged_fraction

          ms = sys.argv[1]
          inputs = json.loads(r"""$(inputs)""")
          min_fraction = inputs['min_fraction']
alex's avatar
alex committed

          output = check_unflagged_fraction(ms, min_fraction=min_fraction, print_fraction=True)
alex's avatar
alex committed

alex's avatar
alex committed
          filename           = os.path.basename(output['filename'].rstrip('/'))
          unflagged_fraction = output['unflagged_fraction']
alex's avatar
alex committed
          flagged            = output['flagged']
alex's avatar
alex committed

          cwl_output = {}
          cwl_output['unflagged_fraction'] = unflagged_fraction
alex's avatar
alex committed

alex's avatar
alex committed
          if flagged != 'None':
             shutil.move(filename, filename.lstrip('out_'))
             cwl_output['filename'] = 'None'
          else:
             cwl_output['filename'] = filename

          with open('./out.json', 'w') as fp:
              json.dump(cwl_output, fp)
alex's avatar
alex committed

outputs:
  - id: msout
    type: Directory[]
    outputBinding:
alex's avatar
alex committed
        glob: 'L*.dpppconcat'
alex's avatar
alex committed
  - id: unflagged_fraction
    type: float
    outputBinding:
        loadContents: true
        glob: 'out.json'
        outputEval: $(JSON.parse(self[0].contents).unflagged_fraction)
alex's avatar
alex committed
  - id: filenames
    type: string
    outputBinding:
        loadContents: true
        glob: 'out.json'
        outputEval: $(JSON.parse(self[0].contents).filename)
alex's avatar
alex committed
  - id: logfile
alex's avatar
alex committed
    type: File[]
alex's avatar
alex committed
    outputBinding:
alex's avatar
alex committed
      glob: 'check_unflagged_fraction*.log'
alex's avatar
alex committed
hints:
  - class: DockerRequirement
alex's avatar
alex committed
    dockerPull: lofareosc/prefactor3-cwl
alex's avatar
alex committed
stdout: check_unflagged_fraction.log
stderr: check_unflagged_fraction_err.log