From 93e24e418eafba95827078676363575e67e62dbe Mon Sep 17 00:00:00 2001
From: Kenzo-Hugo Hillion <hillion.kenzo@gmail.com>
Date: Mon, 2 Aug 2021 12:12:19 +0200
Subject: [PATCH] start bedtools bamtofastq

---
 tools/bedtools/bamtofastq_pairs/Snakefile     | 24 +++++++++++++++++++
 .../bamtofastq_pairs/example_usage/Snakefile  | 19 +++++++++++++++
 .../example_usage/config.yaml                 | 14 +++++++++++
 .../example_usage/Snakefile                   |  2 +-
 4 files changed, 58 insertions(+), 1 deletion(-)
 create mode 100644 tools/bedtools/bamtofastq_pairs/Snakefile
 create mode 100644 tools/bedtools/bamtofastq_pairs/example_usage/Snakefile
 create mode 100644 tools/bedtools/bamtofastq_pairs/example_usage/config.yaml

diff --git a/tools/bedtools/bamtofastq_pairs/Snakefile b/tools/bedtools/bamtofastq_pairs/Snakefile
new file mode 100644
index 0000000..55878f8
--- /dev/null
+++ b/tools/bedtools/bamtofastq_pairs/Snakefile
@@ -0,0 +1,24 @@
+__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 = __bedtools_bamtofastq_pairs_output_forward,
+        reverse = __bedtools_bamtofastq_pairs_output_reverse
+    params:
+        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 {output.forward}.fastq -fq2 {output.reverse}.fastq"
+        )
+        command.append("gunzip {output}_1.fastq")
+        command.append("gunzip {output}_2.fastq")
+        shell(" && ".join(command))
\ No newline at end of file
diff --git a/tools/bedtools/bamtofastq_pairs/example_usage/Snakefile b/tools/bedtools/bamtofastq_pairs/example_usage/Snakefile
new file mode 100644
index 0000000..11262fc
--- /dev/null
+++ b/tools/bedtools/bamtofastq_pairs/example_usage/Snakefile
@@ -0,0 +1,19 @@
+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 = "{dir}/{{sample}}".format(dir=__bedtools_bamtofastq_pairs_output_dir, sample="{sample}")
+include: __bedtools_bamtofastq_pairs_rules
+
+rule all:
+    input: expand("{dir}/{{sample}}_unmapped.bam".format(dir=__bedtools_bamtofastq_pairs_output_dir), 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 0000000..b576b74
--- /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/example_usage/Snakefile b/tools/samtools/extract_unmapped_pairs/example_usage/Snakefile
index dabd02c..d998d29 100644
--- a/tools/samtools/extract_unmapped_pairs/example_usage/Snakefile
+++ b/tools/samtools/extract_unmapped_pairs/example_usage/Snakefile
@@ -16,4 +16,4 @@ __extract_unmapped_pairs_output = "{dir}/{{sample}}_unmapped.bam".format(dir=__e
 include: __extract_unmapped_pairs_rules
 
 rule all:
-    input: expand("{dir}/{{sample}}_unmapped.bam".format(dir=__input_dir), sample=SAMPLES)
+    input: expand("{dir}/{{sample}}_unmapped.bam".format(dir=__extract_unmapped_pairs_output_dir), sample=SAMPLES)
-- 
GitLab