def test_run_stages_invalid_stage(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = temp_dir theargs.stage = 'foo' os.mkdir(os.path.join(temp_dir, '2015')) os.mkdir(os.path.join(temp_dir, '2015', 'dataset.week.1')) try: celpprunner.run_stages(theargs) except NotImplementedError as e: self.assertEquals(e.message, 'uh oh no tasks for foo stage') finally: shutil.rmtree(temp_dir)
def test_run_stages_makedb_blast_chall_proteinligprep_glide_no_error(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.pdbdb = '/pdbdb' theargs.celppdir = os.path.join(temp_dir) theargs.stage = 'makedb,blast,challengedata,proteinligprep,glide' d_import_dir = os.path.join(temp_dir, '2015', 'dataset.week.1', TestCelppRunner.IMPORT_DIR_NAME) os.makedirs(d_import_dir) open(os.path.join(d_import_dir, D3RTask.COMPLETE_FILE), 'a').close() fakegz = os.path.join(temp_dir, 'fake.gz') f = gzip.open(fakegz, 'wb') f.write('hello\n') f.flush() f.close() theargs.pdbsequrl = 'file://'+fakegz theargs.makeblastdb = 'echo' theargs.blastnfilter = 'echo' theargs.postanalysis = 'true' theargs.proteinligprep = 'echo' theargs.glide = 'echo' theargs.genchallenge = 'echo' self.assertEqual(celpprunner.run_stages(theargs), 0) finally: shutil.rmtree(temp_dir)
def test_run_stages_blast(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = os.path.join(temp_dir) theargs.stage = 'blast' theargs.pdbdb = '/pdbdb' makedb_dir = os.path.join(temp_dir, '2015', 'dataset.week.1', TestCelppRunner.MAKEDB_DIR_NAME) os.makedirs(makedb_dir) open(os.path.join(makedb_dir, 'complete'), 'a').close() d_import_dir = os.path.join(temp_dir, '2015', 'dataset.week.1', TestCelppRunner.IMPORT_DIR_NAME) os.makedirs(d_import_dir) open(os.path.join(d_import_dir, 'complete'), 'a').close() theargs.blastnfilter = 'echo' theargs.postanalysis = 'true' self.assertEqual(celpprunner.run_stages(theargs), 0) finally: shutil.rmtree(temp_dir)
def test_run_stages_no_weekly_datasetfound(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = temp_dir self.assertEqual(celpprunner.run_stages(theargs), 0) finally: shutil.rmtree(temp_dir)
def test_run_stages_customweekdir_set(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = temp_dir theargs.customweekdir = True theargs.createweekdir = True theargs.stage = '' try: self.assertEquals(celpprunner.run_stages(theargs), 0) self.fail('Expected NotImplementedError') except NotImplementedError: pass finally: shutil.rmtree(temp_dir)
def test_run_stages_blast_stage_data_import_missing(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = temp_dir theargs.stage = 'blast' os.mkdir(os.path.join(temp_dir, '2015')) os.mkdir(os.path.join(temp_dir, '2015', 'dataset.week.1')) makedb_dir = os.path.join(temp_dir, '2015', 'dataset.week.1', TestCelppRunner.MAKEDB_DIR_NAME) os.makedirs(makedb_dir) open(os.path.join(makedb_dir, 'complete'), 'a').close() self.assertEquals(celpprunner.run_stages(theargs), 1) finally: shutil.rmtree(temp_dir)
def test_run_stages_blast_has_error(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = os.path.join(temp_dir) theargs.stage = 'blast' os.mkdir(os.path.join(temp_dir, TestCelppRunner.MAKEDB_DIR_NAME)) open(os.path.join(temp_dir, TestCelppRunner.MAKEDB_DIR_NAME, 'error'), 'a').close() os.mkdir(os.path.join(temp_dir, '2015')) os.mkdir(os.path.join(temp_dir, '2015', 'dataset.week.1')) self.assertEqual(celpprunner.run_stages(theargs), 1) finally: shutil.rmtree(temp_dir)
def test_run_stages_makedb_through_glide(self): """This should test the following stages will run makedb,import,blast,challengedata,proteinligprep,glide,vina """ temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.pdbdb = '/pdbdb' theargs.celppdir = os.path.join(temp_dir) theargs.stage = 'makedb,import,blast,challengedata,proteinligprep,' \ 'chimeraprep,glide,vina' d_import_dir = os.path.join(temp_dir, '2015', 'dataset.week.1', TestCelppRunner.IMPORT_DIR_NAME) os.makedirs(d_import_dir) open(os.path.join(d_import_dir, D3RTask.COMPLETE_FILE), 'a').close() fakegz = os.path.join(temp_dir, 'fake.gz') f = gzip.open(fakegz, 'wb') f.write('hello\n') f.flush() f.close() theargs.pdbsequrl = 'file://' + fakegz theargs.pdbfileurl = 'file://' + fakegz theargs.compinchi = 'file://' + fakegz theargs.version = '1.0.0' theargs.makeblastdb = 'echo' theargs.blastnfilter = 'echo' theargs.postanalysis = 'true' theargs.proteinligprep = 'echo' theargs.glide = 'echo' theargs.vina = 'echo' theargs.genchallenge = 'echo' theargs.chimeraprep = 'echo' self.assertEqual(celpprunner.run_stages(theargs), 0) finally: shutil.rmtree(temp_dir)
def test_run_stages_challenge_and_proteinligprep_no_error(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.pdbdb = '/pdbdb' theargs.celppdir = os.path.join(temp_dir) theargs.stage = 'challengedata,proteinligprep' blastdb_dir = os.path.join(temp_dir, '2015', 'dataset.week.1', TestCelppRunner.BLAST_DIR_NAME) os.makedirs(blastdb_dir) open(os.path.join(blastdb_dir, 'complete'), 'a').close() theargs.proteinligprep = 'echo' theargs.genchallenge = 'echo' self.assertEqual(celpprunner.run_stages(theargs), 0) finally: shutil.rmtree(temp_dir)
def test_run_stages_blast_and_proteinligprep_blast_has_error(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = os.path.join(temp_dir) theargs.stage = 'blast,proteinligprep' os.mkdir(os.path.join(temp_dir, TestCelppRunner.MAKEDB_DIR_NAME)) open(os.path.join(temp_dir, TestCelppRunner.MAKEDB_DIR_NAME, 'complete'), 'a').close() d_import_dir = os.path.join(temp_dir, '2015', 'dataset.week.1', TestCelppRunner.IMPORT_DIR_NAME) os.makedirs(d_import_dir) open(os.path.join(d_import_dir, D3RTask.ERROR_FILE), 'a').close() theargs.blastnfilter = 'echo' theargs.proteinligprep = 'echo' self.assertEqual(celpprunner.run_stages(theargs), 1) finally: shutil.rmtree(temp_dir)
def test_run_stages_createweekdir_set(self): temp_dir = tempfile.mkdtemp() try: theargs = D3RParameters() theargs.celppdir = os.path.join(temp_dir) theargs.createweekdir = True theargs.stage = '' d = date.today() celp_week = util.get_celpp_week_of_year_from_date(d) try: self.assertEquals(celpprunner.run_stages(theargs), 0) self.fail('Expected NotImplementedError') except NotImplementedError: pass expected_dir = os.path.join(temp_dir, str(celp_week[1]), 'dataset.week.' + str(celp_week[0])) self.assertEquals(os.path.isdir(expected_dir), True) finally: shutil.rmtree(temp_dir)