Exemple #1
0
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()
Exemple #2
0
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)