diff --git a/src/nf_modules/minimap2/main.nf b/src/nf_modules/minimap2/main.nf
new file mode 100644
index 0000000000000000000000000000000000000000..73dc0e34560110c010da21bd6b3154beac131535
--- /dev/null
+++ b/src/nf_modules/minimap2/main.nf
@@ -0,0 +1,50 @@
+version = "2.17"
+container_url = "lbmc/minimap2:${version}"
+
+process index_fasta {
+  container = "${container_url}"
+  label "big_mem_multi_cpus"
+  tag "$fasta.baseName"
+
+  input:
+    path fasta
+
+  output:
+    tuple path("${fasta}"), path("*.mmi*"), emit: index
+    path "*_report.txt", emit: report
+
+  script:
+  memory = "${task.memory}" - ~/\s*GB/
+"""
+minimap2 -t ${task.cpus} -I ${memory}G -d ${fasta.baseName}.mmi ${fasta}
+"""
+}
+
+
+process mapping_fastq {
+  container = "${container_url}"
+  label "big_mem_multi_cpus"
+  tag "$pair_id"
+
+  input:
+  tuple path(fasta), path(index)
+  tuple val(pair_id), path(reads)
+
+  output:
+  tuple val(pair_id), path("*.bam"), emit: bam
+  path "*_report.txt", emit: report
+
+  script:
+  memory = "${task.memory}" - ~/\s*GB/
+  memory = memory / (task.cpus + 1.0)
+if (reads instanceof List)
+"""
+minimap2 -ax sr -t ${task.cpus} -K ${memory} ${fasta} ${reads[0]} ${reads[1]} |
+  samtools view -Sb - > ${pair_id}.bam
+"""
+else
+"""
+minimap2 -ax sr -t ${task.cpus} -K ${memory} ${fasta} ${reads} |
+  samtools view -Sb - > ${reads.baseName}.bam
+"""
+}
\ No newline at end of file