Skip to content
Snippets Groups Projects
Commit 33f50aaf authored by Ruben Vorderman's avatar Ruben Vorderman
Browse files

Merge branch 'BIOWDL-484' of https://github.com/biowdl/tasks into BIOWDL-484

parents fdf0e47f 22eef833
No related branches found
No related tags found
No related merge requests found
......@@ -11,6 +11,13 @@ that users understand how the changes affect the new version.
version 4.0.0-develop
---------------------------
+ Default docker images for bwa, bwakit and hisat2 updated to include samtools
1.10.
+ Alignment tasks (STAR, Hisat2, BWA) now produce BAM files at level 1
compression.
+ Hisat2 task has added controls for samtools.
+ Alignment tasks no longer produce BAM indexes as these are not needed
by the markduplicates step.
+ Picard Markduplicates now uses 7G of RAM just like in GATK's best practice
example pipeline.
+ Picard SortSam added as a task.
......@@ -18,7 +25,7 @@ version 4.0.0-develop
BAM files.
+ Changed PicardMarkduplicates to use COMPRESSION_LEVEL=1 by default with
the htsjdk deflater.
This makes the task finish in 30% less time at the cost of a 6% larger BAM
This makes the task finish in 32% less time at the cost of a 8% larger BAM
file.
+ Added sambamba markdup and sambamba sort. NOTE: samtools sort is more
efficient and is recommended.
......
......@@ -22,23 +22,32 @@ version 1.0
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
task Bcf2Vcf {
task View {
input {
File bcf
String outputPath = "./bcftools/SV.vcf"
String memory = "2G"
Int timeMinutes = 1 + ceil(size(bcf, "G"))
String dockerImage = "quay.io/biocontainers/bcftools:1.9--ha228f0b_3"
File inputFile
String outputPath = "output.vcf.gz"
String memory = "256M"
Int timeMinutes = 1 + ceil(size(inputFile, "G"))
String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2"
String outputType = "z"
Int compressionLevel = 1
}
command {
set -e
mkdir -p "$(dirname ~{outputPath})"
bcftools view ~{bcf} -O v -o ~{outputPath}
bcftools view \
-o ~{outputPath} \
-O ~{outputType} \
-l ~{compressionLevel} \
~{inputFile}
bcftools index --tbi ~{outputPath}
}
output {
File outputVcf = outputPath
File outputVcfIndex = outputPath + ".tbi"
}
runtime {
......@@ -48,9 +57,11 @@ task Bcf2Vcf {
}
parameter_meta {
bcf: {description: "The generated BCF from an SV caller", category: "required"}
inputFile: {description: "A vcf or bcf file", category: "required"}
outputPath: {description: "The location the output VCF file should be written.", category: "common"}
outputType: {description: "Output type: v=vcf, z=vcf.gz, b=bcf, u=uncompressed bcf"}
memory: {description: "The amount of memory this job will use.", category: "advanced"}
compressionLevel: {description: "Compression level from 0 (uncompressed) to 9 (best).", category: "advanced"}
timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"}
}
......@@ -87,7 +98,7 @@ task Stats {
Int threads = 0
Int timeMinutes = 1 + 2* ceil(size(select_all([inputVcf, compareVcf]), "G")) # TODO: Estimate, 2 minutes per GB, refine later.
String memory = "256M"
String dockerImage = "quay.io/biocontainers/bcftools:1.9--ha228f0b_3"
String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2"
}
command {
......
......@@ -30,7 +30,7 @@ task ChunkedScatter {
String memory = "256M"
Int timeMinutes = 2
String dockerImage = "quay.io/biocontainers/chunked-scatter:0.2.0--py_0"
String dockerImage = "quay.io/biocontainers/chunked-scatter:1.0.0--py_0"
}
command {
......
......@@ -81,7 +81,7 @@ task Cutadapt {
Int cores = 4
String memory = "~{300 + 100 * cores}M"
Int timeMinutes = 1 + ceil(size([read1, read2], "G") * 12.0 / cores)
String dockerImage = "quay.io/biocontainers/cutadapt:2.8--py37h516909a_0"
String dockerImage = "quay.io/biocontainers/cutadapt:2.10--py37h516909a_0"
}
String realRead2output = select_first([read2output, "cut_r2.fq.gz"])
......
......@@ -35,7 +35,7 @@ task AnnotateIntervals {
String memory = "3G"
String javaXmx = "2G"
Int timeMinutes = 5
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -96,7 +96,7 @@ task ApplyBQSR {
Int memoryMb = javaXmxMb + 512
Int javaXmxMb = 2048
Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -168,7 +168,7 @@ task BaseRecalibrator {
Int memoryMb = javaXmxMb + 512
Int javaXmxMb = 1024
Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -227,7 +227,7 @@ task CalculateContamination {
String memory = "13G"
String javaXmx = "12G"
Int timeMinutes = 180
String dockerImage = "quay.io/biocontainers/gatk4:4.1.2.0--1"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -271,7 +271,7 @@ task CallCopyRatioSegments {
String memory = "3G"
String javaXmx = "2G"
Int timeMinutes = 2
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -320,7 +320,7 @@ task CollectAllelicCounts {
String memory = "11G"
String javaXmx = "10G"
Int timeMinutes = 120
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -376,7 +376,7 @@ task CollectReadCounts {
String memory = "8G"
String javaXmx = "7G"
Int timeMinutes = 1 + ceil(size(inputBam, "G") * 5)
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -433,7 +433,7 @@ task CombineGVCFs {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 1 + ceil(size(gvcfFiles, "G") * 8)
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -607,7 +607,7 @@ task DenoiseReadCounts {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 5
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -665,7 +665,7 @@ task FilterMutectCalls {
String memory = "13G"
String javaXmx = "12G"
Int timeMinutes = 60
String dockerImage = "quay.io/biocontainers/gatk4:4.1.2.0--1"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -728,7 +728,7 @@ task GatherBqsrReports {
Int memoryMb = 256 + javaXmxMb
Int javaXmxMb = 256
Int timeMinutes = 1
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -774,7 +774,7 @@ task GenomicsDBImport {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 180
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -833,7 +833,7 @@ task GenotypeGVCFs {
String memory = "7G"
String javaXmx = "6G"
Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -899,7 +899,7 @@ task GetPileupSummaries {
String memory = "13G"
String javaXmx = "12G"
Int timeMinutes = 120
String dockerImage = "quay.io/biocontainers/gatk4:4.1.2.0--1"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -966,7 +966,7 @@ task HaplotypeCaller {
# Memory increases with time used. 4G should cover most use cases.
Int javaXmxMb = 4096
Int timeMinutes = 400 # This will likely be used with intervals, as such size based estimation can't be used.
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1040,7 +1040,7 @@ task LearnReadOrientationModel {
String memory = "13G"
String javaXmx = "12G"
Int timeMinutes = 120
String dockerImage = "quay.io/biocontainers/gatk4:4.1.2.0--1"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1079,7 +1079,7 @@ task MergeStats {
String memory = "15G"
String javaXmx = "14G"
Int timeMinutes = 30
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1126,7 +1126,7 @@ task ModelSegments {
String memory = "11G"
String javaXmx = "10G"
Int timeMinutes = 60
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1202,7 +1202,7 @@ task MuTect2 {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 240
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1389,7 +1389,7 @@ task PreprocessIntervals {
String memory = "4G"
String javaXmx = "3G"
Int timeMinutes = 1 + ceil(size(referenceFasta, "G") * 6)
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1447,7 +1447,7 @@ task SelectVariants {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 60
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1507,7 +1507,7 @@ task SplitNCigarReads {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1576,7 +1576,7 @@ task VariantEval {
String javaXmx = "4G"
# TODO: Refine estimate. For now 4 minutes per GB of input.
Int timeMinutes = ceil(size(flatten([evalVcfs, comparisonVcfs, select_all([referenceFasta, dbsnpVCF])]), "G") * 20)
String dockerImage = "quay.io/biocontainers/gatk4:4.1.7.0--py38_0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......@@ -1647,7 +1647,7 @@ task VariantFiltration {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 120
String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
}
command {
......
......@@ -34,12 +34,15 @@ task Hisat2 {
String summaryFilePath = basename(outputBam, ".bam") + ".summary.txt"
Int threads = 4
String memory = "~{threads + 5 + ceil(size(indexFiles, "G"))}G"
Int sortThreads = 1
Int sortMemoryPerThreadGb = 2
Int compressionLevel = 1
Int memoryGb = 1 + threads + ceil(size(indexFiles, "G") * 1.2) + sortMemoryPerThreadGb * sortThreads
Int timeMinutes = 1 + ceil(size([inputR1, inputR2], "G") * 180 / threads)
# quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1
# is a combination of hisat2 and samtools
# hisat2=2.1.0, samtools=1.8
String dockerImage = "quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:2388ff67fc407dad75774291ca5038f40cac4be0-0"
# hisat2=2.2.0, samtools=1.10
String dockerImage = "quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:2880dd9d8ad0a7b221d4eacda9a818e92983128d-0"
}
String bamIndexPath = sub(outputBam, "\.bam$", ".bai")
......@@ -59,18 +62,21 @@ task Hisat2 {
~{true="--dta" false="" downstreamTranscriptomeAssembly} \
--new-summary \
--summary-file ~{summaryFilePath} \
| samtools sort > ~{outputBam}
samtools index ~{outputBam} ~{bamIndexPath}
| samtools sort \
~{"-@ " + sortThreads} \
-m ~{sortMemoryPerThreadGb}G \
-l ~{compressionLevel} \
- \
-o ~{outputBam}
}
output {
File bamFile = outputBam
File bamIndex = bamIndexPath
File summaryFile = summaryFilePath
}
runtime {
memory: memory
memory: "~{memoryGb}G"
cpu: threads + 1
time_minutes: timeMinutes
docker: dockerImage
......@@ -88,9 +94,12 @@ task Hisat2 {
downstreamTranscriptomeAssembly: {description: "Equivalent to hisat2's `--dta` flag.", category: "advanced"}
summaryFilePath: {description: "Where the summary file should be written.", category: "advanced"}
threads: {description: "The number of threads to use.", category: "advanced"}
memory: {description: "The amount of memory this job will use.", category: "advanced"}
memoryGb: {description: "The amount of memory this job will use in gigabytes.", category: "advanced"}
timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
category: "advanced"}
sortThreads: {description: "The number of threads to use for sorting.", category: "advanced"}
sortMemoryPerThreadGb: {description: "The amount of memory for each sorting thread in gigabytes.", category: "advanced"}
compressionLevel: {description: "The compression level of the output BAM.", category: "advanced"}
}
}
\ No newline at end of file
......@@ -25,23 +25,23 @@ task HTSeqCount {
Array[File]+ inputBams
File gtfFile
String outputTable = "output.tsv"
String format = "bam"
String order = "pos"
String stranded = "no"
String? featureType
String? idattr
Array[String] additionalAttributes = []
String memory = "40G"
Int nprocesses = 1
String memory = "8G"
Int timeMinutes = 10 + ceil(size(inputBams, "G") * 60)
String dockerImage = "quay.io/biocontainers/htseq:0.11.2--py37h637b7d7_1"
String dockerImage = "quay.io/biocontainers/htseq:0.12.4--py37hb3f55d8_0"
}
command {
set -e
mkdir -p "$(dirname ~{outputTable})"
htseq-count \
-f ~{format} \
--nprocesses ~{nprocesses} \
-r ~{order} \
-s ~{stranded} \
~{"--type " + featureType} \
......@@ -49,7 +49,7 @@ task HTSeqCount {
~{true="--additional-attr " false="" length(additionalAttributes) > 0 }~{sep=" --additional-attr " additionalAttributes} \
~{sep=" " inputBams} \
~{gtfFile} \
> ~{outputTable}
-c ~{outputTable}
}
output {
......@@ -57,6 +57,7 @@ task HTSeqCount {
}
runtime {
cpu: nprocesses
time_minutes: timeMinutes
memory: memory
docker: dockerImage
......@@ -66,7 +67,7 @@ task HTSeqCount {
inputBams: {description: "The input BAM files.", category: "required"}
gtfFile: {description: "A GTF/GFF file containing the features of interest.", category: "required"}
outputTable: {description: "The path to which the output table should be written.", category: "common"}
format: {description: "Equivalent to the -f option of htseq-count.", category: "advanced"}
nprocesses: {description: "Number of processes to run htseq with.", category: "advanced"}
order: {description: "Equivalent to the -r option of htseq-count.", category: "advanced"}
stranded: {description: "Equivalent to the -s option of htseq-count.", category: "common"}
featureType: {description: "Equivalent to the --type option of htseq-count.", category: "advanced"}
......
......@@ -89,7 +89,7 @@ task CollectMultipleMetrics {
Int javaXmxMb = 3072
# Additional * 2 because picard multiple metrics reads the reference fasta twice.
Int timeMinutes = 1 + ceil(size(referenceFasta, "G") * 3 * 2) + ceil(size(inputBam, "G") * 6)
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
......@@ -205,7 +205,7 @@ task CollectRnaSeqMetrics {
String javaXmx = "8G"
# With 6 minutes per G there were several timeouts.
Int timeMinutes = 1 + ceil(size(inputBam, "G") * 12)
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
command {
......@@ -263,7 +263,7 @@ task CollectTargetedPcrMetrics {
String memory = "4G"
String javaXmx = "3G"
Int timeMinutes = 1 + ceil(size(inputBam, "G") * 6)
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
command {
......@@ -322,7 +322,7 @@ task CreateSequenceDictionary {
String memory = "3G"
String javaXmx = "2G"
String dockerImage = "quay.io/biocontainers/picard:2.22.3--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
command {
......@@ -370,7 +370,7 @@ task GatherBamFiles {
Boolean createMd5File = false
# One minute per input gigabyte.
Int timeMinutes = 1 + ceil(size(inputBams, "G") * 1)
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
command {
......@@ -422,7 +422,7 @@ task GatherVcfs {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 1 + ceil(size(inputVcfs, "G") * 2)
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
command {
......@@ -469,6 +469,7 @@ task MarkDuplicates {
Boolean createMd5File = false
Boolean useJdkInflater = true # Slightly faster than the intel one.
# Better results for compression level 1 (much smaller). Higher compression levels similar to intel deflater.
# NOTE: this might change in the future when the intel deflater is updated!
Boolean useJdkDeflater = true
# In GATK Best practices pipeline MarkDuplicates is given a 7G VM.
......@@ -477,7 +478,7 @@ task MarkDuplicates {
String memoryMb = javaXmxMb + 512
Int timeMinutes = 1 + ceil(size(inputBams, "G") * 8)
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
# The program default for READ_NAME_REGEX is appropriate in nearly every case.
# Sometimes we wish to supply "null" in order to turn off optical duplicate detection
......@@ -530,7 +531,10 @@ task MarkDuplicates {
outputBamPath: {description: "The location where the ouptut BAM file should be written.", category: "required"}
metricsPath: {description: "The location where the output metrics file should be written.", category: "required"}
read_name_regex: {description: "Equivalent to the `READ_NAME_REGEX` option of MarkDuplicates.", category: "advanced"}
createMd5File: {description: "Whether to create a md5 file for the created BAM file.", category: "advanced"}
useJdkInflater: {description: "True, uses the java inflater. False, uses the optimized intel inflater.", category: "advanced"}
useJdkDeflater: {description: "True, uses the java deflator to compress the BAM files. False uses the optimized intel deflater.", category: "advanced"}
compressionLevel: {description: "The compression level at which the BAM files are written", category: "advanced"}
memoryMb: {description: "The amount of memory this job will use in megabytes.", category: "advanced"}
javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memoryMb` to accommodate JVM overhead.",
category: "advanced"}
......@@ -550,7 +554,7 @@ task MergeVCFs {
String memory = "5G"
String javaXmx = "4G"
Int timeMinutes = 1 + ceil(size(inputVCFs, "G"))
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
# Using MergeVcfs instead of GatherVcfs so we can create indices
......@@ -599,7 +603,7 @@ task SamToFastq {
String memory = "17G"
String javaXmx = "16G" # High memory default to avoid crashes.
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
File? NONE
}
......@@ -636,7 +640,7 @@ task ScatterIntervalList {
String memory = "4G"
String javaXmx = "3G"
String dockerImage = "quay.io/biocontainers/picard:2.20.5--0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
command {
......@@ -677,9 +681,7 @@ task SortSam {
# GATK Best practices uses 75000 here: https://github.com/gatk-workflows/broad-prod-wgs-germline-snps-indels/blob/d2934ed656ade44801f9cfe1c0e78d4f80684b7b/PairedEndSingleSampleWf-fc-hg38.wdl#L778
Int XmxGb = ceil(maxRecordsInRam / 125001.0)
Int timeMinutes = 1 + ceil(size(inputBam, "G") * 3)
# A mulled container is needed to have both picard and bwa in one container.
# This container contains: picard (2.18.7), bwa (0.7.17-r1188)
String dockerImage = "quay.io/biocontainers/picard:2.23.1--h37ae868_0"
String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
}
command {
......
......@@ -114,7 +114,7 @@ task Fastq {
Int threads = 1
String memory = "1G"
Int timeMinutes = 1 + ceil(size(inputBam) * 2)
String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
String dockerImage = "quay.io/biocontainers/samtools:1.10--h9402c20_2"
}
command {
......@@ -170,7 +170,7 @@ task FilterShortReadsBam {
String outputPathBam
String memory = "1G"
Int timeMinutes = 1 + ceil(size(bamFile, "G") * 8)
String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
String dockerImage = "quay.io/biocontainers/samtools:1.10--h9402c20_2"
}
String outputPathBamIndex = sub(outputPathBam, "\.bam$", ".bai")
......@@ -211,7 +211,7 @@ task Flagstat {
String memory = "256M" # Only 40.5 MiB used for 150G bam file.
Int timeMinutes = 1 + ceil(size(inputBam, "G"))
String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
String dockerImage = "quay.io/biocontainers/samtools:1.10--h9402c20_2"
}
command {
......@@ -247,7 +247,7 @@ task Index {
String? outputBamPath
String memory = "2G"
Int timeMinutes = 1 + ceil(size(bamFile, "G") * 4)
String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
String dockerImage = "quay.io/biocontainers/samtools:1.10--h9402c20_2"
}
# Select_first is needed, otherwise womtool validate fails.
......@@ -296,7 +296,7 @@ task Markdup {
String outputBamPath
Int timeMinutes = 1 + ceil(size(inputBam, "G") * 2)
String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
String dockerImage = "quay.io/biocontainers/samtools:1.10--h9402c20_2"
}
command {
......@@ -332,7 +332,7 @@ task Merge {
Int threads = 1
Int timeMinutes = 1 + ceil(size(bamFiles, "G") * 2)
String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
String dockerImage = "quay.io/biocontainers/samtools:1.10--h9402c20_2"
}
String indexPath = sub(outputBamPath, "\.bam$",".bai")
......@@ -483,7 +483,7 @@ task View {
Int threads = 1
String memory = "1G"
Int timeMinutes = 1 + ceil(size(inFile, "G") * 5)
String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
String dockerImage = "quay.io/biocontainers/samtools:1.10--h9402c20_2"
}
String outputIndexPath = basename(outputFileName) + ".bai"
......
......@@ -103,6 +103,7 @@ task Star {
String? twopassMode = "Basic"
Array[String]? outSAMattrRGline
String? outSAMunmapped = "Within KeepPairs"
Int outBAMcompression = 1
Int? limitBAMsortRAM
Int runThreadN = 4
......@@ -129,6 +130,7 @@ task Star {
--outFileNamePrefix ~{outFileNamePrefix} \
--genomeDir ~{sub(indexFiles[0], basename(indexFiles[0]), "")} \
--outSAMtype ~{outSAMtype} \
--outBAMcompression ~{outBAMcompression} \
--readFilesCommand ~{readFilesCommand} \
~{"--outFilterScoreMin " + outFilterScoreMin} \
~{"--outFilterScoreMinOverLread " + outFilterScoreMinOverLread} \
......@@ -172,6 +174,7 @@ task Star {
limitBAMsortRAM: {description: "Equivalent to star's `--limitBAMsortRAM` option.", category: "advanced"}
runThreadN: {description: "The number of threads to use.", category: "advanced"}
memory: {description: "The amount of memory this job will use.", category: "advanced"}
outBAMcompression: {description: "The compression level of the output BAM.", category: "advanced"}
timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment