|
4 | 4 | from __future__ import with_statement |
5 | 5 | import sys |
6 | 6 | import argparse |
7 | | -import utils |
8 | 7 | from Bio import SeqIO |
9 | 8 | import numpy as np |
| 9 | +import bz2 |
| 10 | +import gzip |
| 11 | + |
| 12 | + |
| 13 | +def openr(fn, mode="r"): |
| 14 | + if fn is None: |
| 15 | + return sys.stdin |
| 16 | + |
| 17 | + if fn.endswith(".bz2"): |
| 18 | + if sys.version_info[0] < 3: |
| 19 | + return bz2.BZ2File(fn) |
| 20 | + else: |
| 21 | + return bz2.open(fn, 'rt') |
| 22 | + elif fn.endswith(".gz"): |
| 23 | + if sys.version_info[0] < 3: |
| 24 | + return None # need to check if gzip is different in Python2 |
| 25 | + else: |
| 26 | + return gzip.open(fn, 'rt') |
| 27 | + else: |
| 28 | + return open(fn, mode) |
| 29 | + |
| 30 | + |
| 31 | +def openw(fn): |
| 32 | + if fn is None: |
| 33 | + return sys.stdout |
| 34 | + |
| 35 | + if fn.endswith(".bz2"): |
| 36 | + if sys.version_info[0] < 3: |
| 37 | + return bz2.BZ2File(fn, "w") |
| 38 | + else: |
| 39 | + return bz2.open(fn, 'wt') |
| 40 | + elif fn.endswith(".gz"): |
| 41 | + if sys.version_info[0] < 3: |
| 42 | + return None # need to check if gzip is different in Python2 |
| 43 | + else: |
| 44 | + return gzip.open(fn, 'wt') |
| 45 | + else: |
| 46 | + return open(fn, "w") |
10 | 47 |
|
11 | 48 |
|
12 | 49 | def read_params(): |
@@ -43,8 +80,8 @@ def read_params(): |
43 | 80 | samplename = 'stdin' |
44 | 81 | samplename += '_fastq' if par['q'] else '_fasta' |
45 | 82 |
|
46 | | - with utils.openw(par['out_f']) as outf: |
47 | | - for r in SeqIO.parse(utils.openr(par['inp_f']), "fastq" if par['q'] else "fasta"): |
| 83 | + with openw(par['out_f']) as outf: |
| 84 | + for r in SeqIO.parse(openr(par['inp_f']), "fastq" if par['q'] else "fasta"): |
48 | 85 | lenn = len(r.seq) |
49 | 86 |
|
50 | 87 | if par['stat'] or par['total']: |
|
0 commit comments