예제 #1
0
    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()
예제 #2
0
    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()
예제 #3
0
    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()
예제 #4
0
    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()
예제 #5
0
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)
예제 #6
0
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))
예제 #7
0
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)