diff --git a/tools/bedtools/bamtofastq_pairs/Snakefile b/tools/bedtools/bamtofastq_pairs/Snakefile
new file mode 100644
index 0000000000000000000000000000000000000000..fe282f17bc50a3a69c807257c3c35a1652e03426
--- /dev/null
+++ b/tools/bedtools/bamtofastq_pairs/Snakefile
@@ -0,0 +1,26 @@
+__bedtools_bamtofastq_pairs_bedtools_exec_command = config.get(
+    'bedtools_bamtofastq_pairs', {}
+).get('bedtools_exec_command', 'bedtools')
+__bedtools_bamtofastq_pairs_modules = config.get('bedtools_bamtofastq_pairs', {}).get('modules')
+
+rule bedtools_bamtofastq_pairs:
+    input:
+        __bedtools_bamtofastq_pairs_input
+    output:
+        forward = f"{__bedtools_bamtofastq_pairs_output_forward_name}.fq.gz",
+        reverse = f"{__bedtools_bamtofastq_pairs_output_reverse_name}.fq.gz"
+    params:
+        forward_name = __bedtools_bamtofastq_pairs_output_forward_name,
+        reverse_name = __bedtools_bamtofastq_pairs_output_reverse_name,
+        exec_command = __bedtools_bamtofastq_pairs_bedtools_exec_command,
+        modules = __bedtools_bamtofastq_pairs_modules
+    run:
+        command = []
+        if params.modules:
+        	command.append("module load {params.modules}")
+        command.append(
+            "{params.exec_command} bamtofastq -i {input} -fq {params.forward_name}.fq -fq2 {params.reverse_name}.fq"
+        )
+        command.append("gzip {params.forward_name}.fq")
+        command.append("gzip {params.reverse_name}.fq")
+        shell(" && ".join(command))
diff --git a/tools/bedtools/bamtofastq_pairs/example_usage/Snakefile b/tools/bedtools/bamtofastq_pairs/example_usage/Snakefile
new file mode 100644
index 0000000000000000000000000000000000000000..2e0552ab3a38ccdf40b41d71b210a6e34a514dd3
--- /dev/null
+++ b/tools/bedtools/bamtofastq_pairs/example_usage/Snakefile
@@ -0,0 +1,26 @@
+configfile: "config.yaml"
+
+# ==== Snakefile path ====
+__bedtools_bamtofastq_pairs_rules = config.get("snakefiles", {}).get("bedtools_bamtofastq_pairs")
+
+__main_output_dir = config.get('output_dir', 'output')
+
+# ==== Main config ====
+SAMPLES = config.get('samples')
+__input_dir = config.get('input_dir', 'data')
+
+# ==== Bedtools bamtofastq ====
+__bedtools_bamtofastq_pairs_output_dir = f"{__main_output_dir}/bedtools_bamtofastq_pairs"
+__bedtools_bamtofastq_pairs_input = "{dir}/{{sample}}.bam".format(dir=__input_dir, sample="{sample}")
+__bedtools_bamtofastq_pairs_output_forward_name = "{dir}/{{sample}}_1".format(
+    dir=__bedtools_bamtofastq_pairs_output_dir, sample="{sample}"
+)
+__bedtools_bamtofastq_pairs_output_reverse_name = "{dir}/{{sample}}_2".format(
+    dir=__bedtools_bamtofastq_pairs_output_dir, sample="{sample}"
+)
+include: __bedtools_bamtofastq_pairs_rules
+
+rule all:
+    input:
+        forward = expand(f"{__bedtools_bamtofastq_pairs_output_forward_name}.fq.gz", sample=SAMPLES),
+        reverse = expand(f"{__bedtools_bamtofastq_pairs_output_reverse_name}.fq.gz", sample=SAMPLES)
diff --git a/tools/bedtools/bamtofastq_pairs/example_usage/config.yaml b/tools/bedtools/bamtofastq_pairs/example_usage/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b576b74ae3d27956de6f027bb4cfe8d8a6e7edc3
--- /dev/null
+++ b/tools/bedtools/bamtofastq_pairs/example_usage/config.yaml
@@ -0,0 +1,14 @@
+snakefiles:
+    bedtools_bamtofastq_pairs: /pasteur/zeus/projets/p02/metasig/gitlab/snakemake/tools/bedtools/bamtofastq_pairs/Snakefile
+
+input_dir: /some/input/directory
+output_dir: /some/output/directory
+
+samples:
+- test_00000
+- test_00001
+- test_00002
+
+bedtools_bamtofastq_pairs:
+  bedtools_exec_command: bedtools
+  modules: bedtools
diff --git a/tools/samtools/extract_unmapped_pairs/Snakefile b/tools/samtools/extract_unmapped_pairs/Snakefile
new file mode 100644
index 0000000000000000000000000000000000000000..ddc24751218fa851b684eddb9b8852d225f74482
--- /dev/null
+++ b/tools/samtools/extract_unmapped_pairs/Snakefile
@@ -0,0 +1,25 @@
+__extract_unmapped_pairs_samtools_exec_command = config.get(
+    'extract_unmapped_pairs', {}
+).get('samtools_exec_command', 'samtools')
+__extract_unmapped_pairs_modules = config.get('extract_unmapped_pairs', {}).get('modules')
+
+rule extract_unmapped_pairs:
+    input:
+        __extract_unmapped_pairs_input
+    output:
+        __extract_unmapped_pairs_output
+    params:
+        exec_command = __extract_unmapped_pairs_samtools_exec_command,
+        modules = __extract_unmapped_pairs_modules
+    run:
+        command = []
+        if params.modules:
+        	command.append("module load {params.modules}")
+        command.append("{params.exec_command} view -u -f 4 -F 264 {input}  > {output}.tmps1.bam")
+        command.append("{params.exec_command} view -u -f 8 -F 260 {input}  > {output}.tmps2.bam")
+        command.append("{params.exec_command} view -u -f 12 -F 256 {input}  > {output}.tmps3.bam")
+        command.append(
+            "{params.exec_command} merge -u - {output}.tmps[123].bam | {params.exec_command} sort -n > {output}"
+        )
+        command.append("rm {output}.tmps[123].bam")
+        shell(" && ".join(command))
diff --git a/tools/samtools/extract_unmapped_pairs/example_usage/Snakefile b/tools/samtools/extract_unmapped_pairs/example_usage/Snakefile
new file mode 100644
index 0000000000000000000000000000000000000000..d998d299c59a1758b9315282a662b7c05ecf7636
--- /dev/null
+++ b/tools/samtools/extract_unmapped_pairs/example_usage/Snakefile
@@ -0,0 +1,19 @@
+configfile: "config.yaml"
+
+# ==== Snakefile path ====
+__extract_unmapped_pairs_rules = config.get("snakefiles", {}).get("extract_unmapped_pairs")
+
+__main_output_dir = config.get('output_dir', 'output')
+
+# ==== Main config ====
+SAMPLES = config.get('samples')
+__input_dir = config.get('input_dir', 'data')
+
+# ==== Extract unmapped pairs ====
+__extract_unmapped_pairs_output_dir = f"{__main_output_dir}/extract_unmapped_pairs"
+__extract_unmapped_pairs_input = "{dir}/{{sample}}.bam".format(dir=__input_dir, sample="{sample}")
+__extract_unmapped_pairs_output = "{dir}/{{sample}}_unmapped.bam".format(dir=__extract_unmapped_pairs_output_dir, sample="{sample}")
+include: __extract_unmapped_pairs_rules
+
+rule all:
+    input: expand("{dir}/{{sample}}_unmapped.bam".format(dir=__extract_unmapped_pairs_output_dir), sample=SAMPLES)
diff --git a/tools/samtools/extract_unmapped_pairs/example_usage/config.yaml b/tools/samtools/extract_unmapped_pairs/example_usage/config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d0bffdd33d7205208c326397b7b8848b6e99a9c9
--- /dev/null
+++ b/tools/samtools/extract_unmapped_pairs/example_usage/config.yaml
@@ -0,0 +1,14 @@
+snakefiles:
+    extract_unmapped_pairs: /pasteur/zeus/projets/p02/metasig/gitlab/snakemake/tools/samtools/extract_unmapped_pairs/Snakefile
+
+input_dir: /some/input/directory
+output_dir: /some/output/directory
+
+samples:
+- test_00000
+- test_00001
+- test_00002
+
+extract_unmapped_pairs:
+  samtools_exec_command: samtools
+  modules: samtools