def test_write_counts_file(self): """BarcodeCounter: write counts to a file """ # Write a file self._make_working_dir() bc = BarcodeCounter() bc.count_barcode("TATGCGCGGTA",lane=1,incr=285302) bc.count_barcode("TATGCGCGGTG",lane=1,incr=532) bc.count_barcode("ACCTACCGGTA",lane=1,incr=315) bc.count_barcode("CCCTTATGCGA",lane=1,incr=22) bc.count_barcode("ACCTAGCGGTA",lane=2,incr=477) bc.count_barcode("ACCTCTATGCT",lane=2,incr=368) bc.count_barcode("ACCCTNCGGTA",lane=3,incr=312) bc.count_barcode("ACCTTATGCGC",lane=3,incr=248) counts_file = os.path.join(self.wd,"out.counts") bc.write(counts_file) expected_contents = """#Lane Rank Sequence Count 1 1 TATGCGCGGTA 285302 1 2 TATGCGCGGTG 532 1 3 ACCTACCGGTA 315 1 4 CCCTTATGCGA 22 2 1 ACCTAGCGGTA 477 2 2 ACCTCTATGCT 368 3 1 ACCCTNCGGTA 312 3 2 ACCTTATGCGC 248 """ self.assertTrue(os.path.exists(counts_file)) self.assertEqual(open(counts_file,'r').read(), expected_contents)
mismatches=opts.mismatches, reporter=reporter) else: for lane in lanes: if lane not in counts.lanes: logging.error("Requested analysis for lane %d but " "only have counts for lanes %s" % (lane, ','.join([str(l) for l in counts.lanes]))) sys.exit(1) report_barcodes(counts, lane=lane, cutoff=cutoff, sample_sheet=opts.sample_sheet, mismatches=opts.mismatches, reporter=reporter) if opts.report_file is not None: print "Writing report to %s" % opts.report_file reporter.write(filen=opts.report_file) else: reporter.write() if opts.xls_file is not None: print "Writing XLS to %s" % opts.xls_file reporter.write_xls(opts.xls_file) if opts.html_file is not None: print "Writing HTML to %s" % opts.html_file reporter.write_html(opts.html_file) # Output counts if requested if opts.counts_file_out is not None: counts.write(opts.counts_file_out)
report_barcodes(counts, cutoff=cutoff, sample_sheet=opts.sample_sheet, mismatches=opts.mismatches, reporter=reporter) else: for lane in lanes: if lane not in counts.lanes: logging.error("Requested analysis for lane %d but " "only have counts for lanes %s" % (lane, ','.join([str(l) for l in counts.lanes]))) sys.exit(1) report_barcodes(counts, lane=lane, cutoff=cutoff, sample_sheet=opts.sample_sheet, mismatches=opts.mismatches, reporter=reporter) if opts.report_file is not None: print "Writing report to %s" % opts.report_file reporter.write(filen=opts.report_file) else: reporter.write() if opts.xls_file is not None: print "Writing XLS to %s" % opts.xls_file reporter.write_xls(opts.xls_file) # Output counts if requested if opts.counts_file_out is not None: counts.write(opts.counts_file_out)