Newer
Older

Xavier Grand
committed
version = "1.17"
container_url = "xgrand/samtools:${version}"
params.sort_bam_out =""
process sort_bam {
container = "${container_url}"
label "big_mem_multi_cpus"
tag "sorting"
if (params.sort_bam_out != "") {
publishDir "results/${params.sort_bam_out}", mode: 'copy'
}
input:
path(bam)
output:
script:
"""
samtools sort -@ ${task.cpus} ${bam} -O BAM -o ${bam.simpleName}_sorted.bam
"""
}
params.start_position_counts_out = ""
process start_position_counts {
label "big_mem_multi_cpus"
publishDir "results/${params.start_position_counts_out}", mode: 'copy'
input:
tuple val(barcode), path("${barcode}/${barcode}_start_positions_counts.txt"), emit: count
sort > ${barcode}/${barcode}_start_positions_counts.txt
"""
}
params.index_bam_out = ""
process index_bam {
container = "${container_url}"
label "small_mem_mono_cpus"
tag "indexing"
if (params.index_bam_out != "") {
publishDir "results/${params.index_bam_out}", mode: 'copy'
}
input:
path(bam)
output:
path("*.bai")
script:
"""
samtools index -@ ${task.cpus} ${bam}
"""
}
params.indexed_bam_out =""
process sort_index_bam {
container = "${container_url}"
label "big_mem_multi_cpus"
if (params.indexed_bam_out != "") {
publishDir "results/${params.indexed_bam_out}", mode: 'copy'
}
input:
tuple val(barcode), path("${barcode}/*sorted.bam"), path("${barcode}/*.bai"), emit: indexed_bam
mkdir ${barcode}
cd ${barcode}/
samtools sort -@ ${task.cpus} ../${bam} -o ${barcode}_sorted.bam
samtools index -@ ${task.cpus} ${barcode}_sorted.bam

Xavier Grand
committed
}
params.filtered_bam_out = ""
process filter_as {
container = "${container_url}"
label "big_mem_multi_cpus"
tag "${barcode}"
if (params.filtered_bam_out != "") {
publishDir "results/${params.filtered_bam_out}", mode: 'copy'
}
input:
tuple val(barcode), path(bam)
output:
tuple val(barcode), path("${barcode}/*_AS500.bam"), emit: filtered_bam
script:
"""
mkdir ${barcode}
cd ${barcode}/
samtools view -Shb -e '[AS]>=500' -@ ${task.cpus} ../${bam} -o ${barcode}_AS500.bam
"""