def calculate_effective_snps(n_snps, perm): """ in R: nEff=trunc(nSNPs*nSNPs*0.189/var(Perms)) """ effective_snps = -1 variance = common.variance(perm) if (variance == "NA"): effective_snps = "NA" elif(variance == 0.0): effective_snps = "NA" else: effective_snps = (int(float(n_snps) * float(n_snps) * 0.189 / variance)) return(effective_snps)
def format_permutated_results(self, aa_result): """ return nice formated results of permutation with statistics like variance and ngenes etc """ keys = self.permutated_scores.keys() keys.sort(key=common.alpha_sort) message = "Geneset\tsumlogReal\tnperm\temp_p\tnSNP\tnGenes" message += "\tvar(Perms)\tmean(Perms)\tnEff\n" for groupname in keys: sum_neg_log = aa_result.get_sum_neglog_10_score(groupname) n_snp = aa_result.get_n_snps(groupname) group_score = self.permutated_scores[groupname] message += groupname + "\t" message += str(sum_neg_log) + "\t" message += str(len(group_score)) + "\t" message += str(calculate_emperical_p_value(sum_neg_log, group_score)) + "\t" message += str(n_snp) + "\t" message += str(aa_result.get_n_genes_of_group(groupname)) + "\t" message += str(common.variance(group_score)) + "\t" message += str(common.average(group_score)) + "\t" message += str(calculate_effective_snps(n_snp, group_score)) + "\n" return message