def test_format_title(self): """Tests converting string to title.""" self.assertEqual(format_title("observed_species"), "Observed Species") self.assertEqual(format_title("chao1"), "Chao1") self.assertEqual(format_title("shannon"), "Shannon") # Test special mapping. self.assertEqual(format_title("PD_whole_tree"), "Phylogenetic Diversity")
def _generate_alpha_diversity_boxplots(collated_adiv_dir, map_fp, split_category, comparison_category, rarefaction_depth, output_dir): """Generates per-body-site self vs. other alpha diversity boxplots. Creates a plot for each input collated alpha diversity file (i.e. metric) in collated_adiv_dir. Returns a list of plot filenames that were created in output_dir. Arguments: collated_adiv_dir - path to directory containing one or more collated alpha diversity files map_fp - filepath to metadata mapping file split_category - category to split on, e.g. body site. A boxplot will be created for each category value (e.g. tongue, palm, etc.) comparison_category - category to split on within each of the split categories (e.g. self, other) rarefaction_depth - rarefaction depth to use when pulling data from rarefaction files output_dir - directory to write output plot images to """ metadata_map = MetadataMap.parseMetadataMap(open(map_fp, 'U')) collated_adiv_fps = glob(join(collated_adiv_dir, '*.txt')) plot_title = 'Alpha diversity (%d seqs/sample)' % rarefaction_depth # Generate a plot for each collated alpha diversity metric file. created_files = [] for collated_adiv_fp in collated_adiv_fps: adiv_metric = splitext(basename(collated_adiv_fp))[0] x_tick_labels, dists = _collect_alpha_diversity_boxplot_data( open(collated_adiv_fp, 'U'), metadata_map, rarefaction_depth, split_category, comparison_category) plot_figure = generate_box_plots(dists, x_tick_labels=x_tick_labels, title=plot_title, x_label='Grouping', y_label=format_title(adiv_metric)) plot_fp = join(output_dir, '%s.png' % adiv_metric) plot_figure.savefig(plot_fp) created_files.append(basename(plot_fp)) return created_files