.. _`bio/bamtools/filter_json`: BAMTOOLS FILTER WITH JSON ========================= .. image:: https://img.shields.io/github/issues-pr/snakemake/snakemake-wrappers/bio/bamtools/filter_json?label=version%20update%20pull%20requests :target: https://github.com/snakemake/snakemake-wrappers/pulls?q=is%3Apr+is%3Aopen+label%3Abio/bamtools/filter_json Filters BAM files with JSON-script for filtering parameters and rules. For more information about bamtools see `bamtools documentation `_ **URL**: https://github.com/pezmaster31/bamtools Example ------- This wrapper can be used in the following way: .. code-block:: python rule bamtools_filter_json: input: "{sample}.bam" output: "filtered/{sample}.bam" params: json="filtering-rules.json", region="" # optional parameter for defining a specific region, e.g. "chr1:500..chr3:750" log: "logs/bamtools/filtered/{sample}.log" wrapper: "v3.0.1/bio/bamtools/filter_json" Note that input, output and log file paths can be chosen freely. When running with .. code-block:: bash snakemake --use-conda the software dependencies will be automatically deployed into an isolated environment before execution. Notes ----- A complete usage documentation is available here: https://raw.githubusercontent.com/wiki/pezmaster31/bamtools/Tutorial_Toolkit_BamTools-1.0.pdf This tool/wrapper does not handle multi threading Software dependencies --------------------- * ``bamtools=2.5.2`` Input/Output ------------ **Input:** * bam files (.bam), must be in first position **Output:** * bam file (.bam), must be in first position Params ------ * ``json``: Path to filter file, json formatted. * ``region``: see documentation for more information about multiple formats. Authors ------- * Antonie Vietor Code ---- .. code-block:: python __author__ = "Antonie Vietor" __copyright__ = "Copyright 2020, Antonie Vietor" __email__ = "antonie.v@gmx.de" __license__ = "MIT" from snakemake.shell import shell log = snakemake.log_fmt_shell(stdout=False, stderr=True) region = snakemake.params.get("region") region_param = "" if region and region is not None: region_param = ' -region "' + region + '"' shell( "(bamtools filter" " -in {snakemake.input[0]}" " -out {snakemake.output[0]}" + region_param + " -script {snakemake.params.json}) {log}" ) .. |nl| raw:: html