def test_run_core_diversity_analyses_no_categories(self): """run_core_diversity_analyses functions without categories """ # this takes a long time, so use a longer sigalrm run_core_diversity_analyses( self.test_data['biom'][0], self.test_data['map'][0], 20, output_dir=self.test_out, params=parse_qiime_parameters({}), qiime_config=self.qiime_config, categories=None, tree_fp=self.test_data['tree'][0], parallel=False, status_update_callback=no_status_updates) # Basic sanity test that output directories and files exist fps = [ '%s/bdiv_even20' % self.test_out, '%s/arare_max20' % self.test_out, '%s/taxa_plots' % self.test_out, '%s/bdiv_even20/unweighted_unifrac_dm.txt' % self.test_out, '%s/bdiv_even20/weighted_unifrac_pc.txt' % self.test_out, '%s/index.html' % self.test_out ] for fp in fps: self.assertTrue(exists(fp)) # categorical output files don't exist self.assertFalse(exists( '%s/arare_max20/days_since_epoch_chao1.txt' % self.test_out)) self.assertFalse(exists( '%s/arare_max20/SampleType_PD_whole_tree.txt' % self.test_out))
def test_run_core_diversity_analyses_no_tree(self): """run_core_diversity_analyses functions without tree """ # this takes a long time, so use a longer sigalrm run_core_diversity_analyses( self.test_data['biom'][0], self.test_data['map'][0], 20, output_dir=self.test_out, params=parse_qiime_parameters( ['beta_diversity:metrics bray_curtis', 'alpha_diversity:metrics observed_species,chao1']), qiime_config=self.qiime_config, categories=['SampleType'], tree_fp=None, parallel=False, status_update_callback=no_status_updates) # Basic sanity test that output directories and files exist fps = [ '%s/bdiv_even20' % self.test_out, '%s/arare_max20' % self.test_out, '%s/taxa_plots' % self.test_out, '%s/bdiv_even20/bray_curtis_dm.txt' % self.test_out, '%s/arare_max20/SampleType_observed_species.txt' % self.test_out, '%s/index.html' % self.test_out ] for fp in fps: self.assertTrue(exists(fp)) # phylogenetic diversity output files do not exist self.assertFalse(exists( '%s/bdiv_even20/unweighted_unifrac_dm.txt' % self.test_out))
def main(): option_parser, opts, args = parse_command_line_parameters(**script_info) verbose = opts.verbose input_biom_fp = opts.input_biom_fp output_dir = opts.output_dir categories = opts.categories if categories != None: categories = categories.split(',') tree_fp = opts.tree_fp mapping_fp = opts.mapping_fp verbose = opts.verbose parallel = opts.parallel sampling_depth = opts.sampling_depth nonphylogenetic_diversity = opts.nonphylogenetic_diversity if opts.parameter_fp != None: params = parse_qiime_parameters(open(opts.parameter_fp,'U')) else: params = parse_qiime_parameters([]) if nonphylogenetic_diversity: # if the user specified --nonphylogenetic_diversity and they # didn't define metrics in a parameters file, define them here if 'metrics' not in params['beta_diversity']: params['beta_diversity']['metrics'] = 'bray_curtis' if 'metrics' not in params['alpha_diversity']: params['alpha_diversity']['metrics'] = 'observed_species,chao1' jobs_to_start = opts.jobs_to_start default_jobs_to_start = qiime_config['jobs_to_start'] validate_and_set_jobs_to_start(params, jobs_to_start, default_jobs_to_start, parallel, option_parser) create_dir(output_dir,fail_on_exist=True) command_handler = call_commands_serially if verbose: status_update_callback = print_to_stdout else: status_update_callback = no_status_updates run_core_diversity_analyses( biom_fp=input_biom_fp, mapping_fp=mapping_fp, sampling_depth=sampling_depth, output_dir=output_dir, qiime_config=load_qiime_config(), command_handler=command_handler, tree_fp=tree_fp, params=params, categories=categories, arare_min_rare_depth=10, arare_num_steps=10, parallel=parallel, status_update_callback=status_update_callback)