If I have a command line tool like this:
java -Xmx55g -Xms55g -jar /a/apps/picard/picard-tools-2.4.1/picard.jar ExtractIlluminaBarcodes \ INPUT_BASECALLS_DIR=/150313_D00282_0057_BC6FF5ANXX/Data/Intensities/BaseCalls \ INPUT_BARCODE_FILE=/barcodes/barcode1.txt \ OUTPUT_METRICS_FILE=/barcodes/barcode1.metrics
In CWL, should I code the above INPUTs and OUTPUT as type 'Directory' and 'File'? Or should I code those as type 'string'? What would be the difference in behavior of CWL during execution? What are the pros and cons?
I seem to be having better luck with getting it to run in CWL as type 'string' below. And even though 'OUTPUT_METRICS_FILE=' designates the name of the File to be output, I put it in the 'inputs' section as just another parameter 'string', and that seems to work okay. Please help us to think clearer about this. Thanks!!
cwlVersion: v1.0 class: CommandLineTool baseCommand: java inputs: - id: basecalls_dir type: string inputBinding: position: 5 separate: false prefix: "INPUT_BASECALLS_DIR=" - id: barcode_file #type: File type: string inputBinding: position: 8 separate: false prefix: "INPUT_BARCODE_FILE=" - id: metrics_file type: string inputBinding: position: 10 separate: false prefix: "OUTPUT_METRICS_FILE="