def describe_fastq(filename): if preprocess_radtag_lane.smartopen(filename).read(1) == '@': lnum = 4 else: lnum = 1 baseQ = None fh = preprocess_radtag_lane.smartopen(filename) while baseQ is None: n,s,q = preprocess_radtag_lane.next_read_from_fh(fh) baseQ = preprocess_radtag_lane.get_baseQ(q) fh.close() return lnum,baseQ
import os,sys,numpy def describe_fastq(filename): if preprocess_radtag_lane.smartopen(filename).read(1) == '@': lnum = 4 else: lnum = 1 baseQ = None fh = preprocess_radtag_lane.smartopen(filename) while baseQ is None: n,s,q = preprocess_radtag_lane.next_read_from_fh(fh) baseQ = preprocess_radtag_lane.get_baseQ(q) fh.close() return lnum,baseQ fname,qualcut = sys.argv[1:] qualcut = float(qualcut) lnum,baseQ = describe_fastq(fname) fh = preprocess_radtag_lane.smartopen(fname) while 1: n,s,qs = preprocess_radtag_lane.next_read_from_fh(fh,lnum) if len(n) == 0: break qa = numpy.array([ord(c) - baseQ for c in qs]) if qa.mean() >= qualcut: print preprocess_radtag_lane.as_fq_line(n,s,qa,baseQ,lnum),
#!/usr/bin/env python import os, sys from radtag_denovo import preprocess_radtag_lane infile, outfile = sys.argv[1:] if not os.path.exists(os.path.dirname(outfile)): os.makedirs(os.path.dirname(outfile)) ifh = preprocess_radtag_lane.smartopen(infile) ofh = preprocess_radtag_lane.smartopen(outfile, "w") r = preprocess_radtag_lane.next_read_from_fh(ifh) while r[0]: r[0] = "%s %s:%s" % (tuple(r[0].rsplit(":", 2))) ofh.write(preprocess_radtag_lane.as_fq4_lines(*r)) r = preprocess_radtag_lane.next_read_from_fh(ifh) ifh.close() ofh.close()