예제 #1
0
파일: alignment.py 프로젝트: pazur/final
    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
예제 #2
0
파일: glimmer.py 프로젝트: pazur/final
 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
예제 #3
0
파일: alignment.py 프로젝트: pazur/final
 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