def pool_func(filename):
    curr_DIR = DIR + filename
    os.chdir(curr_DIR)
    reads = parser.parse_fasta(filename)
    scores = computealignment.compute_scores(reads, filename)
    computealignment.write_align_file(filename, scores)
    createtsp.write_full_atsp(filename, len(reads), scores)
def write_fasta_stat(fasta_file, ref_file):
    with open(ref_file, 'r') as f:
        ref_seq = f.read()
        ref_length = len(ref_seq)

    reads = parse_fasta(fasta_file)
    read_lengths = [len(read) for read in reads]

    with open(fasta_file.split('reads.fasta')[0] + "fasta.stat", "w") as handle:
        real_coverage = sum([x for x in read_lengths]) / ref_length
        nr_reads = len(read_lengths)
        average = sum([x for x in read_lengths]) / len(read_lengths)
        median = sorted([x for x in read_lengths])[len(read_lengths) // 2]
        shortest = min([x for x in read_lengths])
        longest = max([x for x in read_lengths])
        objective_value, actual_gaps = compute_objective_function_value_of_fasta(fasta_file)
        expected_gaps = len(reads) * math.exp(-real_coverage)
        unsequenced_part = math.exp(-real_coverage)
        handle.write('Real Coverage: {}\n'
                     'Number of reads: {}\n'
                     'Average read length: {}\n'
                     # 'Median read length: {}\n'
                     # 'Shortest read length: {}\n'
                     # 'Longest read length: {}\n'
                     'Objective function value: {}\n'
                     'Expected gaps: {}\n'
                     'Actual gaps: {}\n'
                     'Unsequenced part: {}'.format(int(real_coverage), nr_reads, average, objective_value,
                                                   expected_gaps, actual_gaps,
                                                   unsequenced_part))
    return (real_coverage, nr_reads, average, objective_value, expected_gaps, actual_gaps)