def test_compute_ordination_correlation(self): """Functions correctly using valid input.""" # Defaults. exp = (1.0, 0.0) obs = compute_ordination_correlation(self.map1, self.coords1, self.category1) self.assertFloatEqual(obs[:2], exp) self.assertIsProb(float(obs[2])) # Spearman with second axis. exp = (0.4, 0.6) obs = compute_ordination_correlation(self.map1, self.coords1, self.category1, axis=2, correlation_type='spearman') self.assertFloatEqual(obs[:2], exp) self.assertIsProb(float(obs[2])) # No permutations. exp = (1.0, 0.0, 'N/A') obs = compute_ordination_correlation(self.map1, self.coords1, self.category1, num_permutations=0) self.assertFloatEqual(obs, exp) # Few permutations. exp = (1.0, 0.0, 'Too few iters to compute p-value (num_iters=1)') obs = compute_ordination_correlation(self.map1, self.coords1, self.category1, num_permutations=1) self.assertEqual(obs, exp)
def main(): option_parser, opts, args = parse_command_line_parameters(**script_info) output_dir = opts.output_dir create_dir(output_dir) map_f = open(opts.map_fp, 'U') coord_f = open(opts.coord_fp, 'U') results = compute_ordination_correlation(map_f, coord_f, opts.category, opts.axis, opts.type, opts.num_permutations) header = ['Correlation coefficient', 'Parametric p-value', 'Nonparametric p-value'] with open(join(output_dir, 'ord_corr_results.txt'), 'w') as output_f: output_f.write('\t'.join(header) + '\n') output_f.write('%.4f\t%.4f\t%s\n' % results)
def test_compute_ordination_correlation_invalid_input(self): """Correctly handles invalid input.""" # category with self.assertRaises(ValueError): compute_ordination_correlation(self.map1, self.coords1, 'foo') # category state with self.assertRaises(ValueError): compute_ordination_correlation(self.map1, self.coords1, 'Treatment') # axis with self.assertRaises(ValueError): compute_ordination_correlation(self.map1, self.coords1, self.category1, axis=-1) with self.assertRaises(ValueError): compute_ordination_correlation(self.map1, self.coords1, self.category1, axis=4) # correlation_type with self.assertRaises(ValueError): compute_ordination_correlation(self.map1, self.coords1, self.category1, correlation_type='foo') # num_permutations with self.assertRaises(ValueError): compute_ordination_correlation(self.map1, self.coords1, self.category1, num_permutations=-1)