diff --git a/workflow/modules.nf b/workflow/modules.nf new file mode 100644 index 0000000000000000000000000000000000000000..25a294076e49a8103dc3a336f245aaa40996034b --- /dev/null +++ b/workflow/modules.nf @@ -0,0 +1,115 @@ +process DEBUG_INFO { + output: + stdout + + """ + echo "" + echo "This script is running on:" + cat /etc/os-release + echo "" + + echo "Test Parameters Provided:" + echo "" + printf '%-30s : %s\n' "source_entrypoint" "${params.source_entrypoint}" + printf '%-30s : %s\n' "profile" "${params.profile}" + printf '%-30s : %s\n' "input" "${params.input}" + printf '%-30s : %s\n' "fragment_size" "${params.fragment_size}" + printf '%-30s : %s\n' "read_length" "${params.read_length}" + printf '%-30s : %s\n' "with_control" "${params.with_control}" + printf '%-30s : %s\n' "multiqc_title" "${params.multiqc_title}" + printf '%-30s : %s\n' "genome" "${params.genome}" + printf '%-30s : %s\n' "fasta" "${params.fasta}" + printf '%-30s : %s\n' "gtf" "${params.gtf}" + printf '%-30s : %s\n' "gff" "${params.gff}" + printf '%-30s : %s\n' "bwa_index" "${params.bwa_index}" + printf '%-30s : %s\n' "bowtie2_index" "${params.bowtie2_index}" + printf '%-30s : %s\n' "chromap_index" "${params.chromap_index}" + printf '%-30s : %s\n' "gene_bed" "${params.gene_bed}" + printf '%-30s : %s\n' "tss_bed" "${params.tss_bed}" + printf '%-30s : %s\n' "blacklist" "${params.blacklist}" + printf '%-30s : %s\n' "mito_name" "${params.mito_name}" + printf '%-30s : %s\n' "keep_mito" "${params.keep_mito}" + printf '%-30s : %s\n' "ataqv_mito_reference" "${params.ataqv_mito_reference}" + printf '%-30s : %s\n' "clip_r1" "${params.clip_r1}" + printf '%-30s : %s\n' "clip_r2" "${params.clip_r2}" + printf '%-30s : %s\n' "three_prime_clip_r1" "${params.three_prime_clip_r1}" + printf '%-30s : %s\n' "three_prime_clip_r2" "${params.three_prime_clip_r2}" + printf '%-30s : %s\n' "trim_nextseq" "${params.trim_nextseq}" + printf '%-30s : %s\n' "min_trimmed_reads" "${params.min_trimmed_reads}" + printf '%-30s : %s\n' "skip_trimming" "${params.skip_trimming}" + printf '%-30s : %s\n' "aligner" "${params.aligner}" + printf '%-30s : %s\n' "keep_dups" "${params.keep_dups}" + printf '%-30s : %s\n' "keep_multi_map" "${params.keep_multi_map}" + printf '%-30s : %s\n' "skip_merge_replicates" "${params.skip_merge_replicates}" + printf '%-30s : %s\n' "narrow_peak" "${params.narrow_peak}" + printf '%-30s : %s\n' "broad_cutoff" "${params.broad_cutoff}" + printf '%-30s : %s\n' "macs_fdr" "${params.macs_fdr}" + printf '%-30s : %s\n' "macs_pvalue" "${params.macs_pvalue}" + printf '%-30s : %s\n' "min_reps_consensus" "${params.min_reps_consensus}" + printf '%-30s : %s\n' "skip_peak_qc" "${params.skip_peak_qc}" + printf '%-30s : %s\n' "skip_peak_annotation" "${params.skip_peak_annotation}" + printf '%-30s : %s\n' "skip_consensus_peak" "${params.skip_consensus_peak}" + printf '%-30s : %s\n' "deseq2_vst" "${params.deseq2_vst}" + printf '%-30s : %s\n' "skip_deseq2_qc" "${params.skip_deseq2_qc}" + printf '%-30s : %s\n' "skip_fastqc" "${params.skip_fastqc}" + printf '%-30s : %s\n' "skip_picard_metrics" "${params.skip_picard_metrics}" + printf '%-30s : %s\n' "skip_preseq" "${params.skip_preseq}" + printf '%-30s : %s\n' "skip_plot_profile" "${params.skip_plot_profile}" + printf '%-30s : %s\n' "skip_plot_fingerprint" "${params.skip_plot_fingerprint}" + printf '%-30s : %s\n' "skip_igv" "${params.skip_igv}" + printf '%-30s : %s\n' "skip_multiqc" "${params.skip_multiqc}" + printf '%-30s : %s\n' "skip_qc" "${params.skip_qc}" + printf '%-30s : %s\n' "skip_ataqv" "${params.skip_ataqv}" + printf '%-30s : %s\n' "multiqc_methods_description" "${params.multiqc_methods_description}" + """ +} + +process PARAMS { + input: + val validate_params + + output: + stdout + + script: + """ + + echo \"${validate_params}\" | sed "s/, / /g" | tr -d "[" | tr -d "]" | tr -d "{" | tr -d "}" | sed "s/--source_entrypoint ${params.source_entrypoint} //g" | tr -d "\\n" + + """ +} + +process RUN_SOURCE { + publishDir params.results, mode: 'copy' + + input: + file inputfile + file reads + val options + + output: + file("nfcore_atacseq_runner.out") + path("nfcore_output/bwa/") + path("nfcore_output/fastqc/") + path("nfcore_output/genome/") + path("nfcore_output/igv/") + path("nfcore_output/multiqc/") + path("nfcore_output/pipeline_info/") + path("nfcore_output/trimgalore/") + + script: + """ + module load ${params.singularity} + + Cmd="$baseDir/../workflow/external_repo/nfcore_atacseq_runner/${params.source_entrypoint} --workdir ${baseDir} ${options}" + + echo "The command passed to runner is:" + echo "" + echo "\${Cmd}" + echo "" + + # run the command + eval \${Cmd} &> nfcore_atacseq_runner.out + + """ +}