def main(sequencepath, report, refseq_database, num_threads=<NUM_LIT:12>, start=time.time()):
files = find_files(sequencepath)<EOL>file_dict = filer(files)<EOL>printtime('<STR_LIT>', start)<EOL>genus_dict = find_genus(file_dict, refseq_database, threads=num_threads)<EOL>file_records = fasta_records(file_dict)<EOL>printtime('<STR_LIT>', start)<EOL>contig_len_dict, gc_dict = fasta_stats(file_dict, file_records)<EOL>contig_dist_dict = find_contig_distribution(contig_len_dict)<EOL>longest_contig_dict = find_largest_contig(contig_len_dict)<EOL>genome_length_dict = find_genome_length(contig_len_dict)<EOL>num_contigs_dict = find_num_contigs(contig_len_dict)<EOL>n50_dict = find_n50(contig_len_dict, genome_length_dict)<EOL>n75_dict = find_n75(contig_len_dict, genome_length_dict)<EOL>n90_dict = find_n90(contig_len_dict, genome_length_dict)<EOL>l50_dict = find_l50(contig_len_dict, genome_length_dict)<EOL>l75_dict = find_l75(contig_len_dict, genome_length_dict)<EOL>l90_dict = find_l90(contig_len_dict, genome_length_dict)<EOL>printtime('<STR_LIT>', start)<EOL>orf_file_dict = predict_orfs(file_dict, num_threads=num_threads)<EOL>orf_dist_dict = find_orf_distribution(orf_file_dict)<EOL>if report:<EOL><INDENT>reporter(gc_dict, contig_dist_dict, longest_contig_dict, genome_length_dict, num_contigs_dict, n50_dict,<EOL>n75_dict, n90_dict, l50_dict, l75_dict, l90_dict, orf_dist_dict, genus_dict, sequencepath)<EOL><DEDENT>printtime('<STR_LIT>', start)<EOL>return gc_dict, contig_dist_dict, longest_contig_dict, genome_length_dict, num_contigs_dict, n50_dict, n75_dict,n90_dict, l50_dict, l75_dict, l90_dict, orf_dist_dict<EOL>
Run the appropriate functions in order
:param sequencepath: path of folder containing FASTA genomes
:param report: boolean to determine whether a report is to be created
:param refseq_database: Path to reduced refseq database sketch
:param num_threads: Number of threads to run mash/other stuff on
:return: gc_dict, contig_dist_dict, longest_contig_dict, genome_length_dict, num_contigs_dict, n50_dict, n75_dict, \
    n90_dict, l50_dict, l75_dict, l90_dict, orf_dist_dict