def demultiplex(f, barcodes, extract_barcode): d = Demultiplexer(BarcodeWriterFactory(sys.argv[2]), barcodes, extract_barcode) f = SeqIO.parse_fastq(SeqIO.Open(input_file, "r")) cnt = 0 for record in f: cnt += 1 d.write(record) d.close() f.close()
def CollectBarcodes(f, extract_barcode): h = SeqIO.parse_fastq(SeqIO.Open(f, "r")) cnt = 0 counter = dict() for record in h: barcode = extract_barcode(record) if barcode not in counter: counter[barcode] = 0 counter[barcode] += 1 cnt += 1 if cnt == 100000: break return [barcode for barcode, count in counter.iteritems() if count >= 100]