reconstruction = reconstruction / float(sum(reconstruction))
indicies = reconstruction.argsort()[::-1]
reference_files = []
for index in indicies:
    reference_files.append(CEs[index].input_file_name)
    if reconstruction[
            index] < eps:  # Add at leat one more index below the threshold (to make sure I don't have an empty list of indexes)
        break

print("Number of indicies to build: %d" % len(reference_files))

index_dir = "/scratch/temp/SNAP/"
out_dir = "/nfs1/Koslicki_Lab/koslickd/MinHash/Out/Temp/"
sample_file = "/nfs1/Koslicki_Lab/koslickd/MinHash/Data/SRR172902.fastq"

index_dirs = MH.build_references(reference_files, index_dir)
out_sam = "/nfs1/Koslicki_Lab/koslickd/MinHash/Out/Temp/out.sam"
t0 = timeit.default_timer()
MH.stream_align_single(index_dirs, sample_file, out_sam)
t1 = timeit.default_timer()
print("Alignment time: %f" % (t1 - t0))
pre, ext = os.path.splitext(out_sam)
out_fastq = pre + ".fastq"
MH.sam2fastq(out_sam, out_fastq)
outT1 = timeit.default_timer()
print("Total time: %f" % (outT1 - outT0))

# Clean up
os.remove(out_sam)
for index_dir in index_dirs:
    shutil.rmtree(index_dir)
# indicies = reconstruction.argsort()[-N:][::-1]
reconstruction = reconstruction/float(sum(reconstruction))
indicies = reconstruction.argsort()[::-1]
reference_files = []
for index in indicies:
    reference_files.append(CEs[index].input_file_name)
    if reconstruction[index] < eps:  # Add at leat one more index below the threshold (to make sure I don't have an empty list of indexes)
        break

print("Number of indicies to build: %d" % len(reference_files))

index_dir = "/scratch/temp/SNAP/"
out_dir = "/nfs1/Koslicki_Lab/koslickd/MinHash/Out/Temp/"
sample_file = "/nfs1/Koslicki_Lab/koslickd/MinHash/Data/SRR172902.fastq"

index_dirs = MH.build_references(reference_files, index_dir)
out_sam = "/nfs1/Koslicki_Lab/koslickd/MinHash/Out/Temp/out.sam"
t0 = timeit.default_timer()
MH.stream_align_single(index_dirs, sample_file, out_sam)
t1 = timeit.default_timer()
print("Alignment time: %f" % (t1-t0))
pre, ext = os.path.splitext(out_sam)
out_fastq = pre + ".fastq"
MH.sam2fastq(out_sam, out_fastq)
outT1 = timeit.default_timer()
print("Total time: %f" % (outT1-outT0))

# Clean up
os.remove(out_sam)
for index_dir in index_dirs:
    shutil.rmtree(index_dir)