From b4af1b0e18b4e70c8eaf00c49f535e80cfe32b94 Mon Sep 17 00:00:00 2001 From: xgrand <157-xgrand@users.noreply.gitbio.ens-lyon.fr> Date: Fri, 30 Jul 2021 16:03:45 +0200 Subject: [PATCH] fisrt --- .gitignore | 5 +- .../alntools/dd96682/docker_init.sh | 0 .../bamutils/1.0.14/docker_init.sh | 0 .../bcftools/1.7/docker_init.sh | 0 .../bedops/2.4.39/docker_init.sh | 0 .../bedtools/2.25.0/docker_init.sh | 0 .../bedtools/2.30.0/docker_init.sh | 0 src/.docker_modules/bioawk/1.0/docker_init.sh | 0 .../bowtie/1.2.2/docker_init.sh | 0 .../bowtie2/2.3.4.1/docker_init.sh | 0 src/.docker_modules/bwa/0.7.17/docker_init.sh | 0 src/.docker_modules/canu/1.6/docker_init.sh | 0 .../crossmap/0.4.1/docker_init.sh | 0 .../cutadapt/1.14/docker_init.sh | 0 .../cutadapt/1.15/docker_init.sh | 0 .../cutadapt/2.1/docker_init.sh | 0 .../deeptools/3.0.2/docker_init.sh | 0 .../deeptools/3.1.1/docker_init.sh | 0 .../deeptools/3.5.0/docker_init.sh | 0 .../deeptools/3.5.1/docker_init.sh | 0 src/.docker_modules/docker_push.sh | 0 .../emase-zero/0.3.1/docker_init.sh | 0 .../emase/0.10.16/docker_init.sh | 0 .../fastp/0.19.7/docker_init.sh | 0 .../fastp/0.20.1/docker_init.sh | 0 .../fastqc/0.11.5/docker_init.sh | 0 .../file_handle/0.1.1/docker_init.sh | 0 .../flexi_splitter/1.0.2/docker_init.sh | 0 .../freebayes/1.3.2/docker_init.sh | 0 .../g2gtools/0.2.7/docker_init.sh | 0 .../g2gtools/0.2.8/docker_init.sh | 0 src/.docker_modules/gatk/3.8.0/docker_init.sh | 0 .../gatk/4.0.8.1/docker_init.sh | 0 .../gffread/0.11.8/docker_init.sh | 0 .../gffread/0.12.2/docker_init.sh | 0 .../hisat2/2.0.0/docker_init.sh | 0 .../hisat2/2.1.0/docker_init.sh | 0 .../htseq/0.13.5/docker_init.sh | 0 .../htseq/0.8.0/docker_init.sh | 0 .../kallisto/0.43.1/docker_init.sh | 0 .../kallisto/0.44.0/docker_init.sh | 0 .../kallistobustools/0.24.4/docker_init.sh | 0 .../kallistobustools/0.39.3/docker_init.sh | 0 src/.docker_modules/kb/0.26.0/docker_init.sh | 0 src/.docker_modules/kb/0.26.0/t2g.py | 0 src/.docker_modules/kb/0.26.3/docker_init.sh | 0 src/.docker_modules/kb/0.26.3/t2g.py | 0 src/.docker_modules/last/1060/docker_init.sh | 0 .../liftover/357/docker_init.sh | 0 .../macs2/2.1.2/docker_init.sh | 0 .../macs3/3.0.0a6/docker_init.sh | 0 .../minimap2/2.17/docker_init.sh | 0 .../multiqc/1.0/docker_init.sh | 0 .../multiqc/1.7/docker_init.sh | 0 .../multiqc/1.9/docker_init.sh | 0 .../music/6613c53/docker_init.sh | 0 .../pandoc/2.11/docker_init.sh | 0 .../picard/2.18.11/docker_init.sh | 0 src/.docker_modules/pigz/2.4/docker_init.sh | 0 src/.docker_modules/python/3.8/docker_init.sh | 0 .../r-base/3.5.3/docker_init.sh | 0 .../r-base/3.6.2/docker_init.sh | 0 .../r-base/4.0.0/docker_init.sh | 0 .../r-base/4.0.2/docker_init.sh | 0 .../r-base/4.0.3/docker_init.sh | 0 src/.docker_modules/rsem/1.3.0/docker_init.sh | 0 .../sabre/039a55e/docker_init.sh | 0 .../salmon/0.8.2/docker_init.sh | 0 .../sambamba/0.6.7/docker_init.sh | 0 .../sambamba/0.6.9/docker_init.sh | 0 .../samblaster/0.1.24/docker_init.sh | 0 .../samtools/1.11/docker_init.sh | 0 .../samtools/1.7/docker_init.sh | 0 .../sratoolkit/2.8.2/docker_init.sh | 0 src/.docker_modules/star/2.5.3/docker_init.sh | 0 .../star/2.7.3a/docker_init.sh | 0 .../subread/1.6.4/docker_init.sh | 0 .../tophat/2.1.1/docker_init.sh | 0 .../trimmomatic/0.36/docker_init.sh | 0 src/.docker_modules/ucsc/375/docker_init.sh | 0 src/.docker_modules/ucsc/400/docker_init.sh | 0 src/.docker_modules/ucsc/407/docker_init.sh | 0 .../umi_tools/0.5.4/docker_init.sh | 0 .../umi_tools/1.0.0/docker_init.sh | 0 .../urqt/d62c1f8/docker_init.sh | 0 src/.singularity_in2p3 | 1 - src/.singularity_psmn | 1 - src/chipster.nf | 136 +++++ src/example_marseq.nf | 87 ---- src/example_variant_calling.nf | 36 -- src/fasta_sampler.nf | 18 - src/install_nextflow.sh | 0 src/nextflow | 465 ++++++++++++++++++ src/nextflow.config | 2 - src/nf_functions/control_ip_processing.nf | 24 + src/nf_functions/reads_processing.nf | 5 + src/nf_modules/multiqc/main.nf | 2 +- src/solution_RNASeq.nf | 34 -- src/training_dataset.config | 370 -------------- src/training_dataset.nf | 308 ------------ 100 files changed, 634 insertions(+), 860 deletions(-) mode change 100755 => 100644 src/.docker_modules/alntools/dd96682/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bamutils/1.0.14/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bcftools/1.7/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bedops/2.4.39/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bedtools/2.25.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bedtools/2.30.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bioawk/1.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bowtie/1.2.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bowtie2/2.3.4.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/bwa/0.7.17/docker_init.sh mode change 100755 => 100644 src/.docker_modules/canu/1.6/docker_init.sh mode change 100755 => 100644 src/.docker_modules/crossmap/0.4.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/cutadapt/1.14/docker_init.sh mode change 100755 => 100644 src/.docker_modules/cutadapt/1.15/docker_init.sh mode change 100755 => 100644 src/.docker_modules/cutadapt/2.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/deeptools/3.0.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/deeptools/3.1.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/deeptools/3.5.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/deeptools/3.5.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/docker_push.sh mode change 100755 => 100644 src/.docker_modules/emase-zero/0.3.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/emase/0.10.16/docker_init.sh mode change 100755 => 100644 src/.docker_modules/fastp/0.19.7/docker_init.sh mode change 100755 => 100644 src/.docker_modules/fastp/0.20.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/fastqc/0.11.5/docker_init.sh mode change 100755 => 100644 src/.docker_modules/file_handle/0.1.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/flexi_splitter/1.0.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/freebayes/1.3.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/g2gtools/0.2.7/docker_init.sh mode change 100755 => 100644 src/.docker_modules/g2gtools/0.2.8/docker_init.sh mode change 100755 => 100644 src/.docker_modules/gatk/3.8.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/gatk/4.0.8.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/gffread/0.11.8/docker_init.sh mode change 100755 => 100644 src/.docker_modules/gffread/0.12.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/hisat2/2.0.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/hisat2/2.1.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/htseq/0.13.5/docker_init.sh mode change 100755 => 100644 src/.docker_modules/htseq/0.8.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/kallisto/0.43.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/kallisto/0.44.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/kallistobustools/0.24.4/docker_init.sh mode change 100755 => 100644 src/.docker_modules/kallistobustools/0.39.3/docker_init.sh mode change 100755 => 100644 src/.docker_modules/kb/0.26.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/kb/0.26.0/t2g.py mode change 100755 => 100644 src/.docker_modules/kb/0.26.3/docker_init.sh mode change 100755 => 100644 src/.docker_modules/kb/0.26.3/t2g.py mode change 100755 => 100644 src/.docker_modules/last/1060/docker_init.sh mode change 100755 => 100644 src/.docker_modules/liftover/357/docker_init.sh mode change 100755 => 100644 src/.docker_modules/macs2/2.1.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/macs3/3.0.0a6/docker_init.sh mode change 100755 => 100644 src/.docker_modules/minimap2/2.17/docker_init.sh mode change 100755 => 100644 src/.docker_modules/multiqc/1.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/multiqc/1.7/docker_init.sh mode change 100755 => 100644 src/.docker_modules/multiqc/1.9/docker_init.sh mode change 100755 => 100644 src/.docker_modules/music/6613c53/docker_init.sh mode change 100755 => 100644 src/.docker_modules/pandoc/2.11/docker_init.sh mode change 100755 => 100644 src/.docker_modules/picard/2.18.11/docker_init.sh mode change 100755 => 100644 src/.docker_modules/pigz/2.4/docker_init.sh mode change 100755 => 100644 src/.docker_modules/python/3.8/docker_init.sh mode change 100755 => 100644 src/.docker_modules/r-base/3.5.3/docker_init.sh mode change 100755 => 100644 src/.docker_modules/r-base/3.6.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/r-base/4.0.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/r-base/4.0.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/r-base/4.0.3/docker_init.sh mode change 100755 => 100644 src/.docker_modules/rsem/1.3.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/sabre/039a55e/docker_init.sh mode change 100755 => 100644 src/.docker_modules/salmon/0.8.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/sambamba/0.6.7/docker_init.sh mode change 100755 => 100644 src/.docker_modules/sambamba/0.6.9/docker_init.sh mode change 100755 => 100644 src/.docker_modules/samblaster/0.1.24/docker_init.sh mode change 100755 => 100644 src/.docker_modules/samtools/1.11/docker_init.sh mode change 100755 => 100644 src/.docker_modules/samtools/1.7/docker_init.sh mode change 100755 => 100644 src/.docker_modules/sratoolkit/2.8.2/docker_init.sh mode change 100755 => 100644 src/.docker_modules/star/2.5.3/docker_init.sh mode change 100755 => 100644 src/.docker_modules/star/2.7.3a/docker_init.sh mode change 100755 => 100644 src/.docker_modules/subread/1.6.4/docker_init.sh mode change 100755 => 100644 src/.docker_modules/tophat/2.1.1/docker_init.sh mode change 100755 => 100644 src/.docker_modules/trimmomatic/0.36/docker_init.sh mode change 100755 => 100644 src/.docker_modules/ucsc/375/docker_init.sh mode change 100755 => 100644 src/.docker_modules/ucsc/400/docker_init.sh mode change 100755 => 100644 src/.docker_modules/ucsc/407/docker_init.sh mode change 100755 => 100644 src/.docker_modules/umi_tools/0.5.4/docker_init.sh mode change 100755 => 100644 src/.docker_modules/umi_tools/1.0.0/docker_init.sh mode change 100755 => 100644 src/.docker_modules/urqt/d62c1f8/docker_init.sh delete mode 120000 src/.singularity_in2p3 delete mode 120000 src/.singularity_psmn create mode 100644 src/chipster.nf delete mode 100644 src/example_marseq.nf delete mode 100644 src/example_variant_calling.nf delete mode 100644 src/fasta_sampler.nf mode change 100755 => 100644 src/install_nextflow.sh create mode 100644 src/nextflow create mode 100644 src/nf_functions/control_ip_processing.nf create mode 100644 src/nf_functions/reads_processing.nf delete mode 100644 src/solution_RNASeq.nf delete mode 100644 src/training_dataset.config delete mode 100644 src/training_dataset.nf diff --git a/.gitignore b/.gitignore index cb95d125..14809a5a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ -nextflow +nextflow/ .nextflow.log* .nextflow/ work/ -results +results/ workspace.code-workspace +public/ diff --git a/src/.docker_modules/alntools/dd96682/docker_init.sh b/src/.docker_modules/alntools/dd96682/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bamutils/1.0.14/docker_init.sh b/src/.docker_modules/bamutils/1.0.14/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bcftools/1.7/docker_init.sh b/src/.docker_modules/bcftools/1.7/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bedops/2.4.39/docker_init.sh b/src/.docker_modules/bedops/2.4.39/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bedtools/2.25.0/docker_init.sh b/src/.docker_modules/bedtools/2.25.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bedtools/2.30.0/docker_init.sh b/src/.docker_modules/bedtools/2.30.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bioawk/1.0/docker_init.sh b/src/.docker_modules/bioawk/1.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bowtie/1.2.2/docker_init.sh b/src/.docker_modules/bowtie/1.2.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bowtie2/2.3.4.1/docker_init.sh b/src/.docker_modules/bowtie2/2.3.4.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/bwa/0.7.17/docker_init.sh b/src/.docker_modules/bwa/0.7.17/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/canu/1.6/docker_init.sh b/src/.docker_modules/canu/1.6/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/crossmap/0.4.1/docker_init.sh b/src/.docker_modules/crossmap/0.4.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/cutadapt/1.14/docker_init.sh b/src/.docker_modules/cutadapt/1.14/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/cutadapt/1.15/docker_init.sh b/src/.docker_modules/cutadapt/1.15/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/cutadapt/2.1/docker_init.sh b/src/.docker_modules/cutadapt/2.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/deeptools/3.0.2/docker_init.sh b/src/.docker_modules/deeptools/3.0.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/deeptools/3.1.1/docker_init.sh b/src/.docker_modules/deeptools/3.1.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/deeptools/3.5.0/docker_init.sh b/src/.docker_modules/deeptools/3.5.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/deeptools/3.5.1/docker_init.sh b/src/.docker_modules/deeptools/3.5.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/docker_push.sh b/src/.docker_modules/docker_push.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/emase-zero/0.3.1/docker_init.sh b/src/.docker_modules/emase-zero/0.3.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/emase/0.10.16/docker_init.sh b/src/.docker_modules/emase/0.10.16/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/fastp/0.19.7/docker_init.sh b/src/.docker_modules/fastp/0.19.7/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/fastp/0.20.1/docker_init.sh b/src/.docker_modules/fastp/0.20.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/fastqc/0.11.5/docker_init.sh b/src/.docker_modules/fastqc/0.11.5/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/file_handle/0.1.1/docker_init.sh b/src/.docker_modules/file_handle/0.1.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/flexi_splitter/1.0.2/docker_init.sh b/src/.docker_modules/flexi_splitter/1.0.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/freebayes/1.3.2/docker_init.sh b/src/.docker_modules/freebayes/1.3.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/g2gtools/0.2.7/docker_init.sh b/src/.docker_modules/g2gtools/0.2.7/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/g2gtools/0.2.8/docker_init.sh b/src/.docker_modules/g2gtools/0.2.8/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/gatk/3.8.0/docker_init.sh b/src/.docker_modules/gatk/3.8.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/gatk/4.0.8.1/docker_init.sh b/src/.docker_modules/gatk/4.0.8.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/gffread/0.11.8/docker_init.sh b/src/.docker_modules/gffread/0.11.8/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/gffread/0.12.2/docker_init.sh b/src/.docker_modules/gffread/0.12.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/hisat2/2.0.0/docker_init.sh b/src/.docker_modules/hisat2/2.0.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/hisat2/2.1.0/docker_init.sh b/src/.docker_modules/hisat2/2.1.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/htseq/0.13.5/docker_init.sh b/src/.docker_modules/htseq/0.13.5/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/htseq/0.8.0/docker_init.sh b/src/.docker_modules/htseq/0.8.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kallisto/0.43.1/docker_init.sh b/src/.docker_modules/kallisto/0.43.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kallisto/0.44.0/docker_init.sh b/src/.docker_modules/kallisto/0.44.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kallistobustools/0.24.4/docker_init.sh b/src/.docker_modules/kallistobustools/0.24.4/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kallistobustools/0.39.3/docker_init.sh b/src/.docker_modules/kallistobustools/0.39.3/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kb/0.26.0/docker_init.sh b/src/.docker_modules/kb/0.26.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kb/0.26.0/t2g.py b/src/.docker_modules/kb/0.26.0/t2g.py old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kb/0.26.3/docker_init.sh b/src/.docker_modules/kb/0.26.3/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/kb/0.26.3/t2g.py b/src/.docker_modules/kb/0.26.3/t2g.py old mode 100755 new mode 100644 diff --git a/src/.docker_modules/last/1060/docker_init.sh b/src/.docker_modules/last/1060/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/liftover/357/docker_init.sh b/src/.docker_modules/liftover/357/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/macs2/2.1.2/docker_init.sh b/src/.docker_modules/macs2/2.1.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/macs3/3.0.0a6/docker_init.sh b/src/.docker_modules/macs3/3.0.0a6/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/minimap2/2.17/docker_init.sh b/src/.docker_modules/minimap2/2.17/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/multiqc/1.0/docker_init.sh b/src/.docker_modules/multiqc/1.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/multiqc/1.7/docker_init.sh b/src/.docker_modules/multiqc/1.7/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/multiqc/1.9/docker_init.sh b/src/.docker_modules/multiqc/1.9/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/music/6613c53/docker_init.sh b/src/.docker_modules/music/6613c53/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/pandoc/2.11/docker_init.sh b/src/.docker_modules/pandoc/2.11/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/picard/2.18.11/docker_init.sh b/src/.docker_modules/picard/2.18.11/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/pigz/2.4/docker_init.sh b/src/.docker_modules/pigz/2.4/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/python/3.8/docker_init.sh b/src/.docker_modules/python/3.8/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/r-base/3.5.3/docker_init.sh b/src/.docker_modules/r-base/3.5.3/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/r-base/3.6.2/docker_init.sh b/src/.docker_modules/r-base/3.6.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/r-base/4.0.0/docker_init.sh b/src/.docker_modules/r-base/4.0.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/r-base/4.0.2/docker_init.sh b/src/.docker_modules/r-base/4.0.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/r-base/4.0.3/docker_init.sh b/src/.docker_modules/r-base/4.0.3/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/rsem/1.3.0/docker_init.sh b/src/.docker_modules/rsem/1.3.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/sabre/039a55e/docker_init.sh b/src/.docker_modules/sabre/039a55e/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/salmon/0.8.2/docker_init.sh b/src/.docker_modules/salmon/0.8.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/sambamba/0.6.7/docker_init.sh b/src/.docker_modules/sambamba/0.6.7/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/sambamba/0.6.9/docker_init.sh b/src/.docker_modules/sambamba/0.6.9/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/samblaster/0.1.24/docker_init.sh b/src/.docker_modules/samblaster/0.1.24/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/samtools/1.11/docker_init.sh b/src/.docker_modules/samtools/1.11/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/samtools/1.7/docker_init.sh b/src/.docker_modules/samtools/1.7/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/sratoolkit/2.8.2/docker_init.sh b/src/.docker_modules/sratoolkit/2.8.2/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/star/2.5.3/docker_init.sh b/src/.docker_modules/star/2.5.3/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/star/2.7.3a/docker_init.sh b/src/.docker_modules/star/2.7.3a/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/subread/1.6.4/docker_init.sh b/src/.docker_modules/subread/1.6.4/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/tophat/2.1.1/docker_init.sh b/src/.docker_modules/tophat/2.1.1/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/trimmomatic/0.36/docker_init.sh b/src/.docker_modules/trimmomatic/0.36/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/ucsc/375/docker_init.sh b/src/.docker_modules/ucsc/375/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/ucsc/400/docker_init.sh b/src/.docker_modules/ucsc/400/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/ucsc/407/docker_init.sh b/src/.docker_modules/ucsc/407/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/umi_tools/0.5.4/docker_init.sh b/src/.docker_modules/umi_tools/0.5.4/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/umi_tools/1.0.0/docker_init.sh b/src/.docker_modules/umi_tools/1.0.0/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.docker_modules/urqt/d62c1f8/docker_init.sh b/src/.docker_modules/urqt/d62c1f8/docker_init.sh old mode 100755 new mode 100644 diff --git a/src/.singularity_in2p3 b/src/.singularity_in2p3 deleted file mode 120000 index 7f86c054..00000000 --- a/src/.singularity_in2p3 +++ /dev/null @@ -1 +0,0 @@ -/sps/lbmc/common/singularity/ \ No newline at end of file diff --git a/src/.singularity_psmn b/src/.singularity_psmn deleted file mode 120000 index 58b1c912..00000000 --- a/src/.singularity_psmn +++ /dev/null @@ -1 +0,0 @@ -/Xnfs/abc/singularity/ \ No newline at end of file diff --git a/src/chipster.nf b/src/chipster.nf new file mode 100644 index 00000000..2546e99a --- /dev/null +++ b/src/chipster.nf @@ -0,0 +1,136 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl=2 + +/* ChIPseq pipeline : + * Pipeline that analyses ChIPseq data + * Preprocessing, filtration, alignment, peak calling... +*/ + +/* + **************************************************************** + parameters + **************************************************************** +*/ + +/* +params.paired_end = true +/* false for single end data, true for paired-end data + +@type: Boolean +*/ + +params.fastq = "data/tinyTestDataset/fastq/*_{1,2}.fastq" +/* Fastq files containing ribosome footprint + +@type: Files +*/ + +params.genome = "data/tinyTestDataset/*.fasta" +/* A genome file + +@type: File +*/ + +/* +params.folder = "project" +/* project output folder + +@Type: String +*/ + +/* + **************************************************************** + Logs + **************************************************************** +*/ + +log.info "fastq files : ${params.fastq}" +log.info "genome files : ${params.genome}" + +/* +log.info "paired-end data: ${params.paired_end}" +log.info "output folder results/${params.folder}" +*/ + +/* + **************************************************************** + Channel definitions + **************************************************************** +*/ + +/* Raw reads fastq */ +Channel + .fromFilePairs( params.fastq ) + .set { fastq_files } + +/* Reference Genome fasa file */ +/* Previous in .fromPath but raise an error : WARN: Input tuple does not + match input set cardinality declared by process `index_fasta` + -- offending value: /home/xavier/Scripts/Pipelines/ChIPster/data/tinyTestDataset/reference.fasta +*/ + +Channel + .fromFilePairs( params.genome, size: -1 ) + .set { genome_file } + +/* + **************************************************************** + Imports + **************************************************************** +*/ + +fastqc_mod = "./nf_modules/fastqc/main.nf" +include { fastp_default } from "./nf_modules/fastp/main.nf" +include { fastqc_fastq as fastqc_raw } from fastqc_mod addParams(out: '01_fastqc') +include { fastqc_fastq as fastqc_preprocessed } from fastqc_mod addParams(out: '02_fastqc_preprocessed') +include { multiqc } from './nf_modules/multiqc/main.nf' addParams(multiqc_out: "QC/") +include { index_fasta } from "./nf_modules/bowtie2/main.nf" +include { mapping_fastq } from "./nf_modules/bowtie2/main.nf" +include { filter_bam_quality } from "./nf_modules/samtools/main.nf" +include { sort_bam } from "./nf_modules/samtools/main.nf" +include { index_bam } from "./nf_modules/samtools/main.nf" +include { bam_to_bigwig } from "./nf_modules/deeptools/main.nf" +include { peak_calling } from "./nf_modules/macs3/main.nf" + +/* + **************************************************************** + Workflow + **************************************************************** +*/ + +workflow { + // fastp + fastp_default(fastq_files) + // fastqc_rawdata + fastqc_raw(fastq_files) + // fastqc_processed + fastqc_preprocessed(fastp_default.out.fastq) + // multiqc + multiqc( + fastqc_raw.out.report + .mix( + fastqc_preprocessed.out.report + ).collect() + ) + // index reference genome + index_fasta(genome_file) + + // mapping preprocessed reads + mapping_fastq(index_fasta.out.index.collect(), fastp_default.out.fastq) + + // filter bam - remove reads with quality <30 + filter_bam_quality(mapping_fastq.out.bam) + + // samtools_sort + sort_bam(filter_bam_quality.out.bam) + + // samtools_index + index_bam(sort_bam.out.bam.collect()) + + // Create a bigwig file + bam_to_bigwig(index_bam.out.bam_idx) + + // peak calling using MACS3 + // peak_calling(bam_to_bigwig.out.bw) +} diff --git a/src/example_marseq.nf b/src/example_marseq.nf deleted file mode 100644 index 821ebd99..00000000 --- a/src/example_marseq.nf +++ /dev/null @@ -1,87 +0,0 @@ -nextflow.enable.dsl=2 - -/* -Testing pipeline for marseq scRNASeq analysis -*/ - -include { adaptor_removal} from "./nf_modules/cutadapt/main.nf" -include { - index_fasta; - count; - index_fasta_velocity; - count_velocity -} from "./nf_modules/kb/main.nf" addParams( - kb_protocol: "marsseq", - count_out: "quantification/", - count_velocity_out: "quantification_velocity/" -) - -params.fasta = "http://ftp.ensembl.org/pub/release-94/fasta/gallus_gallus/dna/Gallus_gallus.Gallus_gallus-5.0.dna.toplevel.fa.gz" -params.fastq = "data/CF42_45/*/*R{1,2}.fastq.gz" -params.gtf = "http://ftp.ensembl.org/pub/release-94/gtf/gallus_gallus/Gallus_gallus.Gallus_gallus-5.0.94.gtf.gz" -params.transcript_to_gene = "" -params.whitelist = "data/expected_whitelist.txt" -params.config = "data/marseq_flexi_splitter.yaml" -params.workflow_type = "classic" - -log.info "fastq files (--fastq): ${params.fastq}" -log.info "fasta file (--fasta): ${params.fasta}" -log.info "gtf file (--gtf): ${params.gtf}" -log.info "transcript_to_gene file (--transcript_to_gene): ${params.transcript_to_gene}" -log.info "whitelist file (--whitelist): ${params.whitelist}" -log.info "config file (--config): ${params.config}" - -channel - .fromFilePairs( params.fastq, size: -1) - .set { fastq_files } -channel - .fromPath( params.fasta ) - .ifEmpty { error "Cannot find any fasta files matching: ${params.fasta}" } - .map { it -> [it.simpleName, it]} - .set { fasta_files } -channel - .fromPath( params.gtf ) - .ifEmpty { error "Cannot find any gtf files matching: ${params.gtf}" } - .map { it -> [it.simpleName, it]} - .set { gtf_files } -if (params.whitelist == "") { - channel.empty() - .set { whitelist_files } -} else { - channel - .fromPath( params.whitelist ) - .map { it -> [it.simpleName, it]} - .set { whitelist_files } -} -channel - .fromPath( params.config ) - .ifEmpty { error "Cannot find any config files matching: ${params.config}" } - .map { it -> [it.simpleName, it]} - .set { config_files } - -workflow { - adaptor_removal(fastq_files) - if (params.workflow_type == "classic") { - index_fasta( - fasta_files, - gtf_files - ) - count( - index_fasta.out.index, - adaptor_removal.out.fastq, - index_fasta.out.t2g, whitelist_files,config_files - ) - } else { - index_fasta_velocity( - fasta_files, - gtf_files - ) - count_velocity( - index_fasta_velocity.out.index, - adaptor_removal.out.fastq, - index_fasta_velocity.out.t2g, - whitelist_files, - config_files - ) - } -} diff --git a/src/example_variant_calling.nf b/src/example_variant_calling.nf deleted file mode 100644 index 5d793ed4..00000000 --- a/src/example_variant_calling.nf +++ /dev/null @@ -1,36 +0,0 @@ -nextflow.enable.dsl=2 - -/* -Testing pipeline for marseq scRNASeq analysis -*/ - -include { - mapping; -} from "./nf_modules/bwa/main.nf" - -include { - sort_bam; -} from "./nf_modules/samtools/main.nf" - -include { - germline_cohort_data_variant_calling; -} from "./nf_modules/gatk4/main.nf" addParams( - variant_calling_out: "vcf/", -) - -params.fastq = "" -params.fasta = "" - -channel - .fromFilePairs( params.fastq, size: -1) - .set { fastq_files } -channel - .fromPath( params.fasta ) - .map { it -> [it.simpleName, it]} - .set { fasta_files } - -workflow { - mapping(fasta_files, fastq_files) - sort_bam(mapping.out.bam) - germline_cohort_data_variant_calling(sort_bam.out.bam, fasta_files) -} diff --git a/src/fasta_sampler.nf b/src/fasta_sampler.nf deleted file mode 100644 index d1200ed4..00000000 --- a/src/fasta_sampler.nf +++ /dev/null @@ -1,18 +0,0 @@ -Channel - .fromPath( "data/tiny_dataset/fasta/*.fasta" ) - .set { fasta_file } - -process sample_fasta { - publishDir "results/sampling/", mode: 'copy' - - input: -file fasta from fasta_file - - output: -file "*_sample.fasta" into fasta_sample - - script: -""" -head ${fasta} > ${fasta.baseName}_sample.fasta -""" -} diff --git a/src/install_nextflow.sh b/src/install_nextflow.sh old mode 100755 new mode 100644 diff --git a/src/nextflow b/src/nextflow new file mode 100644 index 00000000..4a4f0cfd --- /dev/null +++ b/src/nextflow @@ -0,0 +1,465 @@ +#!/usr/bin/env bash +# +# Copyright 2020-2021, Seqera Labs +# Copyright 2013-2019, Centre for Genomic Regulation (CRG) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +[[ "$NXF_DEBUG" == 'x' ]] && set -x +NXF_VER=${NXF_VER:-'21.04.3'} +NXF_ORG=${NXF_ORG:-'nextflow-io'} +NXF_HOME=${NXF_HOME:-$HOME/.nextflow} +NXF_PROT=${NXF_PROT:-'https'} +NXF_BASE=${NXF_BASE:-$NXF_PROT://www.nextflow.io/releases} +NXF_TEMP=${NXF_TEMP:-$TMPDIR} +NXF_DIST=${NXF_DIST:-$NXF_HOME/framework} +NXF_CLI="$0 $@" + +export NXF_CLI +export NXF_ORG +export NXF_HOME + +if [[ $TERM && $TERM != 'dumb' ]]; then +if command -v tput &>/dev/null; then +GREEN=$(tput setaf 2; tput bold) +YELLOW=$(tput setaf 3) +RED=$(tput setaf 1) +NORMAL=$(tput sgr0) +fi +fi + +function echo_red() { + >&2 echo -e "$RED$*$NORMAL" +} + +function echo_green() { + echo -e "$GREEN$*$NORMAL" +} + +function echo_yellow() { + >&2 echo -e "$YELLOW$*$NORMAL" +} + +function die() { + echo_red "$*" + exit 1 +} + +function get_abs_filename() { + echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" +} + +function get() { + if command -v curl &>/dev/null; then + GET="curl -fsSL '$1' -o '$2'" + elif command -v wget &>/dev/null; then + GET="wget -q '$1' -O '$2'" + else + echo_red "ERROR: Cannot find 'curl' nor 'wget' utility -- please install one of them" + exit 1 + fi + + printf "Downloading nextflow dependencies. It may require a few seconds, please wait .. " + eval $GET; status=$? + printf "\r\033[K" + if [ $status -ne 0 ]; then + echo_red "ERROR: Cannot download nextflow required file -- make sure you can connect to the internet" + echo "" + echo "Alternatively you can try to download this file:" + echo " $1" + echo "" + echo "and save it as:" + echo " ${3:-$2}" + echo "" + exit 1 + fi +} + +function make_temp() { + local base=${NXF_TEMP:=$PWD} + if [ "$(uname)" = 'Darwin' ]; then mktemp "${base}/nxf-tmp.XXXXXX" || exit $? + else mktemp -t nxf-tmp.XXXXXX -p "${base}" || exit $? + fi +} + +function resolve_link() { + [[ ! -f $1 ]] && exit 1 + if command -v realpath &>/dev/null; then + realpath "$1" + elif command -v readlink &>/dev/null; then + local target="$1" + cd $(dirname $target); target=$(basename $target) + while [ -L "$target" ]; do + target="$(readlink "$target")" + cd $(dirname $target); target=$(basename $target) + done + echo "$(cd "$(dirname "$target")"; pwd -P)/$target" + else + echo_yellow "WARN: Neither \`realpath\` nor \`readlink\` command can be found" + exit 1 + fi +} + +function current_ver() { + [[ $NXF_EDGE == 1 ]] && printf 'edge' || printf 'latest' +} + +function install() { + local tmpfile=$(make_temp) + local version=$(set +u; [[ $NXF_VER ]] && printf "v$NXF_VER" || current_ver) + local action="a=${2:-default}" + get "$NXF_BASE/$version/nextflow?$action" "$tmpfile" "$1" || exit $? + mv "$tmpfile" "$1" || exit $? + chmod +x "$1" || exit $? + bash "$1" -download || exit $? + echo '' + echo -e $'Nextflow installation completed. Please note:' + echo -e $'- the executable file `nextflow` has been created in the folder:' $(dirname $1) + if [[ ! "$PATH" =~ (^|:)"$(dirname $1)"(:|$) ]]; then + echo -e $'- you may complete the installation by moving it to a directory in your $PATH' + fi + echo '' +} + +function launch_nextflow() { + # the launch command line + local cmdline=() + # remove leading and trailing double-quotes + for x in "${launcher[@]}"; do + x="${x%\"}" + x="${x#\"}" + cmdline+=("$x") + done + + if [[ $NXF_MPIRUN ]]; then + local rank='' + [[ $SLURM_PROCID ]] && rank=$SLURM_PROCID + [[ $OMPI_COMM_WORLD_RANK ]] && rank=$OMPI_COMM_WORLD_RANK + if [[ ! $rank ]]; then + echo_red 'It looks you are not running in a MPI enabled environment -- cannot find `$OMPI_COMM_WORLD_RANK` nor `$SLURM_PROCID` variable'; + exit 1; + fi + if [[ $SLURM_CPUS_PER_TASK && $SLURM_MEM_PER_CPU ]]; then + export NXF_CLUSTER_MAXCPUS=$SLURM_CPUS_PER_TASK + export NXF_CLUSTER_MAXMEMORY="$(($SLURM_MEM_PER_CPU*$SLURM_CPUS_PER_TASK))MB" + fi + if [[ $rank == 0 ]]; then + # sleep a few seconds in order to wait worker daemons to bootstrap + sleep ${NXF_SLEEP:-10} + export NXF_EXECUTOR='ignite' + export NXF_CLUSTER_SHUTDOWNONCOMPLETE='true' + else + args=(-log .nextflow_node_${rank}.log node ignite) + fi + # start in daemon mode + elif [[ "$bg" ]]; then + local pid_file="${NXF_PID_FILE:-.nextflow.pid}" + cmdline+=("${args[@]}") + exec "${cmdline[@]}" & + disown + echo $! > "$pid_file" + exit 0 + fi + + cmdline+=("${args[@]}") + exec "${cmdline[@]}" + exit 1 +} + +# check self-install +if [ "$0" = "bash" ] || [ "$0" = "/bin/bash" ]; then + if [ -d nextflow ]; then + echo 'Please note:' + echo "- The install procedure needs to create a file named 'nextflow' in this folder, but a directory with this name already exists." + echo "- Please renamed/delete that directory, or execute the Nextflow install procedure in another folder." + echo '' + exit 1 + fi + install "$PWD/nextflow" install + exit 0 +fi + + +# parse the command line +bg='' +dockerize='' +declare -a jvmopts=() +declare -a args=("$@") +declare -a commands=(clone config drop help history info ls pull run view node console kuberun) +cmd='' +while [[ $# != 0 ]]; do + case $1 in + -D*) + if [[ ! "$cmd" ]]; then + jvmopts+=("$1") + fi + ;; + -d|-dockerize) + if [[ ! "$cmd" && ! -f /.nextflow/dockerized ]]; then + dockerize=1 + fi + ;; + -bg) + if [[ ! -f /.nextflow/dockerized ]]; then + bg=1 + fi + ;; + -download) + if [[ ! "$cmd" ]]; then + rm -rf "$NXF_DIST/$NXF_VER" || exit $? + bash "$0" -version || exit $? + exit 0 + fi + ;; + -self-update|self-update) + if [[ ! "$cmd" ]]; then + [[ -z $NXF_EDGE && $NXF_VER = *-edge ]] && NXF_EDGE=1 + unset NXF_VER + install "$0" update + exit 0 + fi + ;; + -process.executor|-executor.name) + if [[ $2 && $2 == 'ignite' ]]; then + [ ! $NXF_MODE ] && NXF_MODE='ignite'; shift; + fi + ;; + -with-mpi) + [ ! $NXF_MODE ] && NXF_MODE='ignite' + NXF_MPIRUN='true' + ;; + *) + [[ $1 && $1 != -* && ! "$cmd" && ${commands[*]} =~ $1 ]] && cmd=$1 + ;; + esac + shift +done + +NXF_DOCKER_OPTS=${NXF_DOCKER_OPTS:=''} +if [[ "$dockerize" ]]; then + if [[ "$bg" ]]; then detach='--detach '; else detach=''; fi + NXF_ASSETS=${NXF_ASSETS:-${NXF_HOME:-$HOME/.nextflow}/assets} + mkdir -p "$NXF_ASSETS" + exec docker run $detach --rm --net host \ + -e NXF_ANSI_LOG=false \ + -e USER -e HOME -e NXF_ASSETS=$NXF_ASSETS -e NXF_USRMAP=$(id -u) -e NXF_DOCKER_OPTS='-u $(id -u)' \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v $HOME:$HOME:ro,Z -v $NXF_ASSETS:$NXF_ASSETS:Z -v $PWD:$PWD:Z -w $PWD $NXF_DOCKER_OPTS \ + nextflow/nextflow:$NXF_VER nextflow "${args[@]}" + exit 1 +fi + +CAPSULE_LOG=${CAPSULE_LOG:=''} +CAPSULE_RESET=${CAPSULE_RESET:=''} +CAPSULE_CACHE_DIR=${CAPSULE_CACHE_DIR:="$NXF_HOME/capsule"} + +NXF_PACK=one +NXF_MODE=${NXF_MODE:-''} +NXF_JAR=${NXF_JAR:-nextflow-$NXF_VER-$NXF_PACK.jar} +NXF_BIN=${NXF_BIN:-$NXF_DIST/$NXF_VER/$NXF_JAR} +NXF_PATH=$(dirname "$NXF_BIN") +NXF_URL=${NXF_URL:-$NXF_BASE/v$NXF_VER/$NXF_JAR} +NXF_GRAB=${NXF_GRAB:-''} +NXF_CLASSPATH=${NXF_CLASSPATH:-''} +NXF_MPIRUN=${NXF_MPIRUN:=''} +NXF_HOST=${HOSTNAME:-localhost} +[[ $NXF_LAUNCHER ]] || NXF_LAUNCHER=${NXF_HOME}/tmp/launcher/nextflow-${NXF_PACK}_${NXF_VER}/${NXF_HOST} + +if [[ $NXF_MODE == ignite ]]; then + # Fix JDK bug when there's a limit on the OS virtual memory + # https://bugs.openjdk.java.net/browse/JDK-8044054 + # https://issues.apache.org/jira/browse/HADOOP-7154 + export MALLOC_ARENA_MAX=4 +fi + +# Determine the path to this file +if [[ $NXF_PACK = all ]]; then + NXF_BIN=$(which "$0" 2>/dev/null) + [ $? -gt 0 -a -f "$0" ] && NXF_BIN="./$0" +fi + +# use nextflow custom java home path +if [[ "$NXF_JAVA_HOME" ]]; then + JAVA_HOME="$NXF_JAVA_HOME" + unset JAVA_CMD +fi +# Determine the Java command to use to start the JVM. +if [ ! -x "$JAVA_CMD" ] ; then + if [ -d "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVA_CMD="$JAVA_HOME/jre/sh/java" + else + JAVA_CMD="$JAVA_HOME/bin/java" + fi + elif [ -x /usr/libexec/java_home ]; then + JAVA_CMD="$(/usr/libexec/java_home -v 1.8+)/bin/java" + else + JAVA_CMD="$(which java)" || JAVA_CMD=java + fi +fi + +# Retrieve the java version from a NF local file +JAVA_KEY="$NXF_HOME/tmp/ver/$(resolve_link "$JAVA_CMD" | sed 's@/@.@g')" +if [ -f "$JAVA_KEY" ]; then + JAVA_VER="$(cat "$JAVA_KEY")" +else + JAVA_VER="$("$JAVA_CMD" $NXF_OPTS -version 2>&1)" + if [ $? -ne 0 ]; then + echo_red "${JAVA_VER:-Failed to launch the Java virtual machine}" + echo_yellow "NOTE: Nextflow is trying to use the Java VM defined by the following environment variables:\n JAVA_CMD: $JAVA_CMD\n NXF_OPTS: $NXF_OPTS\n" + exit 1 + fi + JAVA_VER=$(echo "$JAVA_VER" | awk '/version/ {gsub(/"/, "", $3); print $3}') + # check NF version + if [[ ! $NXF_VER =~ ([0-9]+)\.([0-9]+)\.([0-9].*) ]]; then + echo_red "Not a valid Nextflow version: $NXF_VER" + exit 1 + fi + major=${BASH_REMATCH[1]} + minor=${BASH_REMATCH[2]} + # legacy version - Java 7/8 only + if [ $major -eq 0 ] && [ $minor -lt 26 ]; then + version_check="^(1.7|1.8)" + version_message="Java 7 or 8" + else + version_check="^(1.8|9|10|11|12|13|14|15)" + version_message="Java 8 or later" + fi + if [[ ! $JAVA_VER =~ $version_check ]]; then + echo_red "ERROR: Cannot find Java or it's a wrong version -- please make sure that $version_message is installed" + if [[ "$NXF_JAVA_HOME" ]]; then + echo_yellow "NOTE: Nextflow is trying to use the Java VM defined by the following environment variables:\n JAVA_CMD: $JAVA_CMD\n NXF_JAVA_HOME: $NXF_JAVA_HOME\n" + else + echo_yellow "NOTE: Nextflow is trying to use the Java VM defined by the following environment variables:\n JAVA_CMD: $JAVA_CMD\n JAVA_HOME: $JAVA_HOME\n" + fi + exit 1 + fi + if [[ ! $JAVA_VER =~ ^(1.8|9|10|11|12|13|14|15) ]]; then + echo_yellow "NOTE: Nextflow is not tested with Java $JAVA_VER -- It's recommended the use of version 8 up to 15\n" + elif [[ ! $JAVA_VER =~ ^(1.8|9|10|11) && $NXF_MODE == ignite ]]; then + echo_yellow "WARN: Apache Ignite executor is not tested with Java $JAVA_VER -- It's recommended the use of version 8 up to 11\n" + fi + mkdir -p $(dirname "$JAVA_KEY") + [[ -f $JAVA_VER ]] && echo $JAVA_VER > "$JAVA_KEY" +fi + +# Verify nextflow jar is available +if [ ! -f "$NXF_BIN" ]; then + [ -f "$NXF_PATH" ] && rm "$NXF_PATH" + mkdir -p "$NXF_PATH" || exit $? + tmpfile=$(make_temp) + get "$NXF_URL" "$tmpfile" "$NXF_BIN" + mv "$tmpfile" "$NXF_BIN" +fi + +COLUMNS=${COLUMNS:-`tty -s && tput cols 2>/dev/null || true`} +declare -a JAVA_OPTS=() +JAVA_OPTS+=(-Dfile.encoding=UTF-8 -Dcapsule.trampoline -Dcapsule.java.cmd="$JAVA_CMD") +if [[ $cmd == console ]]; then bg=1; +else JAVA_OPTS+=(-Djava.awt.headless=true) +fi + +[[ "$JAVA_HOME" ]] && JAVA_OPTS+=(-Dcapsule.java.home="$JAVA_HOME") +[[ "$CAPSULE_LOG" ]] && JAVA_OPTS+=(-Dcapsule.log=$CAPSULE_LOG) +[[ "$CAPSULE_RESET" ]] && JAVA_OPTS+=(-Dcapsule.reset=true) +[[ "$cmd" != "run" && "$cmd" != "node" ]] && JAVA_OPTS+=(-XX:+TieredCompilation -XX:TieredStopAtLevel=1) +[[ "$NXF_OPTS" ]] && JAVA_OPTS+=($NXF_OPTS) +[[ "$NXF_CLASSPATH" ]] && export NXF_CLASSPATH +[[ "$NXF_GRAB" ]] && export NXF_GRAB +[[ "$COLUMNS" ]] && export COLUMNS +[[ "$NXF_TEMP" ]] && JAVA_OPTS+=(-Djava.io.tmpdir="$NXF_TEMP") +[[ "${jvmopts[@]}" ]] && JAVA_OPTS+=("${jvmopts[@]}") +export JAVA_CMD +export CAPSULE_CACHE_DIR +export NXF_PLUGINS_DIR +export NXF_PLUGINS_MODE +export NXF_PLUGINS_DEFAULT +export NXF_PACK + +# lookup the a `md5` command +if hash md5sum 2>/dev/null; then MD5=md5sum; +elif hash gmd5sum 2>/dev/null; then MD5=gmd5sum; +elif hash md5 2>/dev/null; then MD5=md5; +else MD5='' +fi + +# when no md5 command is available fallback on default execution +if [ ! "$MD5" ] || [ "$CAPSULE_RESET" ]; then + launcher=($("$JAVA_CMD" "${JAVA_OPTS[@]}" -jar "$NXF_BIN")) + launch_nextflow + exit 1 +fi + +# creates a md5 unique for the given variables +env_md5() { +cat <<EOF | $MD5 | cut -f1 -d' ' +$JAVA_CMD +$JAVA_VER +${JAVA_OPTS[@]} +$NXF_HOME +$NXF_VER +$NXF_OPTS +$NXF_GRAB +$NXF_CLASSPATH +EOF +} + +# checked if a cached classpath file exists and it newer that the nextflow boot jar file +if [[ -f /.nextflow/dockerized ]]; then + LAUNCH_FILE=/.nextflow/launch-classpath +else + LAUNCH_FILE="${NXF_LAUNCHER}/classpath-$(env_md5)" +fi +if [ -s "$LAUNCH_FILE" ] && [ "$LAUNCH_FILE" -nt "$NXF_BIN" ]; then + launcher=($(cat "$LAUNCH_FILE")) +else + # otherwise run the capsule and get the result classpath in the 'launcher' and save it to a file + cli=($("$JAVA_CMD" "${JAVA_OPTS[@]}" -jar "$NXF_BIN")) + [[ $? -ne 0 ]] && echo_red 'Unable to initialize nextflow environment' && exit 1 + + if [[ "$JAVA_VER" =~ ^(9|10|11|12|13|14|15) ]]; then + launcher=("${cli[@]:0:1}") + launcher+=(--add-opens=java.base/java.lang=ALL-UNNAMED) + launcher+=(--add-opens=java.base/java.io=ALL-UNNAMED) + launcher+=(--add-opens=java.base/java.nio=ALL-UNNAMED) + launcher+=(--add-opens=java.base/java.util=ALL-UNNAMED) + launcher+=(--add-opens=java.base/java.nio.file.spi=ALL-UNNAMED) + launcher+=(--add-opens=java.base/sun.nio.ch=ALL-UNNAMED) + launcher+=(--add-opens=java.base/sun.nio.fs=ALL-UNNAMED) + launcher+=(--add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED) + launcher+=(--add-opens=java.base/sun.net.www.protocol.https=ALL-UNNAMED) + launcher+=(--add-opens=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED) + launcher+=(--add-opens=java.base/sun.net.www.protocol.file=ALL-UNNAMED) + launcher+=(--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED) + launcher+=(--illegal-access=deny) + launcher+=("${cli[@]:1}") + else + launcher=("${cli[@]}") + fi + + # Don't show errors if the LAUNCH_FILE can't be created + if mkdir -p "${NXF_LAUNCHER}" 2>/dev/null; then + STR='' + for x in "${launcher[@]}"; do + [[ "$x" != "\"-Duser.dir=$PWD\"" ]] && STR+="$x " + done + printf "$STR">"$LAUNCH_FILE" + else + echo_yellow "Warning: Couldn't create cached classpath folder: $NXF_LAUNCHER -- Maybe NXF_HOME is not writable?" + fi + +fi + +# finally run it +launch_nextflow diff --git a/src/nextflow.config b/src/nextflow.config index 05a44103..ffe70eb3 100644 --- a/src/nextflow.config +++ b/src/nextflow.config @@ -18,7 +18,6 @@ profiles { docker.enabled = true process { errorStrategy = 'finish' - memory = '16GB' withLabel: big_mem_mono_cpus { cpus = 1 } @@ -40,7 +39,6 @@ profiles { singularity.cacheDir = "./bin/" process { errorStrategy = 'finish' - memory = '16GB' withLabel: big_mem_mono_cpus { cpus = 1 } diff --git a/src/nf_functions/control_ip_processing.nf b/src/nf_functions/control_ip_processing.nf new file mode 100644 index 00000000..6f0fd325 --- /dev/null +++ b/src/nf_functions/control_ip_processing.nf @@ -0,0 +1,24 @@ +bam_files_control = Channel.create() +bam_files_ip = Channel.create() +sorted_bam_files_macs2 + .map { + file -> + def file_name = file[1].name.toString() + def key = (file_name =~ /(.+)\_[^_]+\_sorted\.bam/)[0][1] + return tuple(key, file) + } + .groupTuple() + .map{ + file_list -> + def input_list = [file_list[0]] + def ip_list = [] + for (files in file_list[1]) { + if (files[0] =~ /.*${params.control_tag}.*/) { + input_list.add(files[1]) + } else { + ip_list.add(files[1]) + } + } + return [input_list, ip_list] + } + .separate( bam_files_control, bam_files_ip){a -> [a[0], a[1]]} \ No newline at end of file diff --git a/src/nf_functions/reads_processing.nf b/src/nf_functions/reads_processing.nf new file mode 100644 index 00000000..35fb2b28 --- /dev/null +++ b/src/nf_functions/reads_processing.nf @@ -0,0 +1,5 @@ +def merge_channels(report1, report2) { + + return report1.concat(report2).collect() + +} \ No newline at end of file diff --git a/src/nf_modules/multiqc/main.nf b/src/nf_modules/multiqc/main.nf index f33386d2..faf4c6d9 100644 --- a/src/nf_modules/multiqc/main.nf +++ b/src/nf_modules/multiqc/main.nf @@ -5,7 +5,7 @@ /* include { multiqc } - from './nf_modules/multiqc/main' + from './nf_modules/multiqc/main.nf' addParams( multiqc_out: "QC/" ) diff --git a/src/solution_RNASeq.nf b/src/solution_RNASeq.nf deleted file mode 100644 index 23adf099..00000000 --- a/src/solution_RNASeq.nf +++ /dev/null @@ -1,34 +0,0 @@ -nextflow.enable.dsl=2 - -include { fastp } from "./nf_modules/fastp/main.nf" -include { fasta_from_bed } from "./nf_modules/bedtools/main.nf" -include { index_fasta; mapping_fastq } from './nf_modules/kallisto/main.nf' addParams(mapping_fastq_out: "quantification/") - - -params.fastq = "data/fastq/*_{1,2}.fastq" - -log.info "fastq files: ${params.fastq}" -log.info "fasta file : ${params.fasta}" -log.info "bed file : ${params.bed}" - -channel - .fromFilePairs( params.fastq, size: -1) - .set { fastq_files } - -channel - .fromPath( params.fasta ) - .ifEmpty { error "Cannot find any fasta files matching: ${params.fasta}" } - .map { it -> [it.simpleName, it]} - .set { fasta_files } -channel - .fromPath( params.bed ) - .ifEmpty { error "Cannot find any bed files matching: ${params.bed}" } - .map { it -> [it.simpleName, it]} - .set { bed_files } - -workflow { - fastp(fastq_files) - fasta_from_bed(fasta_files, bed_files) - index_fasta(fasta_from_bed.out.fasta) - mapping_fastq(index_fasta.out.index.collect(), fastp.out.fastq) -} diff --git a/src/training_dataset.config b/src/training_dataset.config deleted file mode 100644 index 734a7410..00000000 --- a/src/training_dataset.config +++ /dev/null @@ -1,370 +0,0 @@ -profiles { - docker { - docker.temp = "auto" - docker.enabled = true - process { - withName: build_synthetic_bed { - container = "lbmc/bedtools:2.25.0" - cpus = 1 - } - withName: fasta_from_bed { - container = "lbmc/bedtools:2.25.0" - cpus = 1 - } - withName: index_fasta { - container = "lbmc/bowtie2:2.3.4.1" - cpus = 4 - } - withName: mapping_fastq_paired { - container = "lbmc/bowtie2:2.3.4.1" - cpus = 4 - } - withName: bam_2_fastq_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: filter_bam_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: sort_bam_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: index_bam_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: mapping_fastq_single { - container = "lbmc/bowtie2:2.3.4.1" - cpus = 4 - } - withName: bam_2_fastq_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: filter_bam_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: sort_bam_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: index_bam_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - } - } - singularity { - singularity.enabled = true - singularity.cacheDir = "./bin/" - process { - withName: build_synthetic_bed { - container = "lbmc/bedtools:2.25.0" - cpus = 1 - } - withName: fasta_from_bed { - container = "lbmc/bedtools:2.25.0" - cpus = 1 - } - withName: index_fasta { - container = "lbmc/bowtie2:2.3.4.1" - cpus = 4 - } - withName: mapping_fastq_single { - container = "lbmc/bowtie2:2.3.4.1" - cpus = 4 - } - withName: mapping_fastq_paired { - container = "lbmc/bowtie2:2.3.4.1" - cpus = 4 - } - withName: bam_2_fastq_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: filter_bam_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: sort_bam_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: index_bam_paired { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: bam_2_fastq_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: filter_bam_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: sort_bam_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - withName: index_bam_single { - container = "lbmc/samtools:1.7" - cpus = 4 - } - } - } - psmn { - process{ - withName: build_synthetic_bed { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/bedtools_2.25.0" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 1 - memory = "20GB" - time = "12h" - queue = "monointeldeb128" - } - withName: fasta_from_bed { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/bedtools_2.25.0" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 1 - memory = "20GB" - time = "12h" - queue = "monointeldeb128" - } - withName: index_fasta { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/bowtie2_2.3.4.1" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "20GB" - time = "12h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: mapping_fastq_paired { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/bowtie2_2.3.4.1" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: bam_2_fastq_paired { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/samtools_1.7" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: sort_bam_paired { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/samtools_1.7" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: index_bam_paired { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/samtools_1.7" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: mapping_fastq_single { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/bowtie2_2.3.4.1" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: bam_2_fastq_single { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/samtools_1.7" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: sort_bam_single { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/samtools_1.7" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - withName: index_bam_single { - beforeScript = "source $baseDir/.conda_psmn.sh" - conda = "$baseDir/.conda_envs/samtools_1.7" - executor = "sge" - clusterOptions = "-m e -cwd -V" - cpus = 32 - memory = "30GB" - time = "24h" - queue = "CLG6242deb384A,CLG6242deb384C,CLG5218deb192A,CLG5218deb192B,CLG5218deb192C,CLG5218deb192D,SLG5118deb96,SLG6142deb384A,SLG6142deb384B,SLG6142deb384C,SLG6142deb384D" - penv = "openmp32" - } - } - } - ccin2p3 { - singularity.enabled = true - singularity.cacheDir = "$baseDir/.singularity_in2p3/" - singularity.runOptions = "--bind /pbs,/sps,/scratch" - process{ - withName: fasta_from_bed { - container = "lbmc/bedtools:2.25.0" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - } - process{ - withName: build_synthetic_bed { - container = "lbmc/bedtools:2.25.0" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: fasta_from_bed { - container = "lbmc/bedtools:2.25.0" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: index_fasta { - container = "lbmc/bowtie2:2.3.4.1" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: mapping_fastq_paired { - container = "lbmc/bowtie2:2.3.4.1" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: bam_2_fastq_paired { - container = "lbmc/samtools:1.7" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: sort_bam_paired { - container = "lbmc/samtools:1.7" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: index_bam_paired { - container = "lbmc/samtools:1.7" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: mapping_fastq_single { - container = "lbmc/bowtie2:2.3.4.1" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: bam_2_fastq_single { - container = "lbmc/samtools:1.7" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: sort_bam_single { - container = "lbmc/samtools:1.7" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - withName: index_bam_single { - container = "lbmc/samtools:1.7" - scratch = true - stageInMode = "copy" - stageOutMode = "rsync" - executor = "sge" - clusterOptions = "-P P_lbmc -l os=cl7 -l sps=1 -r n" - cpus = 1 - queue = "huge" - } - } - } -} diff --git a/src/training_dataset.nf b/src/training_dataset.nf deleted file mode 100644 index c6f48e88..00000000 --- a/src/training_dataset.nf +++ /dev/null @@ -1,308 +0,0 @@ -/* -small pipeline to build a training dataset from whole genome data - -input: -- fasta -- fastq -- chromosome -- start position -- stop position - -output: -- sort fasta -- sort fastq - -example for paired-end data: -./nextflow src/training_dataset.nf -c src/training_dataset.config --fasta "data/genome.fa" --fastq_paired "data/*_R{1,2}.fastq.gz" --chromosome "X" --start 5305683 --stop 5333928 -resume - -example for single-end data: -./nextflow src/training_dataset.nf -c src/training_dataset.config --fasta "data/genome.fa" --fastq_single "data/*_R1.fastq.gz" --chromosome "X" --start 5305683 --stop 5333928 -resume - -*/ - -params.fastq_paired = "" -params.fastq_single = "" - -log.info "fasta files : ${params.fasta}" -log.info "fastq paired files : ${params.fastq_paired}" -log.info "fastq single files : ${params.fastq_single}" -log.info "chromosome : ${params.chromosome}" -log.info "start position : ${params.start}" -log.info "stop position : ${params.stop}" - - -Channel - .fromPath( params.fasta ) - .ifEmpty { error "Cannot find any index files matching: ${params.fasta}" } - .set { fasta_file } - - -process build_synthetic_bed { - tag "${chromosome}:${start}-${stop}" - cpus 4 - - input: - val chromosome from params.chromosome - val start from params.start - val stop from params.stop - - output: - file "*.bed" into bed_files - - script: -""" -echo "${chromosome}\t${start}\t${stop}" > synthetic.bed -""" -} - -process fasta_from_bed { - tag "${fasta.baseName}" - cpus 4 - publishDir "results/training/fasta/", mode: 'copy' - - input: - file fasta from fasta_file - file bed from bed_files - val chromosome from params.chromosome - - output: - file "*.fasta" into fasta_files_extracted - - script: -""" -bedtools getfasta \ --fi ${fasta} -bed ${bed} -fo s${fasta.baseName}.fasta -""" -} - -process index_fasta { - tag "$fasta.baseName" - cpus 4 - publishDir "results/training/mapping/index/", mode: 'copy' - - input: - file fasta from fasta_files_extracted - - output: - file "*.index*" into index_files - file "*_report.txt" into indexing_report - - script: -""" -bowtie2-build --threads ${task.cpus} ${fasta} ${fasta.baseName}.index &> ${fasta.baseName}_bowtie2_report.txt - -if grep -q "Error" ${fasta.baseName}_bowtie2_report.txt; then - exit 1 -fi -""" -} - -if ( params.fastq_paired != "" ) { - Channel - .fromFilePairs( params.fastq_paired ) - .ifEmpty { error "Cannot find any fastq files matching: ${params.fastq_paired}" } - .set { fastq_files_paired } - - process mapping_fastq_paired { - tag "$pair_id" - cpus 4 - - input: - set pair_id, file(reads) from fastq_files_paired - file index from index_files.collect() - - output: - set pair_id, "*.bam" into bam_files_paired - file "*_report.txt" into mapping_report - - script: - index_id = index[0] - for (index_file in index) { - if (index_file =~ /.*\.1\.bt2/ && !(index_file =~ /.*\.rev\.1\.bt2/)) { - index_id = ( index_file =~ /(.*)\.1\.bt2/)[0][1] - } - } - """ - bowtie2 --very-sensitive -p ${task.cpus} -x ${index_id} \ - -1 ${reads[0]} -2 ${reads[1]} 2> \ - ${pair_id}_bowtie2_report.txt | \ - samtools view -Sb - > ${pair_id}.bam - - if grep -q "Error" ${pair_id}_bowtie2_report.txt; then - exit 1 - fi - """ - } - - bam_files_paired.into{ bam_files_paired_fa; bam_files_paired_ba} - - process bam_2_fastq_paired { - tag "$file_id" - publishDir "results/training/fastq/", mode: 'copy' - - input: - set file_id, file(bam) from bam_files_paired_fa - - output: - set file_id, "*.fastq" into fastq_files_extracted - script: - """ - samtools fastq -1 s${file_id}_R1.fastq -2 s${file_id}_R2.fastq -F 0x4 ${bam} - """ - } - - process filter_bam_paired { - tag "$file_id" - cpus 4 - - input: - set file_id, file(bam) from bam_files_paired_ba - file bed from bed_files - - output: - set file_id, "*.bam" into filtered_bam_files_paired - script: - """ - samtools view -@ ${task.cpus} -hb ${bam} -F 0x4 > f${file_id}.bam - """ - } - - process sort_bam_paired { - tag "$file_id" - publishDir "results/training/bams/", mode: 'copy' - cpus 4 - - input: - set file_id, file(bam) from filtered_bam_files_paired - - output: - set file_id, "*.bam" into sorted_bam_files_paired - - script: - """ - samtools sort -@ ${task.cpus} -O BAM -o s${file_id}.bam ${bam} - """ - } - - process index_bam_paired { - tag "$file_id" - publishDir "results/training/bams/", mode: 'copy' - - input: - set file_id, file(bam) from sorted_bam_files_paired - - output: - set file_id, "*.bam*" into indexed_bam_file_paired - - script: - """ - samtools index ${bam} - """ - } -} - - -if ( params.fastq_single != "" ) { - Channel - .fromPath( params.fastq_single ) - .ifEmpty { error "Cannot find any fastq files matching: ${params.fastq_single}" } - .map { it -> [(it.baseName =~ /([^\.]*)/)[0][1], it]} - .set { fastq_files_single } - - process mapping_fastq_single { - tag "$file_id" - cpus 4 - - input: - set file_id, file(reads) from fastq_files_single - file index from index_files.collect() - - output: - set file_id, "*.bam" into bam_files_single - file "*_report.txt" into mapping_report - - script: - index_id = index[0] - for (index_file in index) { - if (index_file =~ /.*\.1\.bt2/ && !(index_file =~ /.*\.rev\.1\.bt2/)) { - index_id = ( index_file =~ /(.*)\.1\.bt2/)[0][1] - } - } - """ - bowtie2 --very-sensitive -p ${task.cpus} -x ${index_id} \ - -U ${reads} 2> \ - ${file_id}_bowtie2_report.txt | \ - samtools view -Sb - > ${file_id}.bam - - if grep -q "Error" ${file_id}_bowtie2_report.txt; then - exit 1 - fi - """ - } - - bam_files_single.into{ bam_files_single_fa; bam_files_single_ba} - - process bam_2_fastq_single { - tag "$file_id" - - input: - set file_id, file(bam) from bam_files_single_fa - - output: - set file_id, "*.fastq" into fastq_files_extracted - script: - """ - samtools fastq -0 s${file_id}.fastq -F 0x4 ${bam} - """ - } - - process filter_bam_single { - tag "$file_id" - cpus 4 - - input: - set file_id, file(bam) from bam_files_single_ba - file bed from bed_files - - output: - set file_id, "*.bam" into filtered_bam_files_single - script: - """ - samtools view -@ ${task.cpus} -hb ${bam} -F 0x4 > f${file_id}.bam - """ - } - - process sort_bam_single { - tag "$file_id" - publishDir "results/training/bams/", mode: 'copy' - cpus 4 - - input: - set file_id, file(bam) from filtered_bam_files_single - - output: - set file_id, "*.bam" into sorted_bam_files_single - - script: - """ - samtools sort -@ ${task.cpus} -O BAM -o s${file_id}.bam ${bam} - """ - } - - process index_bam_single { - tag "$file_id" - publishDir "results/training/bams/", mode: 'copy' - - input: - set file_id, file(bam) from sorted_bam_files_single - - output: - set file_id, "*.bam*" into indexed_bam_file_single - - script: - """ - samtools index ${bam} - """ - } -} - -- GitLab