diff --git a/src/nf_modules/picard/main.nf b/src/nf_modules/picard/main.nf
index ec8572ac72e4397fb8197ce7a5a821cbd7f7216e..0d385805b189d68aee30805263526686d9bed850 100644
--- a/src/nf_modules/picard/main.nf
+++ b/src/nf_modules/picard/main.nf
@@ -2,10 +2,14 @@ version = "2.18.11"
 container_url = "lbmc/picard:${version}"
 
 params.mark_duplicate = "VALIDATION_STRINGENCY=LENIENT REMOVE_DUPLICATES=true"
+params.mark_duplicate_out = ""
 process mark_duplicate {
   container = "${container_url}"
   label "big_mem_mono_cpus"
   tag "$file_id"
+  if (params.mark_duplicate_out != "") {
+    publishDir "results/${params.mark_duplicate_out}", mode: 'copy'
+  }
 
   input:
     tuple val(file_id), path(bam)
@@ -26,10 +30,14 @@ PicardCommandLine MarkDuplicates \
 }
 
 params.index_fasta = ""
+params.index_fasta_out = ""
 process index_fasta {
   container = "${container_url}"
   label "big_mem_mono_cpus"
   tag "$file_id"
+  if (params.index_fasta_out != "") {
+    publishDir "results/${params.index_fasta_out}", mode: 'copy'
+  }
 
   input:
     tuple val(file_id), path(fasta)
@@ -46,10 +54,14 @@ PicardCommandLine CreateSequenceDictionary \
 }
 
 params.index_bam = ""
+params.index_bam_out = ""
 process index_bam {
   container = "${container_url}"
   label "big_mem_mono_cpus"
   tag "$file_id"
+  if (params.index_bam_out != "") {
+    publishDir "results/${params.index_bam_out}", mode: 'copy'
+  }
 
   input:
     tuple val(file_id), path(bam)