def test_create_configuration(): 'Test default config' fhand = NamedTemporaryFile() fhand.write('[Snvs]\nmin_num_alleles = 2\n[[edge_removal]]\n454_left=None') fhand.flush() config_fpath = fhand.name config = create_configuration(config_fpath) assert config['Snvs']['min_quality'] == 45 #malformed fhand = NamedTemporaryFile() fhand.write('[blast]\n[[nr]]\nkind="nucl"\npath="path"\nspecies="all"') fhand.flush() config_fpath = fhand.name config = create_configuration(config_fpath) assert config['Snvs']['min_quality'] == 45
def do_analysis(kind, project_settings=None, analysis_config=None, silent=False): 'It does one of the predefined analyses' if project_settings is None: project_settings = os.path.join(os.getcwd(), BACKBONE_DIRECTORIES['config_file']) if not os.path.exists(project_settings): raise ValueError('Settings path not given and not found') if not analysis_config: analysis_config = {} settings = create_configuration(project_settings) specifications = get_analysis_especifications() log_fpath = os.path.join(settings['General_settings']['project_path'], BACKBONE_DIRECTORIES['log_file']) _configure_logging(log_fpath, silent) try: analysis_def = specifications[kind] except KeyError: raise ValueError('Unknown analysis: ' + kind) analyzer_klass = analysis_def['analyzer'] analyzer = analyzer_klass(project_settings=settings, analysis_definition=analysis_def, silent=silent) analyzer.run()
def test_create_project(): 'We can create a project' test_dir = NamedTemporaryDir() settings_path = create_project(directory=test_dir.name, name='backbone') assert settings_path == join(test_dir.name, 'backbone', BACKBONE_DIRECTORIES['config_file']) settings = create_configuration(settings_path) assert settings['General_settings']['project_name'] == 'backbone' project_path = join(test_dir.name, 'backbone') assert settings['General_settings']['project_path'] == project_path assert settings['Cleaning']['strip_n_percent'] == 2.0 content = open(settings_path).read() assert 'strip_n_percent' in content test_dir.close()