def best_med_worst(f1s, c_test_genomes, tla_to_tnum):
	"""
	Get the best, median, and worst reconstructions from the test set, as measured by F1 score
	
	Arguments:
		f1s (list) -- test F1 scores
		c_test_genomes (list) -- tlas of genomes in the test set
		tla_to_tnum (dict) -- maps tla to tnum for each genome
		
	Returns:
		best (list) -- for the best reconstruction: index, tla, F1 score, tnum 
		median (list) -- for the median reconstruction: index, tla, F1 score, tnum
		worst (list) -- for the worst reconstruction: index, tla, F1 score, tnum
	"""
	idx_best = f1s.index(max(f1s))
	tla_best = c_test_genomes[idx_best]
	best = [idx_best, tla_best, f1s[idx_best], tla_to_tnum[tla_best]]
	
	# Get index of median F1 score
	f1s_sorted = sorted(f1s, reverse=True)
	idx_median = f1s.index(f1s_sorted[int(len(f1s_sorted)/2)])
	tla_median = c_test_genomes[idx_median]
	median = [idx_median, tla_median, f1s[idx_median], tla_to_tnum[tla_median]]
	
	idx_worst = f1s.index(min(f1s))
	tla_worst = c_test_genomes[idx_worst]
	worst = [idx_worst, tla_worst, f1s[idx_worst], tla_to_tnum[tla_worst]]
	
	return best, median, worst