def test_generate_new_diversity_plots(self): exp = ([(28.846153846153843, 'Env1 (n=2)', [0.0, 57.692307692307686]), (57.142857142857139, 'Env2 (n=1)', [57.142857142857139])], [(2.0, 'Env1 (n=2)', [0, 4]), (3.0, 'Env2 (n=1)', [3])]) obs = generate_new_diversity_plots( [self.otu_table1_f, self.otu_table2_f], self.ref_seqs_f, self.mapping_f, self.mapping_category) self.assertEqual(len(obs[0]), len(exp[0])) self.assertFloatEqual(obs[0][0][:2], exp[0][0][:2]) self.assertFloatEqual(sorted(obs[0][0][2]), sorted(exp[0][0][2])) self.assertFloatEqual(obs[0][1][:2], exp[0][1][:2]) self.assertFloatEqual(sorted(obs[0][1][2]), sorted(exp[0][1][2])) self.assertEqual(len(obs[2]), len(exp[1])) self.assertFloatEqual(obs[2][0][:2], exp[1][0][:2]) self.assertFloatEqual(sorted(obs[2][0][2]), sorted(exp[1][0][2])) self.assertFloatEqual(obs[2][1][:2], exp[1][1][:2]) self.assertFloatEqual(sorted(obs[2][1][2]), sorted(exp[1][1][2])) ax = obs[1].get_axes()[0] self.assertEqual(ax.get_title(), "% Novel Seqs by Environment") self.assertEqual(ax.get_xlabel(), "Environment") self.assertEqual(ax.get_ylabel(), "% Novel Seqs") self.assertEqual(len(ax.get_xticklabels()), 2) ax = obs[3].get_axes()[0] self.assertEqual(ax.get_title(), "Number of Novel OTUs by Environment") self.assertEqual(ax.get_xlabel(), "Environment") self.assertEqual(ax.get_ylabel(), "Number of Novel OTUs") self.assertEqual(len(ax.get_xticklabels()), 2)
def main(): option_parser, opts, args = parse_command_line_parameters(**script_info) output_dir = opts.output_dir try: makedirs(output_dir) except OSError: pass percent_failures_data, percent_failures_plot, num_new_otus_data, \ num_new_otus_plot = generate_new_diversity_plots( [open(otu_table_fp, 'U') for otu_table_fp in opts.otu_table_fps], open(opts.gg_fasta_fp, 'U'), open(opts.mapping_fp, 'U'), opts.mapping_category) percent_failures_plot.savefig(join(output_dir, 'percent_novel_seqs_by_%s.pdf' % opts.mapping_category)) num_new_otus_plot.savefig(join(output_dir, 'num_novel_otus_by_%s.pdf' % opts.mapping_category))