def xsq_list(filename, count=False, minreads=-1, total=False): xsq = XSQFile(filename) print 'Tags: ' for tag in xsq.tags: t = xsq.tags[tag] if t.is_colorspace: print ' %s[cs/%s]' % (tag, t.prefix) else: print ' %s[nt]' % (tag,) print '' print 'Samples: ' acc = 0 try: for sample in xsq.get_samples(): desc = xsq.get_sample_desc(sample).strip() if count: readcount = xsq.get_read_count(sample) if readcount > minreads: pn = pretty_number(readcount) if sample != 'Unclassified': acc += readcount if desc: print ' %s (%s) %s' % (sample, desc, pn) else: print ' %s %s' % (sample, pn) else: if desc: print ' %s (%s)' % (sample, desc) else: print ' %s' % (sample, ) except KeyboardInterrupt: pass if count and total: print '' print ' Total reads => %s' % pretty_number(acc) print '' xsq.close()
def xsq_convert_all(filename, tags=None, force=False, suffix=None, noz=False, usedesc=False, minreads=0, fsuffix=None, unclassified=False, procs=1, tmpdir=None): xsq = XSQFile(filename) samples = [] for sample in xsq.get_samples(): fname = sample if not fsuffix: fsuffix = '' if usedesc: fname = xsq.get_sample_desc(sample) if not fname: fname = sample if fname == sample: sys.stderr.write('Sample: %s... ' % fname) else: sys.stderr.write('Sample: (%s) %s... ' % (sample, fname)) if noz: outname = '%s%s.fastq' % (fname, fsuffix) else: outname = '%s%s.fastq.gz' % (fname, fsuffix) if force or not os.path.exists(outname): if sample == 'Unclassified' and not unclassified: sys.stderr.write(' Skipping unclassified\n') continue count = xsq.get_read_count(sample) if count < minreads: sys.stderr.write(' Too few reads (%s)\n' % count) continue samples.append((sample, outname)) sys.stderr.write('\n') xsq.close() for sample, outname in samples: xsq_convert(filename, sample, tags, suffix, procs=procs, outname=outname, noz=noz, tmpdir=tmpdir)