def parseClusterResult(result_file):
	table = {}
	transformer = BitWiseTransformer()
	count = 0  
	header = ''
	for line in open(result_file, 'r'):
		count = count + 1	
		if count == 1:
			print(line)
			header = line.strip()
			continue
		parts = line.strip().split(',')
		kmer = transformer.bitwise(int(parts[2]), 20)
		if kmer in table:
			print(','.join(table[kmer]))
			print(line)
			raise RuntimeError("duplicate found!\n")
		else:
			table[kmer] = parts
	return (header,table)			
def transform_2_seq(count_table_file, skip = 0):
	table = {}
	transformer = BitWiseTransformer()
	count = 0
	for line in open(count_table_file,'r'):
		count = count + 1
		if count <= skip:
			continue 
		if ',' in line:
			l = line.strip().split(',')
		else:
			l = line.strip().split('\t')
		if len(l) == 3:
			kmer = transformer.bitwise(int(l[0]),int(l[1]))
		else:
			kmer = transformer.bitwise(int(l[0]), 20)
		if kmer in table:
			print(','.join(table[kmer]))
			print(line)
			raise RuntimeError("duplicate found")
		else:
			table[kmer] = l
	return table
#!/usr/bin/python
from bitwise import BitWiseTransformer
def extract_barcode(f,b_len):
	table = {}
	count = 0
	for line in open(f, 'r'):
		count = count + 1
		if count == 1:
			continue
		parts = line.strip().split(',')
		try:
			if int(parts[1]) == b_len:
				table[parts[0]] =parts[2]
		except Exception as err:
			print(parts[1])
			print(parts)
		
	return table

if __name__ == '__main__':
	f = "../data/single_end_data/single_end_data_count.csv"
	table = extract_barcode(f, 20)
	output = open('../data/single_end_data/single_end_data_20_count.csv','w')
	trans = BitWiseTransformer()
	for k,v in table.items():
		output.write(k + ',' + trans.bitwise(int(k),20) + ',' + v + '\n')
	output.close()
	
	
	
def primers(f, l = 10):
	result = []
	bt = BT()
	for i in range(f):
		result.append(bt.bitwise(i, l))
	return result