예제 #1
0
 def copy_assoc_file(self, assoc_file):
     """
         copy assoc file to directory to where program is ran from
 
     """
     #get base extension e.g. qassoc,assoc assoc.linear 
     base_extention = common.plink_results_extension(assoc_file)
     output_number = get_number_of_assoc_file(assoc_file)
     assoc_files = []
     extentions = ["", ".adjusted"]
     
     for ext in extentions:
         if (os.path.exists(assoc_file + ext)):
             dest_assoc_file = self.out + "results" + output_number + "." + base_extention + ext
             
             if os.path.exists(dest_assoc_file):
                 _remove_file(dest_assoc_file)
             shutil.copy(assoc_file, dest_assoc_file)
             os.path.abspath(os.path.curdir)
             log.info("\nResults of PLINK saved as " + dest_assoc_file)
             assoc_files.append(dest_assoc_file)
         
         else:
             pass
         
     return(assoc_files)
예제 #2
0
파일: plink.py 프로젝트: dposthuma/jag
    def run_permutation(self, seeds):
        """
        performs permutations  
        """
        permuted_pheno_file = common.create_pheno_permutation_file(self, seeds)
        pheno_arg = " --pheno " + str(permuted_pheno_file + " --all-pheno" + " --extract " + self.group)

        if self.covar_file:
            permuted_covar_file = common.create_covar_permutation_file(self, seeds)
            pheno_arg += " --covar " + permuted_covar_file + " --hide-covar"
            self.set_plink_arguments("--bfile " + self.bfile + pheno_arg)
        else:
            self.set_plink_arguments("--bfile " + self.bfile + " --assoc " + pheno_arg)


        resultfile = self.run_plink() # run plink
        results_extension = common.plink_results_extension(resultfile)
        resultfiles = self.point_outputfile_to_phenotype(seeds, resultfile, results_extension)
        results = extract_permutated_scores(self.snp_to_group_map, resultfiles, seeds)
                        
        os.remove(permuted_pheno_file)  #remove permuted pheno file 
        common.remove_plink_output(resultfile)  # remove all output from plink
     
        return results