diff --git a/tools/pRESTO/.dockerignore b/tools/pRESTO/.dockerignore new file mode 100644 index 000000000..ceb98d814 --- /dev/null +++ b/tools/pRESTO/.dockerignore @@ -0,0 +1 @@ +*.cwl diff --git a/tools/pRESTO/Dockerfile b/tools/pRESTO/Dockerfile new file mode 100644 index 000000000..03f7103a0 --- /dev/null +++ b/tools/pRESTO/Dockerfile @@ -0,0 +1,19 @@ +FROM debian:testing +RUN apt-get -y update && apt-get install -y --no-install-recommends \ + muscle \ + vsearch \ + python-biopython \ + python-numpy \ + python-scipy \ + python-numpy \ + python-pandas \ + curl \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* +ENV p_MAJOR=0 +ENV p_MINOR=4 +ENV p_PATCH=8 +ENV p_ARCHIVE=pRESTO_v${p_MAJOR}.${p_MINOR}.${p_PATCH}.tar.gz +RUN curl -SL \ + "http://clip.med.yale.edu/presto/downloadHelper.php?dbTable=presto&downloadFile=${p_ARCHIVE}" \ + | tar xzC /usr/local diff --git a/tools/pRESTO/MaskPrimers.py.cwl b/tools/pRESTO/MaskPrimers.py.cwl new file mode 100644 index 000000000..b6031cf8f --- /dev/null +++ b/tools/pRESTO/MaskPrimers.py.cwl @@ -0,0 +1,112 @@ +class: CommandLineTool +id: MaskPrimers.py +label: pRESTO MaskPrimers.py + +description: | + usage: MaskPrimers.py [-h] [-v] ... + + Removes primers and annotates sequences with primer and barcode identifiers + + optional arguments: + -h, --help show this help message and exit + -v, --version show program's version number and exit + + subcommands: + Alignment method + align Find primer matches using pairwise local alignment + score Find primer matches by scoring primers at a fixed position + + output files: + mask-pass processed reads with successful primer matches. + mask-fail raw reads failing primer identification. + + output annotation fields: + SEQORIENT the orientation of the output sequence. Either F (input) + or RC (reverse complement of input). + PRIMER name of the best primer match. + BARCODE the sequence preceding the primer match. Only output when + the --barcode flag is specified. + +requirements: + - import: node-engine.cwl + +inputs: + - id: "#subcommand" + type: enum + symbols: ["score", "align"] + inputBinding: + position: 0 + + - id: "#input_files" + type: File + inputBinding: + prefix: "-s" + + - id: "#primer_file" + type: File + inputBinding: + prefix: "-p" + + - id: "#mode" + type: enum + symbols: ["cut","mask","trim","tag"] + inputBinding: + prefix: "--mode" + + - id: "#barcode" + type: boolean + inputBinding: + prefix: "--barcode" + + - id: "#start" + type: int + inputBinding: + prefix: "--start" + + - id: "#maxerror" + type: float + inputBinding: + prefix: "--maxerror" + + - id: "#nproc" + type: int + inputBinding: + prefix: "--nproc" + + - id: "#outname" + type: string + inputBinding: + prefix: "--outname" + + - id: "#outdir" + type: string + default:"outdir" + inputBinding: + prefix: "--outdir" + + - id: "#error_log" + type: string + default: "Pipeline.err" + + - id: "#pipeline_log" + type: string + default: "Pipeline.log" + +outputs: + - id: "#outputs" + type: File + outputBinding: + glob: + engine: "node-engine.cwl" + script: > + $job.outname + '_quality-pass.fastq' + +stdout: + engine: cwl:JsonPointer + script: /job/pipeline_log + +# stderr: +# engine: cwl:JsonPointer +# script: /job/error_log + +# _primers-pass.fastq diff --git a/workflows/pRESTO/.keep b/workflows/pRESTO/.keep new file mode 100644 index 000000000..e69de29bb