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))
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))
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)
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)
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))
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))
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)
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))
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))
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)
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)
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))
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))
def create_job(self, alignment1, alignment2, **kwargs): alignment1.update(alignment2) job_id = kwargs.get('context_str', '') + '_fakemerger' return FakeJob(alignment1, context_str=job_id)
def create_job(self, alignment, guide_tree=None, **kwargs): job_id = kwargs.get('context_str', '') + '_fakealigner' return FakeJob(alignment, context_str=job_id)
def create_file_read_job(self, **kwargs): return FakeJob(**kwargs)