def run(self): exe = get_setting('CLUSTALW_PATH') tree_file = get_file('CLUSTALW_NEWTREE', None) if tree_file is None: tree_file = create_tmp() cline = ClustalwCommandline(exe, infile=self.input, newtree=tree_file) build_tree_out, build_tree_err = cline() result = { 'tree': Bio.Phylo.read(tree_file, 'newick'), 'tree_out': build_tree_out, 'tree_err': build_tree_err, } if self.only_tree: return result outfile = get_file('CLUSTALW_OUTFILE', None) if outfile is None: outfile = create_tmp() cline = ClustalwCommandline(exe, infile=self.input, outfile=outfile) ###Fix "p.checker_function = lambda x: os.path.exists" param = [i for i,p in enumerate(cline.parameters) if 'usetree' in p.names] cline.parameters[param[0]].checker_function = os.path.exists ### setattr(cline, 'usetree', tree_file) align_out, align_err = cline() result.update({ 'align_out': align_out, 'align_err': align_err, 'alignment': inout.AlignFileInput(file=outfile, format='clustal').read(), }) return result
def run_glimmer(self): input_file = create_tmp() inout.FileOutput(input_file).write(self.sequence) output_file = get_file("GLIMMER_OUTPUT", None) if output_file is None: output_file = create_tmp() exit_code = subprocess.call([get_file("GLIMMER_PATH"), input_file, self.icm_file, output_file] + self.extra) return exit_code, output_file
def __init__(self, input=None, sequences=None, only_tree=False, *args, **kwargs): super(Alignment, self).__init__(*args, **kwargs) from settings import get_setting if sequences is not None: input = create_tmp() inout.FileOutput(input).write(sequences) if input is None: self.input = get_setting('INPUT_FILE') else: self.input = input self.only_tree = only_tree