Example #1
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_prank'
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = [
            self.exe, '-once', '-noxml', '-notree', '-nopost', '+F', '-quiet',
            '-matinitsize=5', '-uselogs',
            '-d=%s' % seqfn,
            '-o=%s' % alignedfn
        ]
        invoc.extend(self.user_opts)
        alignedfn = alignedfn + '.1.fas'

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #2
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_clustalw2'
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = [
            self.exe, '-align',
            '-infile=%s' % seqfn,
            '-outfile=%s' % alignedfn, '-output=fasta'
        ]
        invoc.extend(self.user_opts)

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #3
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_probcons'
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = [self.exe, seqfn]
        invoc.extend(self.user_opts)

        # The probcons job creation is slightly different from the other
        #   aligners because we redirect and read standard output.

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps),
                                         stdout=alignedfn)
Example #4
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_ginsi'
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = []
        if platform.system() == "Windows":
            invoc.append(self.exe)
        else:
            invoc.extend([self.exe])
        invoc.extend(['--globalpair', '--maxiterate', '1000'])
        if '--ep' not in self.user_opts:
            invoc.extend(['--ep', '0.123'])
        invoc.extend(['--quiet'])
        invoc.extend(self.user_opts)
        invoc.extend(['--thread', str(kwargs.get('num_cpus', 1))])
        invoc.append(seqfn)

        # The MAFFT job creation is slightly different from the other
        #   aligners because we redirect and read standard output.

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps),
                                         stdout=alignedfn)
Example #5
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_opal'
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = [
            'java',
            '-Xmx%dm' % self.max_mem_mb, '-jar', self.exe, '--in', seqfn,
            '--out', alignedfn, '--quiet'
        ]
        invoc.extend(self.user_opts)

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #6
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_baliphyalign'
        #TODO: figure out why time limit is not being passed in here...
        # time_to_run = kwargs.get('time_limit','12')
        time_to_run = '0.25'  #DEBUG ONLY
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = [self.exe, seqfn, scratch_dir, time_to_run, alignedfn]
        invoc.extend(self.user_opts)
        # print ' '.join(invoc)

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #7
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_mafft'
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = []
        if platform.system() == "Windows":
            invoc.append(self.exe)
        else:
            invoc.extend([self.exe])
        if len(alignment) <= 200 and new_alignment.max_sequence_length(
        ) < 50000:
            invoc.extend(['--localpair', '--maxiterate', '1000'])
        if '--ep' not in self.user_opts:
            invoc.extend(['--ep', '0.123'])
        invoc.extend(['--quiet'])
        invoc.extend(self.user_opts)

        if get_sparkcontext():
            #import multiprocessing
            #available_cpus = multiprocessing.cpu_count()
            MESSENGER.send_info("Using spark to launch MAFFT")
            invoc.extend(['--thread', str(kwargs.get('num_cpus_spark', 1))])
            #invoc.extend(['--thread', str(kwargs.get('num_cpus_spark', available_cpus))])
        else:
            import multiprocessing
            available_cpus = multiprocessing.cpu_count()
            MESSENGER.send_info("NOT using spark to launch MAFFT")
            invoc.extend(
                ['--thread',
                 str(kwargs.get('num_cpus', available_cpus))])
        invoc.append(seqfn)

        # The MAFFT job creation is slightly different from the other
        #   aligners because we redirect and read standard output.

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps),
                                         stdout=alignedfn)
Example #8
0
    def create_job(self, alignment1, alignment2, **kwargs):
        job_id = kwargs.get('context_str', '') + '_opal'
        if (alignment1.get_num_taxa() < 1) or (alignment2.get_num_taxa() < 1):
            alignment1.update(alignment2)
            return FakeJob(alignment1, context_str=job_id)
        scratch_dir, seqfn1, seqfn2, outfn = self._prepare_input(
            alignment1, alignment2, **kwargs)
        assert (alignment1.datatype == alignment2.datatype)

        invoc = [
            'java',
            '-Xmx%dm' % self.max_mem_mb, '-jar', self.exe, '--in', seqfn1,
            '--in2', seqfn2, '--out', outfn, '--align_method', 'profile'
        ]
        # invoc = ['java', '-Xmx10000m', '-jar', self.exe, '--in', seqfn1, '--in2', seqfn2, '--out', outfn, '--align_method', 'profile']
        invoc.extend(self.user_opts)

        return self._finish_standard_job(alignedfn=outfn,
                                         datatype=alignment1.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #9
0
    def create_job(self, alignment, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_padaligner'
        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        invoc = [
            sys.executable, self.exe, alignment.datatype, seqfn, alignedfn
        ]

        return self._finish_standard_job(alignedfn=alignedfn,
                                         datatype=alignment.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #10
0
 def create_job(self,
                alignment,
                starting_tree=None,
                name='default',
                **kwargs):
     assert (starting_tree)
     job_id = kwargs.get('context_str', '') + '_fake'
     if isinstance(starting_tree, str):
         tree_str = starting_tree
     else:
         tree_str = str(starting_tree)
     score = hash(tree_str) / 10000.0
     blob = (score, tree_str)
     return FakeJob(blob, context_str=job_id)
Example #11
0
    def create_job(self, alignment=None, guide_tree=None, **kwargs):
        job_id = kwargs.get('context_str', '') + '_customaligner'

        if alignment.get_num_taxa() == 0:
            return FakeJob(alignment, context_str=job_id)
        new_alignment = alignment.unaligned()
        if new_alignment.get_num_taxa() < 2:
            return FakeJob(new_alignment, context_str=job_id)
        scratch_dir, seqfn, alignedfn = self._prepare_input(
            new_alignment, **kwargs)

        # rpc = lambda : read_internal_alignment(alignedfn,
        #                                        datatype=alignment.datatype)
        # self.scratch_dir=scratch_dir
        # self.seqfn=seqfn
        # self.alignedfn=alignedfn

        return FakeJob(file_read_job=True,
                       context_str=job_id,
                       scratch_dir=scratch_dir,
                       seqfn=seqfn,
                       alignedfn=alignedfn,
                       datatype=alignment.datatype)
Example #12
0
    def create_job(self, alignment1, alignment2, **kwargs):
        job_id = kwargs.get('context_str', '') + '_padmerger'
        if (alignment1.get_num_taxa() < 1) or (alignment2.get_num_taxa() < 1):
            alignment1.update(alignment2)
            return FakeJob(alignment1, context_str=job_id)
        scratch_dir, seqfn1, seqfn2, outfn = self._prepare_input(
            alignment1, alignment2, **kwargs)

        invoc = [
            sys.executable, self.exe, alignment1.datatype, seqfn1, seqfn2,
            outfn
        ]

        return self._finish_standard_job(alignedfn=outfn,
                                         datatype=alignment1.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #13
0
    def create_job(self, alignment1, alignment2, **kwargs):
        job_id = kwargs.get('context_str', '') + '_muscle'
        if (alignment1.get_num_taxa() < 1) or (alignment2.get_num_taxa() < 1):
            alignment1.update(alignment2)
            return FakeJob(alignment1, context_str=job_id)
        scratch_dir, seqfn1, seqfn2, outfn = self._prepare_input(
            alignment1, alignment2, **kwargs)

        invoc = [
            self.exe, '-in1', seqfn1, '-in2', seqfn2, '-out', outfn, '-quiet',
            '-profile'
        ]
        invoc.extend(self.user_opts)

        return self._finish_standard_job(alignedfn=outfn,
                                         datatype=alignment1.datatype,
                                         invoc=invoc,
                                         scratch_dir=scratch_dir,
                                         job_id=job_id,
                                         delete_temps=kwargs.get(
                                             'delete_temps',
                                             self.delete_temps))
Example #14
0
 def create_job(self, alignment1, alignment2, **kwargs):
     alignment1.update(alignment2)
     job_id = kwargs.get('context_str', '') + '_fakemerger'
     return FakeJob(alignment1, context_str=job_id)
Example #15
0
 def create_job(self, alignment, guide_tree=None, **kwargs):
     job_id = kwargs.get('context_str', '') + '_fakealigner'
     return FakeJob(alignment, context_str=job_id)
Example #16
0
 def create_file_read_job(self, **kwargs):
     return FakeJob(**kwargs)