Newer
Older
File indexBase
Array[File] indexFiles # Not used by the command, but needed so cromwell does provide the proper links.
Int? minimumSeedLength
Int? w
Int? d
Float? r
Int? y
Int? c
Int? D
Int? m
Int? W
Boolean? skipMateRescue
Boolean? skipPairing
Int? matchScore
Int? mismatchPenalty
String? gapOpenPenalty
String? gapExtensionPenalty
String? endClippingPenalty
String? unpairedReadPairPenalty
String? readType
Boolean? smartPairing
String? readGroupHeaderLine
String? H
Boolean? j
Boolean? five
Boolean? q
Int? K
Int? minimumOutputScore
String? h
Boolean? a
Boolean? appendComment
Boolean? V
Boolean? Y
Boolean? M
String? I
parameter_meta {
referenceFiles: "Should contain all the index files from the index task"
}
${"mkdir -p $(dirname " + outputFile + ")"}
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
${preCommand}
bwa mem \
${"-t " + threads } \
${"-k " + minimumSeedLength } \
${"-w " + w } \
${"-d " + d } \
${"-r " + r } \
${"-y " + y } \
${"-c " + c } \
${"-D " + D } \
${"-W " + W } \
${"-m " + m } \
${true="-s " false="" skipMateRescue } \
${true="-P " false="" skipPairing } \
${"-A " + matchScore } \
${"-B " + mismatchPenalty } \
${"-O " + gapOpenPenalty } \
${"-E " + gapExtensionPenalty } \
${"-L " + endClippingPenalty } \
${"-U " + unpairedReadPairPenalty } \
${"-x " + readType } \
${true="-p " false="" smartPairing} \
${"-r " + readGroupHeaderLine} \
${"-H " + H } \
${true="-j" false="" j } \
${true="-5" false="" five } \
${true="-q" false="" q } \
${"-K " + K } \
${"-T " + minimumOutputScore } \
${"-h " + h } \
${true="-a" false="" a } \
${true="-C" false="" appendComment } \
${true="-V" false="" V } \
${true="-Y" false="" Y } \
${true="-M" false="" M } \
${"-I " + I } \
| picard SortSam CREATE_INDEX=TRUE TMP_DIR=null \
INPUT=/dev/stdin SORT_ORDER=coordinate OUTPUT=${outputFile}
ln -s $(basename ${outputFile} | sed 's/.bam$/.bai/') ${outputFile}.bai
File bamIndexPicard = sub(bamFile, ".bam$", ".bai")
File bamIndexSamtools = select_first([outputFile]) + ".bai"
}
runtime {
cpu: select_first([threads])
memory: select_first([memory])
}
}
task index {
File fasta
String? preCommand
String? constructionAlgorithm
Int? blockSize
String? outputDir
String fastaFilename = basename(fasta)
command {
set -e -o pipefail
${"mkdir -p " + outputDir}
${preCommand}
ln -sf ${fasta} ${outputDir + "/"}${fastaFilename}
bwa index \
${"-a " + constructionAlgorithm} \
${"-b" + blockSize} \
${outputDir + "/"}${fastaFilename}
}
output {
File indexBase = if (defined(outputDir)) then select_first([outputDir]) + "/" + fastaFilename else fastaFilename
File indexedFasta = indexBase
Array[File] indexFiles = [indexBase + ".bwt",indexBase + ".pac",indexBase + ".sa",indexBase + ".amb",indexBase + ".ann"]
}
parameter_meta {
fasta: "Fasta file to be indexed"
constructionAlgorithm: "-a STR BWT construction algorithm: bwtsw, is or rb2 [auto]"
blockSize: "-b INT block size for the bwtsw algorithm (effective with -a bwtsw) [10000000]"
outputDir: "index will be created in this output directory"
}