def summarise(self, base_list, trusted_placements, reverse_pipe, times,<EOL>hit_read_count_list, max_samples_for_krona):
<EOL>placements_list = []<EOL>for base in base_list:<EOL><INDENT>placements = trusted_placements[base]<EOL>self.s.readTax(placements, GraftMFiles(base, self.args.output_directory, False).read_tax_output_path(base))<EOL>placements_list.append(placements)<EOL><DEDENT>logging.info('<STR_LIT>')<EOL>with open(self.gmf.combined_summary_table_output_path(), '<STR_LIT:w>') as f:<EOL><INDENT>self.s.write_tabular_otu_table(base_list, placements_list, f)<EOL><DEDENT>logging.info('<STR_LIT>')<EOL>with biom_open(self.gmf.combined_biom_output_path(), '<STR_LIT:w>') as f:<EOL><INDENT>biom_successful = self.s.write_biom(base_list, placements_list, f)<EOL><DEDENT>if not biom_successful:<EOL><INDENT>os.remove(self.gmf.combined_biom_output_path())<EOL><DEDENT>logging.info('<STR_LIT>')<EOL>if len(base_list) > max_samples_for_krona:<EOL><INDENT>logging.warn("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>self.s.write_krona_plot(base_list, placements_list, self.gmf.krona_output_path())<EOL><DEDENT>placed_reads=[len(trusted_placements[base]) for base in base_list]<EOL>self.s.build_basic_statistics(times, hit_read_count_list, placed_reads,base_list, self.gmf.basic_stats_path())<EOL>logging.info('<STR_LIT>')<EOL>for base in base_list:<EOL><INDENT>directions = ['<STR_LIT>', '<STR_LIT>']<EOL>if reverse_pipe:<EOL><INDENT>for i in range(<NUM_LIT:0>,<NUM_LIT:2>):<EOL><INDENT>self.gmf = GraftMFiles(base, self.args.output_directory, directions[i])<EOL>self.hk.delete([self.gmf.for_aln_path(base),<EOL>self.gmf.rev_aln_path(base),<EOL>self.gmf.conv_output_rev_path(base),<EOL>self.gmf.conv_output_for_path(base),<EOL>self.gmf.euk_free_path(base),<EOL>self.gmf.euk_contam_path(base),<EOL>self.gmf.readnames_output_path(base),<EOL>self.gmf.sto_output_path(base),<EOL>self.gmf.orf_titles_output_path(base),<EOL>self.gmf.orf_output_path(base),<EOL>self.gmf.output_for_path(base),<EOL>self.gmf.output_rev_path(base)])<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.gmf = GraftMFiles(base, self.args.output_directory, False)<EOL>self.hk.delete([self.gmf.for_aln_path(base),<EOL>self.gmf.rev_aln_path(base),<EOL>self.gmf.conv_output_rev_path(base),<EOL>self.gmf.conv_output_for_path(base),<EOL>self.gmf.euk_free_path(base),<EOL>self.gmf.euk_contam_path(base),<EOL>self.gmf.readnames_output_path(base),<EOL>self.gmf.sto_output_path(base),<EOL>self.gmf.orf_titles_output_path(base),<EOL>self.gmf.orf_output_path(base),<EOL>self.gmf.output_for_path(base),<EOL>self.gmf.output_rev_path(base)])<EOL><DEDENT><DEDENT>logging.info('<STR_LIT>')<EOL>
summarise - write summary information to file, including otu table, biom
            file, krona plot, and timing information

Parameters
----------
base_list : array
    list of each of the files processed by graftm, with the path and
    and suffixed removed
trusted_placements : dict
    dictionary of placements with entry as the key, a taxonomy string
    as the value
reverse_pipe : bool
    True = run reverse pipe, False = run normal pipeline
times : array
    list of the recorded times for each step in the pipeline in the
    format: [search_step_time, alignment_step_time, placement_step_time]
hit_read_count_list : array
    list containing sublists, one for each file run through the GraftM
    pipeline, each two entries, the first being the number of putative
    eukaryotic reads (when searching 16S), the second being the number
    of hits aligned and placed in the tree.
max_samples_for_krona: int
    If the number of files processed is greater than this number, then
    do not generate a krona diagram.
Returns
-------