Skip to content

Instantly share code, notes, and snippets.

@pvanheus
Created September 13, 2019 08:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pvanheus/483720737c6c84266707b766477361ec to your computer and use it in GitHub Desktop.
Save pvanheus/483720737c6c84266707b766477361ec to your computer and use it in GitHub Desktop.
#!/usr/bin/env cwl-runner
cwlVersion: v1.0
class: CommandLineTool
id: kraken2
baseCommand:
- kraken2
inputs:
database:
type:
- Directory
# commented out along with secondaryFiles section belong until secondaryFiles work.
# - File
label: "Kraken 2 DB"
inputBinding:
position: 0
prefix: --db
valueFrom: $(self.dirname)
# secondaryFiles: |
# ${
# let dirname = self.location.split('/').slice(0,-1).join('/');
# return [
# { class: "File", location: dirname + '/opts.k2d' },
# { class: "File", location: dirname + '/taxo.k2d' }
# ]
# }
input_sequences:
type: File[]
label: "Input sequence files"
format:
- edam:format_1929 # FASTA
- edam:format_1930 # FASTQ
inputBinding:
position: 1
output:
type: string
label: "Filename for output"
inputBinding:
position: 2
prefix: --output
threads:
type: int?
label: "Number of threads"
default: 1
inputBinding:
position: 3
prefix: --threads
quick:
type: boolean?
label: "Quick operation (use first hit or hits)"
inputBinding:
position: 3
prefix: --quick
unclassified_output:
type: string?
label: "Print unclassified sequences to this filename"
inputBinding:
position: 3
prefix: unclassified_output
classified_output:
type: string?
label: "Print classified sequences to this filename"
inputBinding:
position: 3
prefix: classified_output
confidence:
type: float?
label: "Confidence score threshold"
default: 0.0
inputBinding:
position: 3
prefix: --confidence
minimum-base-quality:
type: int?
label: "Minimum base quality used in classification (only used with FASTQ input"
default: 0
inputBinding:
position: 3
prefix: --minimum-base-quality
report:
type:
type: record
name: report_parameters
fields:
output_report:
type: string?
label: "Print a report with aggregate counts/clade to file"
inputBinding:
position: 3
prefix: --report
use-mpa-style:
type: boolean?
label: "With --report, format report output like Kraken 1's kraken-mpa-report"
inputBinding:
position: 3
prefix: --use-mpa-style
report-zero-counts:
type: boolean?
label: "With --report, report countrs for ALL taxa, even if counts are zero"
inputBinding:
position: 3
prefix: --report-zero-counts
memory-mapping:
type: boolean?
label: "Avoid loading database into RAM"
inputBinding:
position: 3
prefix: --memory-mapping
paired:
type: boolean?
label: "The filenames provided have paired end reads"
inputBinding:
position: 3
prefix: --paired
use-names:
type: boolean?
label: "Print scientific names instead of just taxids"
inputBinding:
position: 3
prefix: --use-names
gzip-compressed:
type: boolean?
label: "Input files are compressed with GZIP"
inputBinding:
position: 3
prefix: --gzip-compressed
bzip2-compressed:
type: boolean?
label: "Input files are compressed with BZIP2"
inputBinding:
position: 3
prefix: --bzip2-compressed
outputs:
kraken_output:
type: File
outputBinding:
glob: $(inputs.output)
kraken_report:
type: File?
outputBinding:
glob: $(inputs.output_report)
classfied_sequences:
type: File?
outputBinding:
glob: $(inputs.classified_output)
unclassified_sequences:
type: File?
outputBinding:
glob: $(inputs.unclassified_output)
hints:
- class: SoftwareRequirement
packages:
kraken2:
version:
- 2.0.8-beta
requirements:
- class: InlineJavascriptRequirement
- class: ResourceRequirement
ramMin: 45000 # kraken2 standard DB is 38 GB. RAM requirement is modelled on testing with this
coresMin: 1
- class: DockerRequirement
dockerPull: "quay.io/biocontainers/kraken2:2.0.8_beta--pl526h6bb024c_0"
$namespaces:
edam: http://edamontology.org/
$schemas:
- "http://edamontology.org/EDAM.owl"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment