-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathfastq_quality_change.py
executable file
·50 lines (41 loc) · 1.64 KB
/
fastq_quality_change.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env python
from optparse import OptionParser
################################################################################
# fastq_quality_change.py
#
# Change the quality value ascii index for a fastq file.
#
# Author: David Kelley [email protected]
################################################################################
################################################################################
# main
################################################################################
def main():
usage = 'usage: %prog [options] <fastq file>'
parser = OptionParser(usage)
parser.add_option('-a', dest='after', type='int', help='Desired fastq quality ascii index')
parser.add_option('-b', dest='before', type='int', help='Current fastq quality ascii index')
(options,args) = parser.parse_args()
if options.after == None or options.before == None:
parser.error('Must provide before and after ascii indexes')
if len(args) != 1:
parser.error('Must provide fastq file')
else:
fastq_file = args[0]
fq_in = open(fastq_file)
header = fq_in.readline()
while header:
seq = fq_in.readline()
mid = fq_in.readline()
qual = fq_in.readline()
print header,
print seq,
print mid,
print ''.join([chr(ord(q)-options.before+options.after) for q in qual])
header = fq_in.readline()
fq_in.close()
################################################################################
# __main__
################################################################################
if __name__ == '__main__':
main()