Skip to content
Snippets Groups Projects
biopet.wdl 9.53 KiB
Newer Older
Ruben Vorderman's avatar
Ruben Vorderman committed
# PLEASE ADD TASKS IN ALPHABETIC ORDER.
# This makes searching a lot easier.
Ruben Vorderman's avatar
Ruben Vorderman committed
task BaseCounter {
    String? preCommand
    File? toolJar
Ruben Vorderman's avatar
Ruben Vorderman committed
    File bam
Cats's avatar
Cats committed
    File bamIndex
Ruben Vorderman's avatar
Ruben Vorderman committed
    File refFlat
    String outputDir
    String prefix

    Float? memory
    Float? memoryMultiplier
    Int mem = ceil(select_first([memory, 4.0]))

    String toolCommand = if defined(toolJar)
    then "java -Xmx" + mem + "G -jar " +toolJar
    else "biopet-basecounter -Xmx" + mem + "G"
Pappas's avatar
Pappas committed

Ruben Vorderman's avatar
Ruben Vorderman committed
    command {
        set -e -o pipefail
        mkdir -p ${outputDir}
Cats's avatar
Cats committed
        ${preCommand}
        ${toolCommand} \
Ruben Vorderman's avatar
Ruben Vorderman committed
        -b ${bam} \
        -r ${refFlat} \
        -o ${outputDir} \
        -p ${prefix}
    }

    output {
        File exonAntisense = outputDir + "/" + prefix + ".base.exon.antisense.counts"
        File exon = outputDir + "/" + prefix + ".base.exon.counts"
        File exonMergeAntisense = outputDir + "/" + prefix + ".base.exon.merge.antisense.counts"
        File exonMerge = outputDir + "/" + prefix + ".base.exon.merge.counts"
        File exonMergeSense = outputDir + "/" + prefix + ".base.exon.merge.sense.counts"
        File exonSense = outputDir + "/" + prefix + ".base.exon.sense.counts"
        File geneAntisense = outputDir + "/" + prefix + ".base.gene.antisense.counts"
        File gene = outputDir + "/" + prefix + ".base.gene.counts"
        File geneExonicAntisense = outputDir + "/" + prefix + ".base.gene.exonic.antisense.counts"
        File geneExonic = outputDir + "/" + prefix + ".base.gene.exonic.counts"
        File geneExonicSense = outputDir + "/" + prefix + ".base.gene.exonic.sense.counts"
        File geneIntronicAntisense = outputDir + "/" + prefix + ".base.gene.intronic.antisense.counts"
        File geneIntronic = outputDir + "/" + prefix + ".base.gene.intronic.counts"
        File geneIntronicSense = outputDir + "/" + prefix + ".base.gene.intronic.sense.counts"
        File geneSense = outputDir + "/" + prefix + ".base.gene.sense.counts"
        File intronAntisense = outputDir + "/" + prefix + ".base.intron.antisense.counts"
        File intron = outputDir + "/" + prefix + ".base.intron.counts"
        File intronMergeAntisense = outputDir + "/" + prefix + ".base.intron.merge.antisense.counts"
        File intronMerge = outputDir + "/" + prefix + ".base.intron.merge.counts"
        File intronMergeSense = outputDir + "/" + prefix + ".base.intron.merge.sense.counts"
        File intronSense = outputDir + "/" + prefix + ".base.intron.sense.counts"
        File metaExonsNonStranded = outputDir + "/" + prefix + ".base.metaexons.non_stranded.counts"
        File metaExonsStrandedAntisense = outputDir + "/" + prefix + ".base.metaexons.stranded.antisense.counts"
        File metaExonsStranded = outputDir + "/" + prefix + ".base.metaexons.stranded.counts"
        File metaExonsStrandedSense = outputDir + "/" + prefix + ".base.metaexons.stranded.sense.counts"
        File transcriptAntisense = outputDir + "/" + prefix + ".base.transcript.antisense.counts"
        File transcript = outputDir + "/" + prefix + ".base.transcript.counts"
        File transcriptExonicAntisense = outputDir + "/" + prefix + ".base.transcript.exonic.antisense.counts"
        File transcriptExonic = outputDir + "/" + prefix + ".base.transcript.exonic.counts"
        File transcriptExonicSense = outputDir + "/" + prefix + ".base.transcript.exonic.sense.counts"
        File transcriptIntronicAntisense = outputDir + "/" + prefix + ".base.transcript.intronic.antisense.counts"
        File transcriptIntronic = outputDir + "/" + prefix + ".base.transcript.intronic.counts"
        File transcriptIntronicSense = outputDir + "/" + prefix + ".base.transcript.intronic.sense.counts"
        File transcriptSense = outputDir + "/" + prefix + ".base.transcript.sense.counts"
    }

    runtime {
        memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
task ExtractAdaptersFastqc {
    File? toolJar
    File inputFile
    String outputDir
    String? adapterOutputFilePath = outputDir + "/adapter.list"
    String? contamsOutputFilePath = outputDir + "/contaminations.list"
    Boolean? skipContams
    File? knownContamFile
    File? knownAdapterFile
    Float? adapterCutoff
    Boolean? outputAsFasta

    Float? memory
    Float? memoryMultiplier
    Int mem = ceil(select_first([memory, 4.0]))

    String toolCommand = if defined(toolJar)
    then "java -Xmx" + mem + "G -jar " +toolJar
    else "biopet-extractadaptersfastqc -Xmx" + mem + "G"

    command {
    set -e
    mkdir -p ${outputDir}
    ${toolCommand} \
    --inputFile ${inputFile} \
    ${"--adapterOutputFile " + adapterOutputFilePath } \
    ${"--contamsOutputFile " + contamsOutputFilePath } \
    ${"--knownContamFile " + knownContamFile} \
    ${"--knownAdapterFile " + knownAdapterFile} \
    ${"--adapterCutoff " + adapterCutoff} \
    ${true="--skipContams" false="" skipContams} \
    ${true="--outputAsFasta" false="" outputAsFasta}
    }

    output {
        File adapterOutputFile = select_first([adapterOutputFilePath])
        File contamsOutputFile = select_first([contamsOutputFilePath])
        Array[String] adapterList = read_lines(select_first([adapterOutputFilePath]))
        Array[String] contamsList = read_lines(select_first([contamsOutputFilePath]))
    }

    runtime {
        memory: ceil(mem * select_first([memoryMultiplier, 2.5]))
    }
}


Peter van 't Hof's avatar
Peter van 't Hof committed
task FastqSplitter {
Peter van 't Hof's avatar
Peter van 't Hof committed
    String? preCommand
Peter van 't Hof's avatar
Peter van 't Hof committed
    File inputFastq
Cats's avatar
Cats committed
    Array[String] outputPaths
    File? toolJar

    Float? memory
    Float? memoryMultiplier
    Int mem = ceil(select_first([memory, 4.0]))

    String toolCommand = if defined(toolJar)
    then "java -Xmx" + mem + "G -jar " +toolJar
    else "biopet-fastqsplitter -Xmx" + mem + "G"
Peter van 't Hof's avatar
Peter van 't Hof committed

    command {
Peter van 't Hof's avatar
Peter van 't Hof committed
        set -e -o pipefail
        ${preCommand}
Cats's avatar
Cats committed
        mkdir -p $(dirname ${sep=') $(dirname ' outputPaths})
        if [ ${length(outputPaths)} -gt 1 ]; then
            ${toolCommand} \
Cats's avatar
Cats committed
            -I ${inputFastq} \
            -o ${sep=' -o ' outputPaths}
          else
            ln -sf ${inputFastq} ${outputPaths[0]}
          fi
Peter van 't Hof's avatar
Peter van 't Hof committed
    }

    output {
Cats's avatar
Cats committed
        Array[File] chunks = outputPaths
Peter van 't Hof's avatar
Peter van 't Hof committed
    }
    
    runtime {
        memory: ceil(mem * select_first([memoryMultiplier, 2.5]))
    }
Peter van 't Hof's avatar
Peter van 't Hof committed
}

Ruben Vorderman's avatar
Ruben Vorderman committed
task FastqSync {
Peter van 't Hof's avatar
Peter van 't Hof committed
    String? preCommand
Ruben Vorderman's avatar
Ruben Vorderman committed
    File ref1
    File ref2
    File in1
    File in2
    String out1path
    String out2path
    File? toolJar
    
    Float? memory
    Float? memoryMultiplier
    Int mem = ceil(select_first([memory, 4.0]))

    String toolCommand = if defined(toolJar)
    then "java -Xmx" + mem + "G -jar " +toolJar
    else "biopet-fastqsync -Xmx" + mem + "G"
Pappas's avatar
Pappas committed

Peter van 't Hof's avatar
Peter van 't Hof committed
    command {
Peter van 't Hof's avatar
Peter van 't Hof committed
        set -e -o pipefail
        ${preCommand}
Ruben Vorderman's avatar
Ruben Vorderman committed
        mkdir -p $(dirname ${out1path}) $(dirname ${out2path})
        ${toolCommand} \
Ruben Vorderman's avatar
Ruben Vorderman committed
        --in1 ${in1} \
        --in2 ${in2} \
        --ref1 ${ref1} \
        --ref2 ${ref2} \
        --out1 ${out1path} \
        --out2 ${out2path}
Peter van 't Hof's avatar
Peter van 't Hof committed
    }
Pappas's avatar
Pappas committed

Peter van 't Hof's avatar
Peter van 't Hof committed
    output {
Ruben Vorderman's avatar
Ruben Vorderman committed
        File out1 = out1path
        File out2 = out2path
Cats's avatar
Cats committed
    }
    
    runtime {
        memory: ceil(mem * select_first([memoryMultiplier, 2.5]))
    }
Peter van 't Hof's avatar
Peter van 't Hof committed
}

task SampleConfig {
    File? toolJar
Peter van 't Hof's avatar
Peter van 't Hof committed
    String? preCommand
Peter van 't Hof's avatar
Peter van 't Hof committed
    Array[File]+ inputFiles
Cats's avatar
Cats committed
    String keyFilePath
Peter van 't Hof's avatar
Peter van 't Hof committed
    String? sample
    String? library
    String? readgroup
    String? jsonOutputPath
    String? tsvOutputPath

Cats's avatar
Cats committed
    Float? memory
    Float? memoryMultiplier
Cats's avatar
Cats committed
    Int mem = ceil(select_first([memory, 4.0]))
Pappas's avatar
Pappas committed

    String toolCommand = if defined(toolJar)
    then "java -Xmx" + mem + "G -jar " +toolJar
Cats's avatar
Cats committed
    else "biopet-sampleconfig -Xmx" + mem + "G"
Peter van 't Hof's avatar
Peter van 't Hof committed
    command {
Peter van 't Hof's avatar
Peter van 't Hof committed
        set -e -o pipefail
        ${preCommand}
Cats's avatar
Cats committed
        mkdir -p . ${"$(dirname " + jsonOutputPath + ")"} ${"$(dirname " + tsvOutputPath + ")"}
        ${toolCommand} \
Peter van 't Hof's avatar
Peter van 't Hof committed
        -i ${sep="-i " inputFiles} \
        ${"--sample " + sample} \
        ${"--library " + library} \
        ${"--readgroup " + readgroup} \
        ${"--jsonOutput " + jsonOutputPath} \
Cats's avatar
Cats committed
        ${"--tsvOutput " + tsvOutputPath} \
        > ${keyFilePath}
Peter van 't Hof's avatar
Peter van 't Hof committed
    }

    output {
Cats's avatar
Cats committed
        File keysFile = keyFilePath
Peter van 't Hof's avatar
Peter van 't Hof committed
        File? jsonOutput = jsonOutputPath
        File? tsvOutput = tsvOutputPath
    }
Cats's avatar
Cats committed

    runtime {
Cats's avatar
Cats committed
        memory: ceil(mem * select_first([memoryMultiplier, 2.0]))
Cats's avatar
Cats committed
    }
Peter van 't Hof's avatar
Peter van 't Hof committed
}
Cats's avatar
Cats committed

Ruben Vorderman's avatar
Ruben Vorderman committed
task ScatterRegions {
Cats's avatar
Cats committed
    String? preCommand
Pappas's avatar
Pappas committed
    File refFasta
    File refDict
Ruben Vorderman's avatar
Ruben Vorderman committed
    String outputDirPath
    File? toolJar
Ruben Vorderman's avatar
Ruben Vorderman committed
    Int? scatterSize
    File? regions
Cats's avatar
Cats committed

Cats's avatar
Cats committed
    Float? memory
    Float? memoryMultiplier
Ruben Vorderman's avatar
Ruben Vorderman committed
    Int mem = ceil(select_first([memory, 4.0]))
Pappas's avatar
Pappas committed

    String toolCommand = if defined(toolJar)
    then "java -Xmx" + mem + "G -jar " +toolJar
    else "biopet-scatterregions -Xmx" + mem + "G"

Cats's avatar
Cats committed
    command {
        set -e -o pipefail
        ${preCommand}
Ruben Vorderman's avatar
Ruben Vorderman committed
        mkdir -p ${outputDirPath}
        ${toolCommand} \
Pappas's avatar
Pappas committed
          -R ${refFasta} \
Ruben Vorderman's avatar
Ruben Vorderman committed
          -o ${outputDirPath} \
          ${"-s " + scatterSize} \
          ${"-L " + regions}
Cats's avatar
Cats committed
    }

    output {
Ruben Vorderman's avatar
Ruben Vorderman committed
        Array[File] scatters = glob(outputDirPath + "/scatter-*.bed")
Cats's avatar
Cats committed
    }
Cats's avatar
Cats committed

    runtime {
        memory: ceil(mem * select_first([memoryMultiplier, 3.0]))
Cats's avatar
Cats committed
    }
Cats's avatar
Cats committed
}
Ruben Vorderman's avatar
Ruben Vorderman committed
task Seqstat {
Ruben Vorderman's avatar
Ruben Vorderman committed
    String? preCommand
    File? toolJar
    File fastq
Ruben Vorderman's avatar
Ruben Vorderman committed
    String outputFile
Ruben Vorderman's avatar
Ruben Vorderman committed
    Float? memory
    Float? memoryMultiplier
    Int mem = ceil(select_first([memory, 4.0]))

    String toolCommand = if defined(toolJar)
Ruben Vorderman's avatar
Ruben Vorderman committed
    then "java -Xmx" + mem + "G -jar " + toolJar
Ruben Vorderman's avatar
Ruben Vorderman committed
    else "biopet-seqstat -Xmx" + mem + "G"
Ruben Vorderman's avatar
Ruben Vorderman committed
    command {
        set -e -o pipefail
        ${preCommand}
Ruben Vorderman's avatar
Ruben Vorderman committed
        mkdir -p $(dirname ${outputFile})
Ruben Vorderman's avatar
Ruben Vorderman committed
        ${toolCommand} \
        --fastq ${fastq} \
Ruben Vorderman's avatar
Ruben Vorderman committed
        --output ${outputFile}
Ruben Vorderman's avatar
Ruben Vorderman committed
    }
Ruben Vorderman's avatar
Ruben Vorderman committed
    output {
Ruben Vorderman's avatar
Ruben Vorderman committed
        File json = outputFile
Ruben Vorderman's avatar
Ruben Vorderman committed
    }
Ruben Vorderman's avatar
Ruben Vorderman committed
    runtime {
        memory: ceil(mem * select_first([memoryMultiplier, 2.0]))
    }