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