BCFTOOLS FILTER¶
filter vcf/bcf file.
Example¶
This wrapper can be used in the following way:
rule bcf_filter_o_vcf:
input:
"{prefix}.bcf",
output:
"{prefix}.filter.vcf",
log:
"log/{prefix}.filter.vcf.log",
params:
filter="-i 'QUAL > 5'",
extra="",
wrapper:
"0.73.0/bio/bcftools/filter"
rule bcf_filter_o_vcf_gz:
input:
"{prefix}.bcf",
output:
"{prefix}.filter.vcf.gz",
log:
"log/{prefix}.filter.vcf.gz.log",
params:
filter="-i 'QUAL > 5'",
extra="",
wrapper:
"0.73.0/bio/bcftools/filter"
rule bcf_filter_o_bcf:
input:
"{prefix}.bcf",
output:
"{prefix}.filter.bcf",
log:
"log/{prefix}.filter.bcf.log",
params:
filter="-i 'QUAL > 5'",
extra="",
wrapper:
"0.73.0/bio/bcftools/filter"
rule bcf_filter_o_bcf_gz:
input:
"{prefix}.bcf",
output:
"{prefix}.filter.bcf.gz",
log:
"log/{prefix}.filter.bcf.gz.log",
params:
filter="-i 'QUAL > 5'",
extra="",
wrapper:
"0.73.0/bio/bcftools/filter"
Note that input, output and log file paths can be chosen freely. When running with
snakemake --use-conda
the software dependencies will be automatically deployed into an isolated environment before execution.
Software dependencies¶
bcftools==1.9
Authors¶
- Patrik Smeds
Code¶
__author__ = "Patrik Smeds"
__copyright__ = "Copyright 2021, Patrik Smeds"
__email__ = "patrik.smeds@scilifelab.uu.se"
__license__ = "MIT"
from snakemake.shell import shell
log = snakemake.log_fmt_shell(stdout=False, stderr=True)
if snakemake.output[0].endswith("bcf"):
output_format = "-Ou"
elif snakemake.output[0].endswith("bcf.gz"):
output_format = "-Ob"
elif snakemake.output[0].endswith("vcf"):
output_format = "-Ov"
elif snakemake.output[0].endswith("vcf.gz"):
output_format = "-Oz"
if len(snakemake.input) > 1:
raise Exception("Only one input file expected, got: " + str(len(snakemake.input)))
if len(snakemake.output) > 1:
raise Exception("Only one output file expected, got: " + str(len(snakemake.output)))
filter = snakemake.params.get("filter", "")
extra = snakemake.params.get("extra", "")
shell(
"bcftools filter {filter} {extra} {snakemake.input[0]} "
"{output_format} "
"-o {snakemake.output[0]} "
"{log}"
)