Newer
Older
$namespaces:
sbg: 'https://www.sevenbridges.com/'
id: check_unflagged_fraction
baseCommand:
- python3
- check_fraction.py
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']
output = check_unflagged_fraction(ms, min_fraction=min_fraction, print_fraction=True)
filename = os.path.basename(output['filename'].rstrip('/'))
unflagged_fraction = output['unflagged_fraction']
cwl_output = {}
cwl_output['unflagged_fraction'] = unflagged_fraction
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)
outputs:
- id: msout
type: Directory[]
outputBinding:
- id: unflagged_fraction
type: float
outputBinding:
loadContents: true
glob: 'out.json'
outputEval: $(JSON.parse(self[0].contents).unflagged_fraction)
- id: filenames
type: string
outputBinding:
loadContents: true
glob: 'out.json'
outputEval: $(JSON.parse(self[0].contents).filename)
stderr: check_unflagged_fraction_err.log