diff --git a/src/nf_modules/kallisto/main.nf b/src/nf_modules/kallisto/main.nf
index 2a0c1ed1b3716b7c2e414c6123f5e5d8a26b816b..19087331e06f9d52d5bf44bf65e168ff1f08d60f 100644
--- a/src/nf_modules/kallisto/main.nf
+++ b/src/nf_modules/kallisto/main.nf
@@ -2,17 +2,21 @@ version = "0.44.0"
 container_url = "lbmc/kallisto:${version}"
 
 params.index_fasta = "-k 31 --make-unique"
+params.index_fasta_out = ""
 process index_fasta {
   container = "${container_url}"
   label "big_mem_multi_cpus"
-  tag "$fasta.baseName"
+  tag "$file_id"
+  if (params.index_fasta_out != "") {
+    publishDir "results/${params.index_fasta_out}", mode: 'copy'
+  }
 
   input:
-    path fasta
+    tuble val(file_id), path(fasta)
 
   output:
-    path "*.index*", emit: index
-    path "*_report.txt", emit: report
+    tuple val(file_id), path("*.index*"), emit: index
+    tuple val(file_id), path("*_report.txt"), emit: report
 
   script:
 """
@@ -22,18 +26,22 @@ kallisto index ${params.index_fasta} -i ${fasta.baseName}.index ${fasta} \
 }
 
 params.mapping_fastq = "--bias --bootstrap-samples 100"
+params.mapping_fastq_out = ""
 process mapping_fastq {
   container = "${container_url}"
   label "big_mem_multi_cpus"
   tag "$pair_id"
+  if (params.mapping_fastq_out != "") {
+    publishDir "results/${params.mapping_fastq_out}", mode: 'copy'
+  }
 
   input:
-  path index
+  tuple val(index_id), path(index)
   tuple val(pair_id), path(reads)
 
   output:
-  path "${pair_id}", emit: counts
-  path "*_report.txt", emit: report
+  tuple val(pair_id), path("${pair_id}"), emit: counts
+  tuple val(pair_id), path("*_report.txt"), emit: report
 
   script:
 
@@ -55,18 +63,22 @@ ${reads} &> ${reads.simpleName}_kallisto_mapping_report.txt
 }
 
 params.mapping_fastq_pairedend = "--bias --bootstrap-samples 100"
+params.mapping_fastq_pairedend_out = ""
 process mapping_fastq_pairedend {
   container = "${container_url}"
   label "big_mem_multi_cpus"
   tag "$pair_id"
+  if (params.mapping_fastq_pairedend_out != "") {
+    publishDir "results/${params.mapping_fastq_pairedend_out}", mode: 'copy'
+  }
 
   input:
-  path index
+  tuple val(index_id), path(index)
   tuple val(pair_id), path(reads)
 
   output:
-  path "${pair_id}", emit: counts
-  path "*_report.txt", emit: report
+  tuple val(pair_id), path("${pair_id}"), emit: counts
+  tuple val(pair_id), path("*_report.txt"), emit: report
 
   script:
 """
@@ -79,18 +91,22 @@ ${reads[0]} ${reads[1]} &> ${pair_id}_kallisto_mapping_report.txt
 
 
 params.mapping_fastq_singleend = "--bias --bootstrap-samples 100"
+params.mapping_fastq_singleend_out = ""
 process mapping_fastq_singleend {
   container = "${container_url}"
   label "big_mem_multi_cpus"
   tag "$file_id"
+  if (params.mapping_fastq_singleend_out != "") {
+    publishDir "results/${params.mapping_fastq_singleend_out}", mode: 'copy'
+  }
 
   input:
-  path index
+  tuple val(index_id), path(index)
   tuple val(file_id), path(reads)
 
   output:
   tuple val(file_id), path("${pair_id}"), emit: counts
-  path "*_report.txt", emit: report
+  tuple val(file_id), path("*_report.txt"), emit: report
 
   script:
 """