#!/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
return 0
if opts.output is not None:
- output = open(opts.output, 'w')
+ 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
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
This is here so we can run via threading/multiprocessing APIs
"""
state = SEQ_HEADER
+ files_read = 0
for stream in self.sources:
+ files_read += 1
for line in stream:
line = line.rstrip()
if state == SEQ_HEADER:
state = SEQ_HEADER
self.destination.write(os.linesep)
+ if files_read == 0:
+ raise RuntimeError("No files processed")
if __name__ == "__main__":
main()