Esempio n. 1
0
 def test_get_evaluation_tasks_on_empty_dir(self):
     temp_dir = tempfile.mkdtemp()
     try:
         params = D3RParameters()
         stf = EvaluationTaskFactory(temp_dir, params)
         task_list = stf.get_evaluation_tasks()
         self.assertEquals(len(task_list), 0)
     finally:
         shutil.rmtree(temp_dir)
Esempio n. 2
0
 def test_get_participant_database_no_csv_file_found(self):
     temp_dir = tempfile.mkdtemp()
     try:
         params = D3RParameters()
         etf = EvaluationTaskFactory(temp_dir, params)
         pdb = etf._get_participant_database()
         self.assertEqual(pdb, None)
     finally:
         shutil.rmtree(temp_dir)
Esempio n. 3
0
    def test_get_evaluation_tasks_on_with_one_invalid_algo(self):
        temp_dir = tempfile.mkdtemp()
        try:
            params = D3RParameters()
            glidedir = os.path.join(
                temp_dir, EvaluationTaskFactory.DOCKSTAGE_PREFIX + 'glide')
            os.mkdir(glidedir)
            open(os.path.join(glidedir, D3RTask.ERROR_FILE), 'a').close()

            stf = EvaluationTaskFactory(temp_dir, params)
            task_list = stf.get_evaluation_tasks()
            self.assertEquals(len(task_list), 0)
        finally:
            shutil.rmtree(temp_dir)
Esempio n. 4
0
    def test_get_evaluation_tasks_on_dir_with_webdata_dir(self):
        temp_dir = tempfile.mkdtemp()
        try:
            params = D3RParameters()
            os.mkdir(
                os.path.join(
                    temp_dir, EvaluationTaskFactory.DOCKSTAGE_PREFIX +
                    EvaluationTaskFactory.WEB_DATA_SUFFIX))

            stf = EvaluationTaskFactory(temp_dir, params)
            task_list = stf.get_evaluation_tasks()
            self.assertEquals(len(task_list), 0)
        finally:
            shutil.rmtree(temp_dir)
Esempio n. 5
0
    def test_get_evaluation_tasks_on_dir_with_lower_stages_dirs(self):
        temp_dir = tempfile.mkdtemp()
        try:
            params = D3RParameters()
            dataimport = DataImportTask(temp_dir, params)
            blast = BlastNFilterTask(temp_dir, params)
            os.mkdir(os.path.join(temp_dir, dataimport.get_dir_name()))
            os.mkdir(os.path.join(temp_dir, blast.get_dir_name()))

            stf = EvaluationTaskFactory(temp_dir, params)
            task_list = stf.get_evaluation_tasks()
            self.assertEquals(len(task_list), 0)
        finally:
            shutil.rmtree(temp_dir)
Esempio n. 6
0
    def test_get_evaluation_tasks_invalid_path(self):
        temp_dir = tempfile.mkdtemp()
        try:
            params = D3RParameters()
            path = os.path.join(temp_dir, 'doesnotexist')
            stf = EvaluationTaskFactory(path, params)
            try:
                stf.get_evaluation_tasks()
                self.fail('Expected PathNotDirectoryError')
            except PathNotDirectoryError:
                pass

        finally:
            shutil.rmtree(temp_dir)
Esempio n. 7
0
 def test_get_participant_database_with_valid_csvfile(self):
     temp_dir = tempfile.mkdtemp()
     try:
         params = D3RParameters()
         dimport = DataImportTask(temp_dir, params)
         dimport.create_dir()
         csvfile = dimport.get_participant_list_csv()
         f = open(csvfile, 'w')
         f.write('name,d3rusername,guid,email\n')
         f.write('joe,jj,123,[email protected]\n')
         f.flush()
         f.close()
         etf = EvaluationTaskFactory(temp_dir, params)
         pdb = etf._get_participant_database()
         p = pdb.get_participant_by_guid('123')
         self.assertEqual(p.get_email(), '*****@*****.**')
     finally:
         shutil.rmtree(temp_dir)
Esempio n. 8
0
    def test_get_evaluation_tasks_on_with_two_valid_algo_dir(self):
        temp_dir = tempfile.mkdtemp()
        try:
            params = D3RParameters()
            glidedir = os.path.join(
                temp_dir, EvaluationTaskFactory.DOCKSTAGE_PREFIX + 'glide')
            os.mkdir(glidedir)
            open(os.path.join(glidedir, D3RTask.COMPLETE_FILE), 'a').close()

            freddir = os.path.join(
                temp_dir, EvaluationTaskFactory.DOCKSTAGE_PREFIX + 'fred')
            os.mkdir(freddir)
            open(os.path.join(freddir, D3RTask.COMPLETE_FILE), 'a').close()

            stf = EvaluationTaskFactory(temp_dir, params)
            task_list = stf.get_evaluation_tasks()
            self.assertEquals(len(task_list), 2)
            self.assertNotEquals(task_list[0].get_name(),
                                 task_list[1].get_name())

        finally:
            shutil.rmtree(temp_dir)
Esempio n. 9
0
    def test_get_evaluation_tasks_on_with_valid_completed_algo_dir(self):
        temp_dir = tempfile.mkdtemp()
        try:
            params = D3RParameters()

            glidetask = GlideTask(temp_dir, params)
            glidetask.create_dir()

            open(os.path.join(glidetask.get_dir(), D3RTask.COMPLETE_FILE),
                 'a').close()

            etask = EvaluationTask(
                temp_dir,
                glidetask.get_name() + '.' +
                EvaluationTaskFactory.SCORING_SUFFIX, glidetask, params)
            etask.create_dir()
            open(os.path.join(etask.get_dir(), D3RTask.COMPLETE_FILE),
                 'a').close()
            stf = EvaluationTaskFactory(temp_dir, params)
            task_list = stf.get_evaluation_tasks()
            self.assertEquals(len(task_list), 0)
        finally:
            shutil.rmtree(temp_dir)
Esempio n. 10
0
def get_task_list_for_stage(theargs, stage_name):
    """Factory method that generates a list of tasks for given stage

       Using stage_name get the list of tasks that need to
       be run.
       :param theargs: parameters set via commandline along with
                       ``theargs.latest_weekly`` which should be set to
                       to base directory where stages will be run
       :param stage_name:  Name of stage to run
    """
    if stage_name is None:
        raise NotImplementedError('stage_name is None')

    task_list = []

    logger.debug('Getting task list for ' + stage_name)

    if stage_name == CREATE_CHALLENGE:
        task_list.append(MakeBlastDBTask(theargs.latest_weekly, theargs))
        task_list.append(DataImportTask(theargs.latest_weekly, theargs))
        task_list.append(BlastNFilterTask(theargs.latest_weekly, theargs))
        task_list.append(ChallengeDataTask(theargs.latest_weekly, theargs))

    if stage_name == 'makedb':
        task_list.append(MakeBlastDBTask(theargs.latest_weekly, theargs))

    if stage_name == 'import':
        task_list.append(DataImportTask(theargs.latest_weekly, theargs))

    if stage_name == 'blast':
        task_list.append(BlastNFilterTask(theargs.latest_weekly, theargs))

    if stage_name == 'challengedata':
        task_list.append(ChallengeDataTask(theargs.latest_weekly, theargs))

    if stage_name == 'proteinligprep':
        task_list.append(ProteinLigPrepTask(theargs.latest_weekly, theargs))

    if stage_name == 'glide':
        task_list.append(GlideTask(theargs.latest_weekly, theargs))

    if stage_name == 'vina':
        task_list.append(AutoDockVinaTask(theargs.latest_weekly, theargs))

    if stage_name == CHIMERA_PREP:
        task_list.append(
            ChimeraProteinLigPrepTask(theargs.latest_weekly, theargs))
    if stage_name == 'extsubmission':
        extfac = ExternalDataSubmissionFactory(theargs.latest_weekly, theargs)
        task_list.extend(extfac.get_external_data_submissions())

    if stage_name == 'evaluation':
        # use util function call to get all evaluation tasks
        # append them to the task_list
        eval_task_factory = EvaluationTaskFactory(theargs.latest_weekly,
                                                  theargs)
        task_list.extend(eval_task_factory.get_evaluation_tasks())

    if len(task_list) is 0:
        raise NotImplementedError('uh oh no tasks for ' + stage_name +
                                  ' stage')

    return task_list
Esempio n. 11
0
 def test_evaluationtaskfactory_constructor(self):
     params = D3RParameters()
     params.hi = True
     stf = EvaluationTaskFactory('/foo', params)
     self.assertEquals(stf.get_args().hi, True)
     self.assertEquals(stf.get_path(), '/foo')