diff --git a/bio/bgzip/environment.yaml b/bio/bgzip/environment.yaml new file mode 100644 index 0000000000..f27f875d41 --- /dev/null +++ b/bio/bgzip/environment.yaml @@ -0,0 +1,5 @@ +channels: + - bioconda + - conda-forge +dependencies: + - htslib ==1.12 diff --git a/bio/bgzip/meta.yaml b/bio/bgzip/meta.yaml new file mode 100644 index 0000000000..3e00c9514b --- /dev/null +++ b/bio/bgzip/meta.yaml @@ -0,0 +1,9 @@ +name: bgzip +description: Block compression/decompression utility +url: https://github.com/samtools/htslib +authors: + - William Rowell +input: + - file to be compressed or decompressed +output: + - compressed or decompressed output \ No newline at end of file diff --git a/bio/bgzip/test/Snakefile b/bio/bgzip/test/Snakefile new file mode 100644 index 0000000000..45331f400d --- /dev/null +++ b/bio/bgzip/test/Snakefile @@ -0,0 +1,12 @@ +rule bgzip: + input: + "{prefix}.vcf", + output: + "{prefix}.vcf.gz", + params: + extra="", # optional + threads: 1 + log: + "logs/bgzip/{prefix}.log", + wrapper: + "master/bio/bgzip" diff --git a/bio/bgzip/test/test.vcf b/bio/bgzip/test/test.vcf new file mode 100644 index 0000000000..11b5400ee2 --- /dev/null +++ b/bio/bgzip/test/test.vcf @@ -0,0 +1,23 @@ +##fileformat=VCFv4.0 +##fileDate=20090805 +##source=https://www.internationalgenome.org/wiki/Analysis/vcf4.0/ +##reference=1000GenomesPilot-NCBI36 +##phasing=partial +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##FILTER= +##FILTER= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003 +20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,. +20 17330 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3 +20 1110696 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4 +20 1230237 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2 +20 1234567 microsat1 GTCT G,GTACT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3 diff --git a/bio/bgzip/wrapper.py b/bio/bgzip/wrapper.py new file mode 100644 index 0000000000..cb121ea66b --- /dev/null +++ b/bio/bgzip/wrapper.py @@ -0,0 +1,17 @@ +__author__ = "William Rowell" +__copyright__ = "Copyright 2020, William Rowell" +__email__ = "wrowell@pacb.com" +__license__ = "MIT" + + +from snakemake.shell import shell + +extra = snakemake.params.get("extra", "") +log = snakemake.log_fmt_shell(stdout=True, stderr=True) + +shell( + """ + (bgzip -c {extra} --threads {snakemake.threads} \ + {snakemake.input} > {snakemake.output}) {log} + """ +) diff --git a/test.py b/test.py index c093b573c4..aa7f349587 100644 --- a/test.py +++ b/test.py @@ -919,6 +919,14 @@ def test_bedtools_slop(): ) +@skip_if_not_modified +def test_bgzip(): + run( + "bio/bgzip", + ["snakemake", "--cores", "1", "test.vcf.gz", "--use-conda", "-F"] + ) + + @skip_if_not_modified def test_blast_makeblastdb_nucleotide(): run(