def processHits(inp_dict):
	out_dict = dict()
	total_hits = np.array(inp_dict.values()).sum(axis=0)
	if total_hits.shape is (): return out_dict, 0, 0
	n_f1_hits = total_hits[0]
	n_f2_hits = total_hits[1]
	tasks = [[idx,hits,n_f1_hits,n_f2_hits] for idx, hits in inp_dict.iteritems()]
	pool = Pool(processes=N_cores)  # set up resources
	jobs = pool.imap_unordered(doHitProcess, tasks)
	for i, result in enumerate(jobs):
		percent = (float(i)/float(len(tasks)))*100 + 1
		sys.stdout.write(" Calculating Fisher's test: %3d%%\r" % percent)
		sys.stdout.flush()
		if result is None: continue
		out_dict[result[0]] = result[1:]
	return out_dict, n_f1_hits, n_f2_hits