Skip to content
Snippets Groups Projects
star.wdl 1.25 KiB
Newer Older
DavyCats's avatar
DavyCats committed
task Star {
    String? preCommand

DavyCats's avatar
DavyCats committed
    Array[File] inputR1
    Array[File]? inputR2
DavyCats's avatar
DavyCats committed
    String genomeDir
    String outFileNamePrefix

    String? outSAMtype = "BAM SortedByCoordinate"
    String? readFilesCommand = "zcat"
    Int? runThreadN
    String? outStd
    String? twopassMode
DavyCats's avatar
DavyCats committed
    Array[String]? outSAMattrRGline
DavyCats's avatar
DavyCats committed

DavyCats's avatar
DavyCats committed
    #TODO needs to be extended for all possible output extensions
    Map[String, String] samOutputNames = {"BAM SortedByCoordinate": "sortedByCoord.out.bam"}
DavyCats's avatar
DavyCats committed

    command {
        set -e -o pipefail
        mkdir -p ${sub(outFileNamePrefix, basename(outFileNamePrefix) + "$", "")}
        ${preCommand}
        STAR \
DavyCats's avatar
DavyCats committed
        --readFilesIn ${sep=',' inputR1} ${sep="," inputR2} \
DavyCats's avatar
DavyCats committed
        --outFileNamePrefix ${outFileNamePrefix} \
        --genomeDir ${genomeDir} \
        ${"--readFilesCommand " + readFilesCommand} \
        ${"--outSAMtype " + outSAMtype} \
        ${"--runThreadN " + runThreadN} \
        ${"--outStd " + outStd} \
        ${"--twopassMode " + twopassMode} \
DavyCats's avatar
DavyCats committed
        ${true="--outSAMattrRGline " false="" defined(outSAMattrRGline)} ${sep=" , " outSAMattrRGline}
DavyCats's avatar
DavyCats committed
    }

    output {
        File bamFile = outFileNamePrefix + "Aligned." +  samOutputNames["${outSAMtype}"]
    }
DavyCats's avatar
DavyCats committed

    runtime {
        threads: runThreadN
    }
DavyCats's avatar
DavyCats committed
}