Add option to compress fastq file
[htsworkflow.git] / htsworkflow / pipelines / desplit_fastq.py
index 85ad586691473b1e993e126c1a329bd99f4689b3..83a995588079f34088e5b07ac7d098bfb08b3072 100644 (file)
@@ -1,13 +1,14 @@
 #!/usr/bin/env python
 """Write fastq data from multiple compressed files into a single file
 """
-
+import bz2
+import gzip
 from glob import glob
 import os
 from optparse import OptionParser
 import sys
 
-from htsworkflow.version import version
+from htsworkflow.util.version import version
 from htsworkflow.util.opener import autoopen
 from htsworkflow.util.conversion import parse_slice
 
@@ -28,8 +29,13 @@ def main(cmdline=None):
         print (version())
         return 0
 
-    if opts.output is None:
-        output = open(opts.output, 'w')
+    if opts.output is not None:
+        if opts.bzip:
+            output = bz2.BZ2File(opts.output,'w')
+        elif opts.gzip:
+            output = gzip.GzipFile(opts.output, 'w')
+        else:
+            output = open(opts.output, 'w')
     else:
         output = sys.stdout
 
@@ -51,6 +57,10 @@ def make_parser():
     parser.add_option('-s', '--slice',
                       help="specify python slice, e.g. 0:75, 0:-1",
                       default=None)
+    parser.add_option('--gzip', default=False, action='store_true',
+                      help='gzip output')
+    parser.add_option('--bzip', default=False, action='store_true',
+                      help='bzip output')
     parser.add_option("--version", default=False, action="store_true",
                       help="report software version")
     return parser