diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9f0d38b9928922f2e45d3c41cd632d41ca77ca48..6e1028aba7a0d2969e4766b210f1c13c30d0c538 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,8 +64,16 @@ alignData: dedupData: stage: unit script: - - singularity exec 'docker://bicf/picard2.21.7:2.0.0' java -jar /picard/build/libs/picard.jar MarkDuplicates I=./test_data/bam/small/Q-Y5JA_1M.se.sorted.bam O=Q-Y5JA_1M.se.deduped.bam M=Q-Y5JA_1M.se.deduped.Metrics.txt REMOVE_DUPLICATES=true + - singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' java -jar /picard/build/libs/picard.jar MarkDuplicates I=./test_data/bam/small/Q-Y5JA_1M.se.sorted.bam O=Q-Y5JA_1M.se.deduped.bam M=Q-Y5JA_1M.se.deduped.Metrics.txt REMOVE_DUPLICATES=true + - singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' samtools sort -@ `nproc` -O BAM -o Q-Y5JA_1M.se.sorted.deduped.bam ./test_data/bam/small/Q-Y5JA_1M.se.deduped.bam + - singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' samtools index -@ `nproc` -b ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam Q-Y5JA_1M.se.sorted.deduped.bai - pytest -m dedupData + +makeBigWig: + stage: unit + script: + - singularity run 'docker://bicf/deeptools3.3:2.0.0' bamCoverage -p `nproc` -b ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam -o Q-Y5JA_1M.se.bw + - pytest -m makeBigWig fastqc: stage: unit diff --git a/workflow/conf/biohpc.config b/workflow/conf/biohpc.config index 56e7e6aa9abb7b1ce87fbc6cf9857c0460f140d5..88787a7f0d0fba2b92a30c81cac5f392d4e1bfea 100755 --- a/workflow/conf/biohpc.config +++ b/workflow/conf/biohpc.config @@ -16,13 +16,13 @@ process { executor = 'local' } withName:trimData { - queue = 'super' + queue = '128GB,256GB,256GBv1' } withName:alignData { queue = '256GB,256GBv1' } withName: dedupData { - queue = 'super' + queue = '128GB,256GB,256GBv1' } withName: fastqc { queue = 'super' diff --git a/workflow/nextflow.config b/workflow/nextflow.config index 02c71af5c58998839c270f78aadfdfd84696dfa3..eee32fa6f754c55b6b8051eedee646eebf4066c2 100644 --- a/workflow/nextflow.config +++ b/workflow/nextflow.config @@ -30,11 +30,14 @@ process { container = 'bicf/gudmaprbkaligner:2.0.0' } withName: dedupData { - container = 'bicf/picard2.21.7:2.0.0' + container = 'bicf/gudmaprbkdedup:2.0.0' } withName: fastqc { container = 'bicf/fastqc:2.0.0' } + withName: makeBigWig { + container = 'bicf/deeptools3.3:2.0.0' + } } trace { @@ -64,4 +67,4 @@ manifest { mainScript = 'rna-seq.nf' version = 'v0.0.1_indev' nextflowVersion = '>=19.09.0' -} \ No newline at end of file +} diff --git a/workflow/rna-seq.nf b/workflow/rna-seq.nf index a49495840afdaf163ee94d0d2c478aa898f78da5..28770ca170ed49a1524122852898337286c6aecb 100644 --- a/workflow/rna-seq.nf +++ b/workflow/rna-seq.nf @@ -340,7 +340,7 @@ process dedupData { path rawBam output: - path ("${repRID}.deduped.bam") into dedupBam + tuple val ("${repRID}"), path ("${repRID}.sorted.deduped.bam"), path ("${repRID}.sorted.deduped.bai") into dedupBam path ("${repRID}.dedup.out") path ("${repRID}.dedup.err") @@ -351,6 +351,8 @@ process dedupData { # remove duplicated reads java -jar /picard/build/libs/picard.jar MarkDuplicates I=${rawBam} O=${repRID}.deduped.bam M=${repRID}.deduped.Metrics.txt REMOVE_DUPLICATES=true 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err + samtools sort -@ `nproc` -O BAM -o ${repRID}.sorted.deduped.bam ${repRID}.deduped.bam 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err + samtools index -@ `nproc` -b ${repRID}.sorted.deduped.bam ${repRID}.sorted.deduped.bai 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err """ } @@ -376,4 +378,23 @@ process fastqc { # run fastqc fastqc *.fastq.gz -o . >>${repRID}.fastqc.err """ -} \ No newline at end of file +} + +/* + *Make BigWig files for later processes +*/ +process makeBigWig { + tag "${repRID}" + publishDir "${logsDir}", mode: 'copy', pattern: "*.makeBigWig.err" + + input: + set val (repRID), path (inBam), path (inBai) from dedupBam + + output: + path ("${repRID}.bw") + + script: + """ + bamCoverage -p `nproc` -b ${inBam} -o ${repRID}.bw + """ +} diff --git a/workflow/tests/test_makeBigWig.py b/workflow/tests/test_makeBigWig.py new file mode 100644 index 0000000000000000000000000000000000000000..198b5d2d4cdecd9013e08fbe3eae9c9b7303ef1a --- /dev/null +++ b/workflow/tests/test_makeBigWig.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +import pytest +import pandas as pd +import os +import utils + +data_output_path = os.path.dirname(os.path.abspath(__file__)) + \ + '/../../' + + +@pytest.mark.makeBigWig +def test_makeBigWig(): + assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.bw'))