Esempio n. 1
0
class TestDisplayResults(TestCaseSuppressOutput):
    samples = list(get_samples(controls, sample_groups, qadata, matrix))

    def test01(self):
        display_results(self.samples, sys.stdout)

    def test02(self):
        display_results(self.samples, sys.stdout, style='file')

    def test03(self):
        display_results(self.samples, sys.stdout, grouped=False)
Esempio n. 2
0
def action(args):

    controls, sample_groups = get_input(args.infile, split_description = args.split_desc)
    qadata = qa_from_csv(qafile)
    matrix = read_matrix(matrix_file)

    style = 'screen' if args.outfile == sys.stdout else 'file'
    outfile = get_outfile(args, label = 'results', ext = 'csv')
    
    if args.calculate_ion_ratios:
        qadata = add_ion_ratios(qadata, controls)

    samples = get_samples(controls, sample_groups, qadata, matrix)
    display_results(samples, outfile, style = style, grouped = args.grouped)

    if args.outfile is None:
        outfile.close()
Esempio n. 3
0
def action(args):
    matrix = read_matrix(matrix_file)
    qadata = qa_from_csv(qafile)
    compound_ids, compound_codes = map(list, zip(*COMPOUND_CODES))

    writer = csv.DictWriter(
        args.outfile if hasattr(args.outfile, 'write') else open(args.outfile, 'w'),
        fieldnames = ['infile','label'] + compound_ids,
        extrasaction = 'ignore')

    # create headers for the first row
    d = dict(label = 'label', infile = 'infile')
    d.update(dict(COMPOUND_CODES))
    writer.writerow(d)

    counter = count(1)
    seen = defaultdict(list) # keep only the first instance of each accession
    for infile in args.infiles:    
        d = dict(infile = infile)
        controls, sample_groups = get_input(infile, split_description = args.split_desc)
        if args.calculate_ion_ratios:
            qadata = add_ion_ratios(qadata.copy(), controls)
            patient_samples = get_samples(controls, sample_groups, qadata, matrix, quantitative = True)
            
        for samples in patient_samples:
            samples = list(samples)
            # exclude any malformed samples
            if any(any(c.malformed for c in sample.compounds.values()) for sample in samples):
                log.warning('malformed samples in %s' % infile)
                continue
            # keep only the first instance of each sample
            if samples[0].row_label() not in seen:
                d['label'] = samples[0].row_label() if args.keep_phi else counter.next()
                d.update(dict((s.COMPOUND_id, s.result) for s in samples))
                writer.writerow(sanitize(d))
            seen[samples[0].row_label()].append(infile)
Esempio n. 4
0
 def test01(self):
     _qadata = add_ion_ratios(qadata, controls)
     rows = get_samples(controls, sample_groups, _qadata, matrix)
     rows.next()
Esempio n. 5
0
 def test01(self):
     _qadata = add_ion_ratios(qadata, controls)
     rows = get_samples(controls, sample_groups, _qadata, matrix)
     rows.next()