diff --git a/workflow/main.nf b/workflow/main.nf index 4fa5d9f62bc75b3c283f39a07e1f8e849a294bef..4b1fa5bdbe6ef4c48f92a2f4d121d9a238be45f8 100644 --- a/workflow/main.nf +++ b/workflow/main.nf @@ -13,6 +13,7 @@ params.bwaIndex = params.genome ? params.genomes[ params.genome ].bwa ?: false : params.genomeSize = params.genome ? params.genomes[ params.genome ].genomesize ?: false : false params.chromSizes = params.genome ? params.genomes[ params.genome ].chromsizes ?: false : false params.cutoffRatio = 1.2 +params.outDir= "$outDir" // Check inputs if( params.bwaIndex ){ @@ -36,10 +37,11 @@ designFile = params.designFile genomeSize = params.genomeSize chromSizes = params.chromSizes cutoffRatio = params.cutoffRatio +outDir = params.outDir process checkDesignFile { - publishDir "$baseDir/output/design", mode: 'copy' + publishDir "$outDir/design", mode: 'copy' input: @@ -80,7 +82,7 @@ rawReads = designFilePaths process trimReads { tag "$sampleId-$replicate" - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: @@ -110,7 +112,7 @@ process trimReads { process alignReads { tag "$sampleId-$replicate" - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: @@ -141,7 +143,7 @@ process alignReads { process filterReads { tag "$sampleId-$replicate" - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: @@ -174,13 +176,13 @@ process filterReads { dedupReads .map{ sampleId, bam, bai, experimentId, biosample, factor, treatment, replicate, controlId -> "$sampleId\t$bam\t$bai\t$experimentId\t$biosample\t$factor\t$treatment\t$replicate\t$controlId\n"} -.collectFile(name:'design_dedup.tsv', seed:"sample_id\tbam_reads\tbam_index\texperiment_id\tbiosample\tfactor\ttreatment\treplicate\tcontrol_id\n", storeDir:"$baseDir/output/design") +.collectFile(name:'design_dedup.tsv', seed:"sample_id\tbam_reads\tbam_index\texperiment_id\tbiosample\tfactor\ttreatment\treplicate\tcontrol_id\n", storeDir:"$outDir/design") .into { dedupDesign; preDiffDesign } // Quality Metrics using deeptools process experimentQC { - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: @@ -202,7 +204,7 @@ process experimentQC { process convertReads { tag "$sampleId-$replicate" - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: @@ -231,7 +233,7 @@ process convertReads { process crossReads { tag "$sampleId-$replicate" - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: @@ -261,12 +263,12 @@ process crossReads { xcorDesign = xcorReads .map{ sampleId, seTagAlign, tagAlign, xcor, experimentId, biosample, factor, treatment, replicate, controlId -> "$sampleId\t$seTagAlign\t$tagAlign\t$xcor\t$experimentId\t$biosample\t$factor\t$treatment\t$replicate\t$controlId\n"} - .collectFile(name:'design_xcor.tsv', seed:"sample_id\tse_tag_align\ttag_align\txcor\texperiment_id\tbiosample\tfactor\ttreatment\treplicate\tcontrol_id\n", storeDir:"$baseDir/output/design") + .collectFile(name:'design_xcor.tsv', seed:"sample_id\tse_tag_align\ttag_align\txcor\texperiment_id\tbiosample\tfactor\ttreatment\treplicate\tcontrol_id\n", storeDir:"$outDir/design") // Make Experiment design files to be read in for downstream analysis process defineExpDesignFiles { - publishDir "$baseDir/output/design", mode: 'copy' + publishDir "$outDir/design", mode: 'copy' input: @@ -290,7 +292,7 @@ process poolAndPsuedoReads { tag "${experimentObjs.baseName}" - publishDir "$baseDir/output/design", mode: 'copy' + publishDir "$outDir/design", mode: 'copy' input: @@ -324,7 +326,7 @@ experimentRows = experimentPoolObjs process callPeaksMACS { tag "$sampleId-$replicate" - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: set sampleId, tagAlign, xcor, experimentId, biosample, factor, treatment, replicate, controlId, controlTagAlign from experimentRows @@ -352,12 +354,12 @@ process callPeaksMACS { peaksDesign = experimentPeaks .map{ sampleId, peak, fcSignal, pvalueSignal, experimentId, biosample, factor, treatment, replicate, controlId -> "$sampleId\t$peak\t$fcSignal\t$pvalueSignal\t$experimentId\t$biosample\t$factor\t$treatment\t$replicate\t$controlId\n"} - .collectFile(name:'design_peak.tsv', seed:"sample_id\tpeaks\tfc_signal\tpvalue_signal\texperiment_id\tbiosample\tfactor\ttreatment\treplicate\tcontrol_id\n", storeDir:"$baseDir/output/design") + .collectFile(name:'design_peak.tsv', seed:"sample_id\tpeaks\tfc_signal\tpvalue_signal\texperiment_id\tbiosample\tfactor\ttreatment\treplicate\tcontrol_id\n", storeDir:"$outDir/design") // Calculate Consensus Peaks process consensusPeaks { - publishDir "$baseDir/output/${task.process}", mode: 'copy' + publishDir "$outDir/${task.process}", mode: 'copy' input: