Skip to content
Snippets Groups Projects
star.wdl 1.33 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

DavyCats's avatar
DavyCats committed
    String? outSAMtype
    String? readFilesCommand
DavyCats's avatar
DavyCats committed
    Int? runThreadN
    String? outStd
    String? twopassMode
DavyCats's avatar
DavyCats committed
    Array[String]? outSAMattrRGline
DavyCats's avatar
DavyCats committed

    Int? memory
Cats's avatar
Cats 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} \
DavyCats's avatar
DavyCats committed
        --outSAMtype ${default="BAM SortedByCoordinate" outSAMtype} \
        --readFilesCommand ${default="zcat" readFilesCommand} \
DavyCats's avatar
DavyCats committed
        ${"--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 {
Cats's avatar
Cats committed
        threads: select_first([runThreadN, 1])
        memory: select_first([memory, 10])
DavyCats's avatar
DavyCats committed
    }
DavyCats's avatar
DavyCats committed
}