diff --git a/src/nf_modules/g2gtools/main.nf b/src/nf_modules/g2gtools/main.nf
index 128e51234632376fbea75e95fe483e2823da1895..39a1c7e609acf0fea5795dd8660dca4f418fc26f 100644
--- a/src/nf_modules/g2gtools/main.nf
+++ b/src/nf_modules/g2gtools/main.nf
@@ -8,9 +8,9 @@ process vci_build {
 
   input:
     tuple val(file_id), path(vcf)
-    tuple val(ref_id), path(fasta), path(fai), path(dict)
+    tuple val(ref_id), path(fasta)
   output:
-    tuple val(file_id), path("*.chain"), emit: vci
+    tuple val(file_id), path("*.vci.gz"), emit: vci
   script:
 """
 g2gtools vcf2vci \
@@ -18,6 +18,45 @@ g2gtools vcf2vci \
   -f ${fasta} \
   -i ${vcf} \
   -s ${file_id} \
-  -o ${file_id}.vci
+  -o ${file_id}.vci.gz
+"""
+}
+
+process incorporate_snp {
+  container = "${container_url}"
+  label "big_mem_multi_cpus"
+  tag "$file_id"
+
+  input:
+    tuple val(file_id), path(vci)
+    tuple val(ref_id), path(fasta)
+  output:
+    tuple val(file_id), path("${file_id}_snp.fasta"), path("${vci}"), emit: fasta
+  script:
+"""
+g2gtools patch \
+  -p ${task.cpus} \
+  -i ${fasta} \
+  -c ${vci} \
+  -o ${file_id}_snp.fasta
+"""
+}
+
+process incorporate_indel {
+  container = "${container_url}"
+  label "big_mem_multi_cpus"
+  tag "$file_id"
+
+  input:
+    tuple val(file_id), path(fasta), path(vci)
+  output:
+    tuple val(file_id), path("${file_id}_snp_indel.fasta"), path("${vci}"), emit: fasta
+  script:
+"""
+g2gtools transform \
+  -p ${task.cpus} \
+  -i ${fasta} \
+  -c ${vci} \
+  -o ${file_id}_snp_indel.fasta
 """
 }
\ No newline at end of file