Skip to content
Snippets Groups Projects
cutadapt.wdl 4.65 KiB
Newer Older
Ruben Vorderman's avatar
Ruben Vorderman committed
task cutadapt {
Ruben Vorderman's avatar
Ruben Vorderman committed
    File read1
    File? read2
    String read1output
    String? read2output
Ruben Vorderman's avatar
Ruben Vorderman committed
    String? format
Ruben Vorderman's avatar
Ruben Vorderman committed
    String? preCommand
Ruben Vorderman's avatar
Ruben Vorderman committed
    Int? cores = 1
Ruben Vorderman's avatar
Ruben Vorderman committed
    String? memory = "4G"
    Array[String]+? adapter
    Array[String]+? front
    Array[String]+? anywhere
    Array[String]+? adapterRead2
    Array[String]+? frontRead2
    Array[String]+? anywhereRead2
Ruben Vorderman's avatar
Ruben Vorderman committed
    Boolean? interleaved
    String? pairFilter
Ruben Vorderman's avatar
Ruben Vorderman committed
    Float? errorRate
    Boolean? noIndels
Ruben Vorderman's avatar
Ruben Vorderman committed
    Int? times
    Int? overlap
Ruben Vorderman's avatar
Ruben Vorderman committed
    Boolean? matchReadWildcards
    Boolean? noMatchAdapterWildcards
    Boolean? noTrim
Ruben Vorderman's avatar
Ruben Vorderman committed
    Boolean? maskAdapter
    Int? cut
    String? nextseqTrim
    String? qualityCutoff
    Int? qualityBase
    Int? length
    Boolean? trimN
    String? lengthTag
    String? stripSuffix
    String? prefix
    String? suffix
    Int? minimumLength
    Int? maximumLength
    Int? maxN
    Boolean? discardTrimmed
    Boolean? discardUntrimmed
    String? infoFilePath
    String? restFilePath
    String? wildcardFilePath
    String? tooShortOutputPath
    String? tooLongOutputPath
    String? untrimmedOutputPath
    String? tooShortPairedOutputPath
    String? tooLongPairedOutputPath
    String? untrimmedPairedOutputPath
    Boolean? colorspace
    Boolean? doubleEncode
    Boolean? trimPrimer
    Boolean? stripF3
    Boolean? maq
    Boolean? bwa
    Boolean? zeroCap
    Boolean? noZeroCap
    String? reportPath
Ruben Vorderman's avatar
Ruben Vorderman committed
    command {
        set -e -o pipefail
Ruben Vorderman's avatar
Ruben Vorderman committed
        mkdir -p $(dirname ${read1output})
Ruben Vorderman's avatar
Ruben Vorderman committed
        ${preCommand}
Ruben Vorderman's avatar
Ruben Vorderman committed
        cutadapt \
        ${"--cores=" + cores} \
Ruben Vorderman's avatar
Ruben Vorderman committed
        ${true="-a " false="" defined(adapter)} ${sep=" -a " adapter} \
        ${true="-A " false="" defined(adapterRead2)} ${sep=" -A " adapterRead2} \
        ${true="-g " false="" defined(front)} ${sep=" -g " front} \
        ${true="-G " false="" defined(frontRead2)} ${sep=" -G " frontRead2} \
        ${true="-b " false="" defined(anywhere)} ${sep=" -a " anywhere} \
        ${true="-B " false="" defined(anywhereRead2)} ${sep=" -B " anywhereRead2} \
Ruben Vorderman's avatar
Ruben Vorderman committed
        --output ${read1output} ${"--paired-output " + read2output} \
        ${"--to-short-output " + tooShortOutputPath} ${"--to-short-paired-output " + tooShortPairedOutputPath} \
        ${"--to-long-output " + tooLongOutputPath} ${"--to-long-paired-output " + tooLongPairedOutputPath} \
        ${"--untrimmed-output " + untrimmedOutputPath} ${"--untrimmed-paired-output " + untrimmedPairedOutputPath} \
        ${"--pair-filter " + pairFilter} \
        ${"--error-rate " + errorRate} \
        ${"--times " + times} \
        ${"--overlap " + overlap} \
        ${"--cut " + cut} \
        ${"--nextseq-trim " + nextseqTrim} \
        ${"--quality-cutoff " + qualityCutoff} \
        ${"--quality-base " + qualityBase} \
        ${"--length " + length} \
        ${"--length-tag " + lengthTag} \
        ${"--strip-suffix " + stripSuffix} \
        ${"--prefix " + prefix} \
        ${"--suffix " + suffix} \
        ${"--minimum-length " + minimumLength} \
        ${"--maximum-length " + maximumLength} \
        ${"--max-n " + maxN} \
        ${true="--discard-untrimmed" false="" discardUntrimmed} \
        ${"--info-file " + infoFilePath } \
        ${"--rest-file " + restFilePath } \
        ${"--wildcard-file " + wildcardFilePath} \
        ${true="--match-read-wildcards" false="" matchReadWildcards} ${true="--no-match-adapter-wildcards" false="" noMatchAdapterWildcards} \
        ${true="--no-trim" false="" noTrim} ${true="--mask-adapter" false="" maskAdapter} \
        ${true="--no-indels" false="" noIndels} ${true="--trim-n" false="" trimN}  \
        ${true="--interleaved" false="" interleaved} ${true="--discard-trimmed" false="" discardTrimmed } \
        ${true="--colorspace" false="" colorspace} ${true="--double-encode" false="" doubleEncode} \
        ${true="--strip-f3" false="" stripF3} ${true="--maq" false="" maq} ${true="--bwa" false="" bwa} \
        ${true="--zero-cap" false="" zeroCap} ${true="--no-zero-cap" false="" noZeroCap} \
        ${read1} ${read2} ${"> " + reportPath}
Ruben Vorderman's avatar
Ruben Vorderman committed
    }
    output{
        File report = if defined(reportPath) then select_first([reportPath]) else stdout()
Ruben Vorderman's avatar
Ruben Vorderman committed
        File cutRead1 = read1output
        File? cutRead2 = read2output
        File? tooLongOutput=tooLongOutputPath
        File? tooShortOutput=tooShortOutputPath
        File? untrimmedOutput=untrimmedOutputPath
        File? tooLongPairedOutput=tooLongPairedOutputPath
        File? tooShortPairedOutput=tooShortPairedOutputPath
        File? untrimmedPairedOutput=untrimmedPairedOutputPath
        File? infoFile=infoFilePath
        File? restFile=restFilePath
        File? wildcardFile=wildcardFilePath
    }
    runtime {
Ruben Vorderman's avatar
Ruben Vorderman committed
        cpu: select_first([cores])
Ruben Vorderman's avatar
Ruben Vorderman committed
        memory: select_first([memory])
Ruben Vorderman's avatar
Ruben Vorderman committed
}