1 '''summarize fastq file
6 def summarize_hiseq_fastq(stream):
11 eol_length = len(os.linesep)
13 for i, line in enumerate(stream):
15 # header looks like this
16 # @HWI-ST0787:114:D0PMDACXX:8:1101:1605:2154 1:N:0:TAGCTT
17 # we want the :N (passed filter) or :Y (failed filter)
19 # if flag is 'N' we are not a bad read
20 bad_read = False if line[line.rfind(' ') + 3] == 'N' else True
27 # don't include bad reads in score
28 # score = numpy.asarray(list(line.rstrip()), dtype='c') # 3.5 min
29 #score = numpy.asarray(line[:-eol_length], dtype='c') # 2 min
30 score = numpy.asarray(line[:-eol_length], dtype='c') # 1.4 min
31 score.dtype = numpy.int8
34 mean = numpy.zeros(len(score), dtype=numpy.float)
37 mean = mean + delta / pass_qc
39 return (reads, pass_qc, mean)
41 if __name__ == '__main__':
43 with open(sys.argv[1], 'r') as instream:
44 print summarize_hiseq_fastq(instream)