def all_tf_corrected_pvalues(): import seaborn as sns sns.set_style("dark") from limix.plot import qqplot print("Loading pvalues") all_tf_corrected_results = pickle.load( open( GTEx_directory + '/results/InflationPvalues/all_tf_corrected_pvalues.pickle', 'rb')) tf_corrected_lamb = estimate_lambda( all_tf_corrected_results[0].flatten()) qqplot(all_tf_corrected_results[0].flatten()) qqplot(all_tf_corrected_results[1].flatten()) plt.title('$\lambda={:0.2f}'.format(tf_corrected_lamb)) os.makedirs(GTEx_directory + '/plotting/{}'.format(group), exist_ok=True) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.eps'.format(group=group, name=name), format='eps', dpi=100) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.png'.format(group=group, name=name), format='png', dpi=100) plt.show()
def pc_corrected_pvalues(): print('Loading corrected pvalues') pc_corrected_results = pickle.load( open( GTEx_directory + '/results/InflationPvalues/pc_corrected_pvalues.pickle', 'rb')) import seaborn as sns sns.set_style("dark") from limix.plot import qqplot for (i, pvalues) in enumerate(pc_corrected_results): Rs_real, pvs_real, pvs_1, pvs_2, pvs_3 = pvalues print('Calculating lambda for PC {}'.format(i)) lamb = estimate_lambda(pvs_real.flatten()) print('Plotting PC {}'.format(i)) qqplot(pvs_real.flatten(), label=r'{} PCs, $\lambda={:0.2f}$'.format(i + 1, lamb)) plt.legend(prop={'size': 15}, loc='upper left') os.makedirs(GTEx_directory + '/plotting/{}'.format(group), exist_ok=True) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.eps'.format(group=group, name=name), format='eps', dpi=100) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.png'.format(group=group, name=name), format='png', dpi=100) plt.show()
def raw_pvalues(): import seaborn as sns sns.set_style("dark") results = pickle.load( open( GTEx_directory + '/results/{group}/{name}.pickle'.format( group=group, name=name), 'rb')) Rs_real, pvs_real, pvs_1, pvs_2, pvs_3 = results from limix.plot import qqplot qqplot(pvs_real.flatten()) qqplot(pvs_1.flatten()) qqplot(pvs_2.flatten()) qqplot(pvs_3.flatten()) os.makedirs(GTEx_directory + '/plotting/{}'.format(group), exist_ok=True) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.eps'.format(group=group, name=name), format='eps', dpi=100) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.png'.format(group=group, name=name), format='png', dpi=100) plt.show()
def tf_vs_pc_corrected_pvalues(): print("Loading pvalues") pc_corrected_results = pickle.load( open( GTEx_directory + '/results/InflationPvalues/pc_corrected_pvalues.pickle', 'rb')) tf_corrected_results = pickle.load( open( GTEx_directory + '/results/InflationPvalues/tf_corrected_pvalues.pickle', 'rb')) import seaborn as sns sns.set_style("dark") from limix.plot import qqplot _, pvs_real_pc_corrected, _, _, _ = pc_corrected_results[0] _, pvs_real_tf_corrected, _, _, _ = tf_corrected_results print('Estimating lambda for raw pvalues') pc_corrected_lamb = estimate_lambda(pvs_real_pc_corrected.flatten()) print('Estimating lambda for TF corrected pvalues') tf_corrected_lamb = estimate_lambda(pvs_real_tf_corrected.flatten()) print('Plotting 1 PC corrected pvalues') qqplot( pvs_real_pc_corrected.flatten(), label='1 PC Corrected $\lambda={:0.2f}$'.format(pc_corrected_lamb)) print('Plotting TF corrected pvalues') qqplot( pvs_real_tf_corrected.flatten(), label='5 TF Corrected $\lambda={:0.2f}$'.format(tf_corrected_lamb)) plt.legend(prop={'size': 15}) os.makedirs(GTEx_directory + '/plotting/{}'.format(group), exist_ok=True) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.eps'.format(group=group, name=name), format='eps', dpi=100) plt.savefig( GTEx_directory + '/plotting/{group}/{name}.png'.format(group=group, name=name), format='png', dpi=100) plt.show()
for pv in ['pv10', 'pv20', 'pv21']: test = tests.test[pv] # plot results # Manhattan plot gwas_pv = gwas_results[['chrom', 'pos', pv]] gwas_pv.columns = ['chrom', 'pos', 'pv'] plot.manhattan(gwas_pv) plt = plot.get_pyplot() plt.savefig( f"{args.outDir}/manhattanPlot_{'_'.join(traits)}_{args.maf}_{test}.png" ) plt.close() # QQ-plot plot.qqplot(gwas_pv.pv) plt = plot.get_pyplot() plt.savefig( f"{args.outDir}/qqPlot_{'_'.join(traits)}_{args.maf}_{test}.png") plt.close() # save results gwas_pv['maf'] = SNPs_MAF gwas_pv['mac'] = gwas_pv.maf * len(acn_indices) gwas_pv.mac = gwas_pv.mac.astype(int) gwas_pv['GVE'] = np.nan gwas_pv.columns.values[0] = 'chr' gwas_pv.columns.values[2] = 'pvalue' gwas_pv.to_csv( f"{args.outDir}/{'_'.join(traits)}_{args.maf}_MTMM_{test}.csv", index=False)
gwas_results["pos"] = gwas_results['pos'].astype('int') gwas_results["pv"] = gwas_results['pv'].astype('float') gwas_results["GVE"] = gwas_results['GVE'].astype('float') #gwas_results.dtypes Bonferroni = multitest.multipletests(pvalues, alpha = 0.05, method = 'fdr_bh')[3] plot.manhattan(gwas_results) plt = plot.get_pyplot() _ = plt.axhline(-math.log(Bonferroni, 10), color='red') plt.savefig(f'{output_file}.manhattan.png') plt.close() ########################################### ### 10. QQplot plot.qqplot(gwas_results.pv) plt = plot.get_pyplot() plt.savefig(f'{output_file}.QQplot.png') plt.close() ########################################### ### 11. Calculate heritability from numpy.random import RandomState from limix.her import estimate herit = estimate(y=Y, K=K, lik="normal", verbose=False) print(herit) f = open(f"{output_file}.herit.txt", "w") f.write(str(herit))
x.query("fdr > 0.05").sort_values("r2", ascending=False).head(60) # # for dtype, lm_df in [("Drug-Protein", lm_drug), ("CRISPR-Protein", lm_crispr)]: for pvar in ["nc_pval", "pval"]: # dtype, lm_df, pvar = "Drug-Protein", lm_drug, "nc_pval" # _, ax = plt.subplots(1, 1, figsize=(3, 3), dpi=600) plot_df = [] for n in PPI_ORDER: df = lm_df.query(f"ppi == '{n}'") x_var, y_var, l_var = qqplot( df[pvar], label=n, # ax=ax, show_lambda=True, band_kws=dict(color=PPI_PAL[n], alpha=0.2), pts_kws=dict(color=PPI_PAL[n]), ) plot_df.append( pd.DataFrame({ "qnull": x_var, "qemp": y_var, "lambda": l_var, "target": n })) plt.close("all") plot_df = pd.concat(plot_df)