# ==== QQ plots ====
library( SuppDists )
library( MASS )
library( Haplin )
## Registered S3 methods overwritten by 'ffbase':
## method from
## [.ff ff
## [.ffdf ff
## [<-.ff ff
## [<-.ffdf ff
library( ggplot2 )
library( ggrepel )
source( "gg_qqplot.R" )
# ==== CL dataset ====
# CL dataset
# ==== GxM ====
# GxM
load( "../GxM_PoOxM_new_betas_mult_CLO.RData" )
gxe.pval.promoter.cl <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} ) )
gxe.pval.enhancer.cl <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
gxe.pval.gene.cl <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.cl ),
rownames( gxe.pval.enhancer.cl ), rownames( gxe.pval.gene.cl ) ),
my.SNP.map$gene_name ) ] )
gxe.pval.all.cl <- data.frame( region = c( rep( "promoter", nrow( gxe.pval.promoter.cl ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.cl ) ), rep( "gene", nrow( gxe.pval.gene.cl ) ) ),
gene.name = c( rownames( gxe.pval.promoter.cl ), rownames( gxe.pval.enhancer.cl ),
rownames( gxe.pval.gene.cl ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.cl[ , "pval" ], gxe.pval.enhancer.cl[ , "pval" ],
gxe.pval.gene.cl[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.cl[ , "df" ], gxe.pval.enhancer.cl[ , "df" ],
gxe.pval.gene.cl[ , "df" ] ) ) )
head( gxe.pval.all.cl )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.06400049 2
## 2 promoter ABCA4 rs560426 0.42805451 2
## 3 promoter IRF6 rs642961 0.55340321 2
## 4 promoter THADA rs7590268 0.17320790 2
## 5 promoter 8q21.3 rs12543318 0.32332097 2
## 6 promoter 8q24 rs987525 0.42999212 2
dim( gxe.pval.all.cl )
## [1] 25 5
df.all.cl <- unique( gxe.pval.all.cl$df )
df.all.cl
## [1] 2
# plotting
pvals.GxM.CL <- gxe.pval.all.cl$pval
names( pvals.GxM.CL ) <- paste( gxe.pval.all.cl$region, gxe.pval.all.cl$snp.name,
sep = "_" )
pvals.GxM.CL
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.06400049 0.42805451 0.55340321
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.17320790 0.32332097 0.42999212
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.87703914 0.53417280 0.39764783
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.94003164 0.55666521 0.34534483
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.90704433 0.10178491 0.41424021
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.65667196 0.63076406 0.91766032
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.34030217 0.15917225 0.96394185
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.79767473 0.65667196 0.63297345
## gene_rs13041247
## 0.92200517
cur.len <- length( pvals.GxM.CL )
cur.nlabs <- 2
cur.xcoords <- get_x_coords( length( pvals.GxM.CL ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.CL ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.CL ) +
labs( title = "GxMe, CLO dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

ggsave( filename = "GxM_CL_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
## Warning: Removed 2 rows containing missing values (geom_path).
# ==== POOxM ====
# now, PoOxM for CLO
pooxm.pval.promoter <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} ) )
pooxm.pval.enhancer <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
pooxm.pval.gene <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$gene_name ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.92671452 2
## 2 promoter ABCA4 rs560426 0.71507668 2
## 3 promoter IRF6 rs642961 0.10381984 2
## 4 promoter THADA rs7590268 0.60047269 2
## 5 promoter 8q21.3 rs12543318 0.02428055 2
## 6 promoter 8q24 rs987525 0.08685998 2
dim( pooxm.pval.all )
## [1] 25 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.CL <- pooxm.pval.all$pval
names( pvals.POOxM.CL ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.CL
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.92671452 0.71507668 0.10381984
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.60047269 0.02428055 0.08685998
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.61687631 0.14989054 0.32261930
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.01193684 0.31593297 0.54294633
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.95324526 0.11209232 0.52952510
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.55193606 0.02946621 0.29444331
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.01350852 0.91256337 0.33880289
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.57162216 0.55193606 0.07496376
## gene_rs13041247
## 0.40997150
cur.len <- length( pvals.POOxM.CL )
cur.nlabs <- 8
cur.xcoords <- get_x_coords( length( pvals.POOxM.CL ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.CL ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.CL ) +
labs( title = "PoOxMe, CLO dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ), xlim = c( 1,NA ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

ggsave( filename = "PoOxM_CL_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
## Warning: Removed 2 rows containing missing values (geom_path).
# ==== CL/P dataset ====
load( "../GxM_PoOxM_new_betas_mult_CLorP.RData" )
# ==== GxM ====
# GxM
gxe.pval.promoter.clorp <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} ) )
gxe.pval.enhancer.clorp <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
gxe.pval.gene.clorp <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.clorp ),
rownames( gxe.pval.enhancer.clorp ), rownames( gxe.pval.gene.clorp ) ),
my.SNP.map$gene_name ) ] )
gxe.pval.all.clorp <- data.frame( region = c( rep( "promoter", nrow( gxe.pval.promoter.clorp ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.clorp ) ), rep( "gene", nrow( gxe.pval.gene.clorp ) ) ),
gene.name = c( rownames( gxe.pval.promoter.clorp ), rownames( gxe.pval.enhancer.clorp ),
rownames( gxe.pval.gene.clorp ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.clorp[ , "pval" ], gxe.pval.enhancer.clorp[ , "pval" ],
gxe.pval.gene.clorp[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.clorp[ , "df" ], gxe.pval.enhancer.clorp[ , "df" ],
gxe.pval.gene.clorp[ , "df" ] ) ) )
head( gxe.pval.all.clorp )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.19699287 2
## 2 promoter ABCA4 rs560426 0.78069733 2
## 3 promoter IRF6 rs642961 0.79869026 2
## 4 promoter THADA rs7590268 0.69939504 2
## 5 promoter 8q21.3 rs12543318 0.01231238 2
## 6 promoter 8q24 rs987525 0.11788477 2
dim( gxe.pval.all.clorp )
## [1] 25 5
df.all.clorp <- unique( gxe.pval.all.clorp$df )
df.all.clorp
## [1] 2
# plotting
pvals.GxM.clorp <- gxe.pval.all.clorp$pval
names( pvals.GxM.clorp ) <- paste( gxe.pval.all.clorp$region, gxe.pval.all.clorp$snp.name,
sep = "_" )
pvals.GxM.clorp
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.19699287 0.78069733 0.79869026
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.69939504 0.01231238 0.11788477
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.65311965 0.05713693 0.30101309
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.78033536 0.87885490 0.59389868
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.64617122 0.48595842 0.44971466
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.63353369 0.14277888 0.29639614
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.12167850 0.58935782 0.64241648
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.06864719 0.63353369 0.83821146
## gene_rs13041247
## 0.81390511
cur.len <- length( pvals.GxM.clorp )
cur.nlabs <- 2
cur.xcoords <- get_x_coords( length( pvals.GxM.clorp ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.clorp ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.clorp ) +
labs( title = "GxMe, CL/P dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

ggsave( filename = "GxM_CLorP_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
## Warning: Removed 2 rows containing missing values (geom_path).
# ==== POOxM ====
# now, PoOxM for CL/P
pooxm.pval.promoter <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} ) )
pooxm.pval.enhancer <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
pooxm.pval.gene <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$gene_name ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.4903087 2
## 2 promoter ABCA4 rs560426 0.7649082 2
## 3 promoter IRF6 rs642961 0.3370442 2
## 4 promoter THADA rs7590268 0.4365098 2
## 5 promoter 8q21.3 rs12543318 0.4206556 2
## 6 promoter 8q24 rs987525 0.0584274 2
dim( pooxm.pval.all )
## [1] 25 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.clorp <- pooxm.pval.all$pval
names( pvals.POOxM.clorp ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.clorp
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.490308668 0.764908243 0.337044234
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.436509753 0.420655613 0.058427399
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.059053176 0.343891913 0.126549691
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.003223564 0.105488490 0.434832066
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.547990224 0.054367326 0.867650691
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.134494271 0.608589146 0.997708266
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.906781682 0.014342080 0.486847137
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.040261280 0.134494271 0.420966767
## gene_rs13041247
## 0.211418716
cur.len <- length( pvals.POOxM.clorp )
cur.nlabs <- 8
cur.xcoords <- get_x_coords( length( pvals.POOxM.clorp ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.clorp ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.clorp ) +
labs( title = "PoOxMe, CL/P dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ), #xlim = c( 1.5,NA ),
force = 10, nudge_y = cur.labels$x - 1, nudge_x = 2 - cur.labels$x ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )

ggsave( filename = "PoOxM_CLorP_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
# ==== CLP dataset ====
load( "../GxM_PoOxM_new_betas_mult_CLP.RData" )
# ==== GxM ====
# GxM
gxe.pval.promoter.clp <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} ) )
gxe.pval.enhancer.clp <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
gxe.pval.gene.clp <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.clp ),
rownames( gxe.pval.enhancer.clp ), rownames( gxe.pval.gene.clp ) ),
my.SNP.map$gene_name ) ] )
gxe.pval.all.clp <- data.frame( region = c( rep( "promoter", nrow( gxe.pval.promoter.clp ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.clp ) ), rep( "gene", nrow( gxe.pval.gene.clp ) ) ),
gene.name = c( rownames( gxe.pval.promoter.clp ), rownames( gxe.pval.enhancer.clp ),
rownames( gxe.pval.gene.clp ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.clp[ , "pval" ], gxe.pval.enhancer.clp[ , "pval" ],
gxe.pval.gene.clp[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.clp[ , "df" ], gxe.pval.enhancer.clp[ , "df" ],
gxe.pval.gene.clp[ , "df" ] ) ) )
head( gxe.pval.all.clp )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.2806608 2
## 2 promoter ABCA4 rs560426 0.2512834 2
## 3 promoter IRF6 rs642961 0.8077746 2
## 4 promoter THADA rs7590268 0.6258189 2
## 5 promoter 8q21.3 rs12543318 0.2889103 2
## 6 promoter 8q24 rs987525 0.2100116 2
dim( gxe.pval.all.clp )
## [1] 25 5
df.all.clp <- unique( gxe.pval.all.clp$df )
df.all.clp
## [1] 2
# plotting
pvals.GxM.clp <- gxe.pval.all.clp$pval
names( pvals.GxM.clp ) <- paste( gxe.pval.all.clp$region, gxe.pval.all.clp$snp.name,
sep = "_" )
pvals.GxM.clp
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.280660840 0.251283381 0.807774607
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.625818873 0.288910280 0.210011574
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.703687666 0.217081847 0.230290238
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.786378069 0.955859512 0.500717570
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.430706012 0.899082901 0.541993252
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.439422383 0.247811659 0.190955186
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.686837728 0.885820221 0.975074491
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.001039765 0.439422383 0.385127538
## gene_rs13041247
## 0.842246318
cur.len <- length( pvals.GxM.clp )
cur.nlabs <- 2
cur.xcoords <- get_x_coords( length( pvals.GxM.clp ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.clp ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.clp ) +
labs( title = "GxMe, CLP dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )

ggsave( filename = "GxM_CLP_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
# ==== POOxM ====
# now, PoOxM for CLP
pooxm.pval.promoter <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} ) )
pooxm.pval.enhancer <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
pooxm.pval.gene <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$gene_name ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.167697016 2
## 2 promoter ABCA4 rs560426 0.986305286 2
## 3 promoter IRF6 rs642961 0.049270673 2
## 4 promoter THADA rs7590268 0.765851843 2
## 5 promoter 8q21.3 rs12543318 0.569978278 2
## 6 promoter 8q24 rs987525 0.003653522 2
dim( pooxm.pval.all )
## [1] 25 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.clp <- pooxm.pval.all$pval
names( pvals.POOxM.clp ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.clp
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.167697016 0.986305286 0.049270673
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.765851843 0.569978278 0.003653522
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.274574235 0.882450263 0.328849307
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.009281047 0.113938408 0.061957648
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.568982718 0.145883127 0.917629435
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.079368084 0.015638002 0.665827849
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.372431164 0.014836717 0.682446660
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.184688210 0.079368084 0.214447224
## gene_rs13041247
## 0.144298379
cur.len <- length( pvals.POOxM.clp )
cur.nlabs <- 8
cur.xcoords <- get_x_coords( length( pvals.POOxM.clp ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.clp ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.clp ) +
labs( title = "PoOxMe, CLP dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ),# xlim = c( 1,NA ) ) +
force = 10, nudge_y = cur.labels$x - 1, nudge_x = 2 - cur.labels$x ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )

ggsave( filename = "PoOxM_CLP_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
# ==== CPO dataset ====
load( "../GxM_PoOxM_new_betas_mult_CPO.RData" )
# ==== GxM ====
# GxM
gxe.pval.promoter.cpo <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} ) )
gxe.pval.enhancer.cpo <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
gxe.pval.gene.cpo <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.cpo ),
rownames( gxe.pval.enhancer.cpo ), rownames( gxe.pval.gene.cpo ) ),
my.SNP.map$gene_name ) ] )
gxe.pval.all.cpo <- data.frame( region = c( rep( "promoter", nrow( gxe.pval.promoter.cpo ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.cpo ) ), rep( "gene", nrow( gxe.pval.gene.cpo ) ) ),
gene.name = c( rownames( gxe.pval.promoter.cpo ), rownames( gxe.pval.enhancer.cpo ),
rownames( gxe.pval.gene.cpo ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.cpo[ , "pval" ], gxe.pval.enhancer.cpo[ , "pval" ],
gxe.pval.gene.cpo[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.cpo[ , "df" ], gxe.pval.enhancer.cpo[ , "df" ],
gxe.pval.gene.cpo[ , "df" ] ) ) )
head( gxe.pval.all.cpo )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.54252058 2
## 2 promoter ABCA4 rs560426 0.51196686 2
## 3 promoter IRF6 rs642961 0.79769113 2
## 4 promoter THADA rs7590268 0.43698267 2
## 5 promoter 8q21.3 rs12543318 0.05562257 2
## 6 promoter 8q24 rs987525 0.03553574 2
dim( gxe.pval.all.cpo )
## [1] 25 5
df.all.cpo <- unique( gxe.pval.all.cpo$df )
df.all.cpo
## [1] 2
# plotting
pvals.GxM.cpo <- gxe.pval.all.cpo$pval
names( pvals.GxM.cpo ) <- paste( gxe.pval.all.cpo$region, gxe.pval.all.cpo$snp.name,
sep = "_" )
pvals.GxM.cpo
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.54252058 0.51196686 0.79769113
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.43698267 0.05562257 0.03553574
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.90363749 0.36284283 0.83325550
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.12712688 0.67827329 0.55712772
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.41986313 0.78638193 0.87588013
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.86240975 0.48897261 0.48787983
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.37242464 0.98266263 0.82984563
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.07646270 0.86240975 0.75762619
## gene_rs13041247
## 0.45940485
cur.len <- length( pvals.GxM.cpo )
cur.nlabs <- 2
cur.xcoords <- get_x_coords( length( pvals.GxM.cpo ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.cpo ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.cpo ) +
labs( title = "GxMe, CPO dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

ggsave( filename = "GxM_CPO_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
## Warning: Removed 2 rows containing missing values (geom_path).
# ==== POOxM ====
# now, PoOxM for CPO
pooxm.pval.promoter <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} ) )
pooxm.pval.enhancer <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
pooxm.pval.gene <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$gene_name ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.1707909 2
## 2 promoter ABCA4 rs560426 0.5706230 2
## 3 promoter IRF6 rs642961 0.8569329 2
## 4 promoter THADA rs7590268 0.3167452 2
## 5 promoter 8q21.3 rs12543318 0.4721891 2
## 6 promoter 8q24 rs987525 0.3090114 2
dim( pooxm.pval.all )
## [1] 25 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.cpo <- pooxm.pval.all$pval
names( pvals.POOxM.cpo ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.cpo
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.17079094 0.57062300 0.85693294
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.31674519 0.47218915 0.30901137
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.96604798 0.21219071 0.20065785
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.35923455 0.02423747 0.22089377
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.94292065 0.24664514 0.17507179
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.69055131 0.29045258 0.81670411
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.80351828 0.89775943 0.12314425
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.23027679 0.69055131 0.69751762
## gene_rs13041247
## 0.13585876
cur.len <- length( pvals.POOxM.cpo )
cur.nlabs <- 8
cur.xcoords <- get_x_coords( length( pvals.POOxM.cpo ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.cpo ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.cpo ) +
labs( title = "PoOxMe, CPO dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ), #xlim = c( 1,NA ) ) +
force = 10, nudge_y = cur.labels$x - 1, nudge_x = 1.5 - cur.labels$x ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

ggsave( filename = "PoOxM_CPO_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
## Warning: Removed 2 rows containing missing values (geom_path).
# ==== control dataset ====
load( "../GxM_PoOxM_new_betas_mult_cntrl.RData" )
# ==== GxM ====
# GxM
gxe.pval.promoter.cntrl <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} ) )
gxe.pval.enhancer.cntrl <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
gxe.pval.gene.cntrl <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.cntrl ),
rownames( gxe.pval.enhancer.cntrl ), rownames( gxe.pval.gene.cntrl ) ),
my.SNP.map$gene_name ) ] )
gxe.pval.all.cntrl <- data.frame( region = c( rep( "promoter", nrow( gxe.pval.promoter.cntrl ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.cntrl ) ), rep( "gene", nrow( gxe.pval.gene.cntrl ) ) ),
gene.name = c( rownames( gxe.pval.promoter.cntrl ), rownames( gxe.pval.enhancer.cntrl ),
rownames( gxe.pval.gene.cntrl ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.cntrl[ , "pval" ], gxe.pval.enhancer.cntrl[ , "pval" ],
gxe.pval.gene.cntrl[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.cntrl[ , "df" ], gxe.pval.enhancer.cntrl[ , "df" ],
gxe.pval.gene.cntrl[ , "df" ] ) ) )
head( gxe.pval.all.cntrl )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.71998085 2
## 2 promoter ABCA4 rs560426 0.83397007 2
## 3 promoter IRF6 rs642961 0.12346638 2
## 4 promoter THADA rs7590268 0.53910778 2
## 5 promoter 8q21.3 rs12543318 0.14634632 2
## 6 promoter 8q24 rs987525 0.04779387 2
dim( gxe.pval.all.cntrl )
## [1] 25 5
df.all.cntrl <- unique( gxe.pval.all.cntrl$df )
df.all.cntrl
## [1] 2
# plotting
pvals.GxM.cntrl <- gxe.pval.all.cntrl$pval
names( pvals.GxM.cntrl ) <- paste( gxe.pval.all.cntrl$region, gxe.pval.all.cntrl$snp.name,
sep = "_" )
pvals.GxM.cntrl
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 7.199808e-01 8.339701e-01 1.234664e-01
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 5.391078e-01 1.463463e-01 4.779387e-02
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 5.900314e-01 3.211253e-01 5.599778e-05
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 5.739594e-01 2.748482e-01 5.950565e-01
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 1.553378e-01 8.476451e-01 2.213102e-01
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 2.545081e-01 8.419980e-01 3.336203e-01
## gene_rs560426 gene_rs642961 gene_rs7590268
## 2.996933e-02 3.812790e-01 4.578903e-01
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 8.592355e-05 2.545081e-01 4.092147e-01
## gene_rs13041247
## 8.796321e-01
cur.len <- length( pvals.GxM.cntrl )
cur.nlabs <- 2
cur.xcoords <- get_x_coords( length( pvals.GxM.cntrl ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.cntrl ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.cntrl ) +
labs( title = "GxMe, control dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )

ggsave( filename = "GxM_cntrl_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
# ==== POOxM ====
# now, PoOxM for cntrl
pooxm.pval.promoter <- t( sapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} ) )
pooxm.pval.enhancer <- t( sapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
pooxm.pval.gene <- t( sapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} ) )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$gene_name ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter PAX7 rs742071 0.406144153 2
## 2 promoter ABCA4 rs560426 0.103986612 2
## 3 promoter IRF6 rs642961 0.386871106 2
## 4 promoter THADA rs7590268 0.486207252 2
## 5 promoter 8q21.3 rs12543318 0.005556453 2
## 6 promoter 8q24 rs987525 0.080081329 2
dim( pooxm.pval.all )
## [1] 25 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.cntrl <- pooxm.pval.all$pval
names( pvals.POOxM.cntrl ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.cntrl
## promoter_rs742071 promoter_rs560426 promoter_rs642961
## 0.406144153 0.103986612 0.386871106
## promoter_rs7590268 promoter_rs12543318 promoter_rs987525
## 0.486207252 0.005556453 0.080081329
## promoter_rs3758249 promoter_rs8001641 promoter_rs1873147
## 0.609387191 0.630839815 0.910796277
## promoter_rs227731 promoter_rs13041247 enhancer_rs742071
## 0.486795993 0.977763642 0.802386461
## enhancer_rs560426 enhancer_rs7590268 enhancer_rs987525
## 0.028611471 0.512101622 0.731971506
## enhancer_rs7078160 enhancer_rs8001641 gene_rs742071
## 0.884796158 0.515237910 0.656457456
## gene_rs560426 gene_rs642961 gene_rs7590268
## 0.027490359 0.457588341 0.393289836
## gene_rs3758249 gene_rs7078160 gene_rs1873147
## 0.572414729 0.884796158 0.195249397
## gene_rs13041247
## 0.530862256
cur.len <- length( pvals.POOxM.cntrl )
cur.nlabs <- 8
cur.xcoords <- get_x_coords( length( pvals.POOxM.cntrl ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.cntrl ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.cntrl ) +
labs( title = "PoOxMe, control dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ),# xlim = c( 1,NA ) ) +
force = 10, nudge_y = cur.labels$x - 1, nudge_x = 2 - cur.labels$x ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )

ggsave( filename = "PoOxM_cntrl_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
# ==== RANDOM SNPS, on CL/P ====
load( "../RandomSNPs/GxM_PoOxM_new_betas_mult_randomSNPs_CLorP.RData" )
# ==== GxM ====
# GxM
gxe.pval.promoter.random <- lapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} )
gxe.pval.promoter.random <- do.call( rbind, gxe.pval.promoter.random )
gxe.pval.enhancer.random <- lapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} )
gxe.pval.enhancer.random <- do.call( rbind, gxe.pval.enhancer.random )
gxe.pval.gene.random <- lapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} )
gxe.pval.gene.random <- do.call( rbind, gxe.pval.gene.random )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.random ),
rownames( gxe.pval.enhancer.random ), rownames( gxe.pval.gene.random ) ),
my.SNP.map$Marker ) ] )
gxe.pval.all.random <- data.frame( region = c( rep( "promoter", nrow( gxe.pval.promoter.random ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.random ) ), rep( "gene", nrow( gxe.pval.gene.random ) ) ),
gene.name = c( rownames( gxe.pval.promoter.random ), rownames( gxe.pval.enhancer.random ),
rownames( gxe.pval.gene.random ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.random[ , "pval" ], gxe.pval.enhancer.random[ , "pval" ],
gxe.pval.gene.random[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.random[ , "df" ], gxe.pval.enhancer.random[ , "df" ],
gxe.pval.gene.random[ , "df" ] ) ) )
head( gxe.pval.all.random )
## region gene.name snp.name pval df
## 1 promoter rs4621895 rs4621895 0.1180659 2
## 2 promoter rs1546124 rs1546124 0.1633977 2
## 3 promoter rs3750817 rs3750817 0.5874762 2
## 4 promoter rs2981428 rs2981428 0.4894996 2
## 5 promoter rs10984103 rs10984103 0.9874819 2
## 6 promoter rs9939609 rs9939609 0.2574505 2
dim( gxe.pval.all.random )
## [1] 33 5
df.all.random <- unique( gxe.pval.all.random$df )
df.all.random
## [1] 2
# plotting
pvals.GxM.random <- gxe.pval.all.random$pval
names( pvals.GxM.random ) <- paste( gxe.pval.all.random$region, gxe.pval.all.random$snp.name,
sep = "_" )
pvals.GxM.random
## promoter_rs4621895 promoter_rs1546124 promoter_rs3750817
## 0.11806593 0.16339770 0.58747621
## promoter_rs2981428 promoter_rs10984103 promoter_rs9939609
## 0.48949958 0.98748190 0.25745050
## promoter_rs6010718 promoter_rs3752462 promoter_rs2867125
## 0.97113217 0.78197580 0.67086580
## promoter_rs2912771 promoter_rs6659735 promoter_rs10767664
## 0.98656372 0.70087949 0.24549981
## promoter_rs7138803 promoter_rs713586 promoter_rs1443433
## 0.10721363 0.11450703 0.63696071
## promoter_rs4752566 enhancer_rs3750817 enhancer_rs2981428
## 0.54866549 0.80866325 0.91807293
## enhancer_rs2912771 enhancer_rs6659735 enhancer_rs7138803
## 0.95393044 0.49345554 0.85627120
## enhancer_rs713586 gene_rs4621895 gene_rs1546124
## 0.32166882 0.18940757 0.25943800
## gene_rs3750817 gene_rs2981428 gene_rs9939609
## 0.88149195 0.85487948 0.27799145
## gene_rs6010718 gene_rs3752462 gene_rs2912771
## 0.60463286 0.09274268 0.33032421
## gene_rs6659735 gene_rs10767664 gene_rs4752566
## 0.79403559 0.07807974 0.74079287
cur.len <- length( pvals.GxM.random )
cur.nlabs <- 4
cur.xcoords <- get_x_coords( length( pvals.GxM.random ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.random ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.random ) +
labs( title = "GxMe, random SNPs, CL/P dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

ggsave( filename = "GxM_random_CLorP_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
## Warning: Removed 2 rows containing missing values (geom_path).
# ==== POOxM ====
# now, PoOxM for CLO
pooxm.pval.promoter <- lapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} )
pooxm.pval.promoter <- do.call( rbind, pooxm.pval.promoter )
pooxm.pval.enhancer <- lapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} )
pooxm.pval.enhancer <- do.call( rbind, pooxm.pval.enhancer )
pooxm.pval.gene <- lapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} )
pooxm.pval.gene <- do.call( rbind, pooxm.pval.gene )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$Marker ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter rs4621895 rs4621895 0.72807227 2
## 2 promoter rs1546124 rs1546124 0.53742222 2
## 3 promoter rs3750817 rs3750817 0.56388313 2
## 4 promoter rs2981428 rs2981428 0.84228727 2
## 5 promoter rs10984103 rs10984103 0.01005862 2
## 6 promoter rs9939609 rs9939609 0.21176658 2
dim( pooxm.pval.all )
## [1] 33 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.random <- pooxm.pval.all$pval
names( pvals.POOxM.random ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.random
## promoter_rs4621895 promoter_rs1546124 promoter_rs3750817
## 0.72807227 0.53742222 0.56388313
## promoter_rs2981428 promoter_rs10984103 promoter_rs9939609
## 0.84228727 0.01005862 0.21176658
## promoter_rs6010718 promoter_rs3752462 promoter_rs2867125
## 0.34162379 0.05130543 0.61980121
## promoter_rs2912771 promoter_rs6659735 promoter_rs10767664
## 0.06483495 0.61302723 0.70609158
## promoter_rs7138803 promoter_rs713586 promoter_rs1443433
## 0.02368679 0.37280208 0.28315669
## promoter_rs4752566 enhancer_rs3750817 enhancer_rs2981428
## 0.21296224 0.38827109 0.86498538
## enhancer_rs2912771 enhancer_rs6659735 enhancer_rs7138803
## 0.56378499 0.63643147 0.52693061
## enhancer_rs713586 gene_rs4621895 gene_rs1546124
## 0.23641855 0.92409800 0.54578404
## gene_rs3750817 gene_rs2981428 gene_rs9939609
## 0.11088681 0.06325315 0.20866275
## gene_rs6010718 gene_rs3752462 gene_rs2912771
## 0.70173975 0.40685657 0.61717747
## gene_rs6659735 gene_rs10767664 gene_rs4752566
## 0.92562959 0.63967902 0.90081823
cur.len <- length( pvals.POOxM.random )
cur.nlabs <- 4
cur.xcoords <- get_x_coords( length( pvals.POOxM.random ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.random ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.random ) +
labs( title = "PoOxMe, random SNPs, CL/P dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ), xlim = c( 1,NA ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

ggsave( filename = "PoOxM_random_CLorP_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
## Warning: Removed 2 rows containing missing values (geom_path).
# ==== TOP 20 SNPs FROM PoO SCAN on CLP ====
load( "../PoO_scan/GxM_PoOxM_new_betas_mult_top-SNPs-PoO-scan_CLP.RData" )
# ==== GxM ====
# GxM
gxe.pval.promoter.scan.top20 <- lapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} )
gxe.pval.promoter.scan.top20 <- do.call( rbind, gxe.pval.promoter.scan.top20 )
gxe.pval.enhancer.scan.top20 <- lapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} )
gxe.pval.enhancer.scan.top20 <- do.call( rbind, gxe.pval.enhancer.scan.top20 )
gxe.pval.gene.scan.top20 <- lapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} )
gxe.pval.gene.scan.top20 <- do.call( rbind, gxe.pval.gene.scan.top20 )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.scan.top20 ),
rownames( gxe.pval.enhancer.scan.top20 ), rownames( gxe.pval.gene.scan.top20 ) ),
my.SNP.map$Marker ) ] )
gxe.pval.all.scan.top20 <- data.frame(
region = c( rep( "promoter", nrow( gxe.pval.promoter.scan.top20 ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.scan.top20 ) ),
rep( "gene", nrow( gxe.pval.gene.scan.top20 ) ) ),
gene.name = c( rownames( gxe.pval.promoter.scan.top20 ),
rownames( gxe.pval.enhancer.scan.top20 ),
rownames( gxe.pval.gene.scan.top20 ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.scan.top20[ , "pval" ],
gxe.pval.enhancer.scan.top20[ , "pval" ],
gxe.pval.gene.scan.top20[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.scan.top20[ , "df" ],
gxe.pval.enhancer.scan.top20[ , "df" ],
gxe.pval.gene.scan.top20[ , "df" ] ) ) )
head( gxe.pval.all.scan.top20 )
## region gene.name snp.name pval df
## 1 promoter rs29941 rs29941 0.82654721 2
## 2 promoter rs2235371 rs2235371 0.66949676 2
## 3 promoter rs2912760 rs2912760 0.22333362 2
## 4 promoter rs11084753 rs11084753 0.03117635 2
## 5 promoter rs8001641 rs8001641 0.08656249 2
## 6 promoter rs2912771 rs2912771 0.99998991 2
dim( gxe.pval.all.scan.top20 )
## [1] 32 5
df.all.scan.top20 <- unique( gxe.pval.all.scan.top20$df )
df.all.scan.top20
## [1] 2
# plotting
pvals.GxM.scan.top20 <- gxe.pval.all.scan.top20$pval
names( pvals.GxM.scan.top20 ) <- paste( gxe.pval.all.scan.top20$region, gxe.pval.all.scan.top20$snp.name,
sep = "_" )
pvals.GxM.scan.top20
## promoter_rs29941 promoter_rs2235371 promoter_rs2912760
## 0.82654721 0.66949676 0.22333362
## promoter_rs11084753 promoter_rs8001641 promoter_rs2912771
## 0.03117635 0.08656249 0.99998991
## promoter_rs1002246 promoter_rs6701037 promoter_rs766325
## 0.81700052 0.91714460 0.59691883
## promoter_rs4621895 promoter_rs470563 promoter_rs7138803
## 0.32458643 0.15879066 0.97677359
## promoter_rs987525 enhancer_rs4752028 enhancer_rs8001641
## 0.35728352 0.94383682 0.55298564
## enhancer_rs2912771 enhancer_rs7078160 enhancer_rs766325
## 0.99999005 0.60788200 0.97881594
## enhancer_rs470563 enhancer_rs7138803 enhancer_rs987525
## 0.41654277 0.22454267 0.68264461
## enhancer_rs3752075 enhancer_rs7864322 gene_rs2235371
## 0.13738084 0.14358089 0.28213909
## gene_rs4752028 gene_rs2912760 gene_rs2912771
## 0.68510218 0.90893240 0.99999007
## gene_rs1002246 gene_rs7078160 gene_rs4621895
## 0.27991851 0.60788200 0.65649353
## gene_rs470563 gene_rs3752075
## 0.05219897 0.56835826
cur.len <- length( pvals.GxM.scan.top20 )
cur.nlabs <- 4
cur.xcoords <- get_x_coords( length( pvals.GxM.scan.top20 ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.scan.top20 ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.scan.top20 ) +
labs( title = "GxMe, CLP dataset",
subtitle = "top 20 SNPs from PoO scan on CLP dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 2 rows containing missing values (geom_path).

# ==== POOxM ====
# now, PoOxM for CLP
pooxm.pval.promoter <- lapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} )
pooxm.pval.promoter <- do.call( rbind, pooxm.pval.promoter )
pooxm.pval.enhancer <- lapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} )
pooxm.pval.enhancer <- do.call( rbind, pooxm.pval.enhancer )
pooxm.pval.gene <- lapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} )
pooxm.pval.gene <- do.call( rbind, pooxm.pval.gene )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$Marker ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter rs29941 rs29941 0.43921706 2
## 2 promoter rs2235371 rs2235371 0.10088696 2
## 3 promoter rs2912760 rs2912760 0.33704873 2
## 4 promoter rs11084753 rs11084753 0.13590825 2
## 5 promoter rs8001641 rs8001641 0.02341064 2
## 6 promoter rs2912771 rs2912771 0.99999491 2
dim( pooxm.pval.all )
## [1] 32 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.scan.top20 <- pooxm.pval.all$pval
names( pvals.POOxM.scan.top20 ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.scan.top20
## promoter_rs29941 promoter_rs2235371 promoter_rs2912760
## 0.4392170565 0.1008869623 0.3370487300
## promoter_rs11084753 promoter_rs8001641 promoter_rs2912771
## 0.1359082533 0.0234106432 0.9999949074
## promoter_rs1002246 promoter_rs6701037 promoter_rs766325
## 0.3174203675 0.9408714893 0.0006464076
## promoter_rs4621895 promoter_rs470563 promoter_rs7138803
## 0.9120701317 0.3110710536 0.7712654563
## promoter_rs987525 enhancer_rs4752028 enhancer_rs8001641
## 0.6038221712 0.5257461092 0.0624808580
## enhancer_rs2912771 enhancer_rs7078160 enhancer_rs766325
## 0.9999949768 0.2489809872 0.8189611982
## enhancer_rs470563 enhancer_rs7138803 enhancer_rs987525
## 0.3622765345 0.4319407359 0.1249379440
## enhancer_rs3752075 enhancer_rs7864322 gene_rs2235371
## 0.6039579732 0.5228906273 0.5629594490
## gene_rs4752028 gene_rs2912760 gene_rs2912771
## 0.0897178994 0.6048225816 0.9999949348
## gene_rs1002246 gene_rs7078160 gene_rs4621895
## 0.4707194915 0.2489809872 0.8953377754
## gene_rs470563 gene_rs3752075
## 0.4853539693 0.0757098844
cur.len <- length( pvals.POOxM.scan.top20 )
cur.nlabs <- 4
cur.xcoords <- get_x_coords( length( pvals.POOxM.scan.top20 ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.scan.top20 ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.scan.top20 ) +
labs( title = "PoOxMe, CLP dataset",
subtitle = "top 20 SNPs from PoO scan on CLP dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ), xlim = c( 1,NA ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )

ggsave( filename = "PoOxM_top20SNPs-PoO-scan_CLP_mult_betas_gg-qqplot_square.png", width = 14, units = "cm",
height = 14 )
# ==== GxM and PoOxM on controls, TOP 20 SNPs FROM PoO SCAN on CLP ====
load( "../PoO_scan/GxM_PoOxM_new_betas_mult_top-SNPs-PoO-scan_cntrl.RData" )
# ==== GxM ====
# GxM
gxe.pval.promoter.cntrl.scan.top20 <- lapply( gxe.prom.all, function(x){
return( data.frame( pval = x$gxm$pval[ 2 ], df = x$gxm$df[ 2 ] ) )
} )
gxe.pval.promoter.cntrl.scan.top20 <- do.call( rbind, gxe.pval.promoter.cntrl.scan.top20 )
gxe.pval.enhancer.cntrl.scan.top20 <- lapply( gxe.enh.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} )
gxe.pval.enhancer.cntrl.scan.top20 <- do.call( rbind, gxe.pval.enhancer.cntrl.scan.top20 )
gxe.pval.gene.cntrl.scan.top20 <- lapply( gxe.gene.all, function(x){
return( data.frame( pval = x$gxm$gxe.test$pval[ 2 ], df = x$gxm$gxe.test$df[ 2 ] ) )
} )
gxe.pval.gene.cntrl.scan.top20 <- do.call( rbind, gxe.pval.gene.cntrl.scan.top20 )
# creating the data.frame
cur.snp.names <- as.character( my.SNP.map$Marker[ match( c( rownames( gxe.pval.promoter.cntrl.scan.top20 ),
rownames( gxe.pval.enhancer.cntrl.scan.top20 ), rownames( gxe.pval.gene.cntrl.scan.top20 ) ),
my.SNP.map$Marker ) ] )
gxe.pval.all.cntrl.scan.top20 <- data.frame(
region = c( rep( "promoter", nrow( gxe.pval.promoter.cntrl.scan.top20 ) ),
rep( "enhancer", nrow( gxe.pval.enhancer.cntrl.scan.top20 ) ),
rep( "gene", nrow( gxe.pval.gene.cntrl.scan.top20 ) ) ),
gene.name = c( rownames( gxe.pval.promoter.cntrl.scan.top20 ),
rownames( gxe.pval.enhancer.cntrl.scan.top20 ),
rownames( gxe.pval.gene.cntrl.scan.top20 ) ),
snp.name = cur.snp.names,
pval = unlist( c( gxe.pval.promoter.cntrl.scan.top20[ , "pval" ],
gxe.pval.enhancer.cntrl.scan.top20[ , "pval" ],
gxe.pval.gene.cntrl.scan.top20[ , "pval" ] ) ),
df = unlist( c( gxe.pval.promoter.cntrl.scan.top20[ , "df" ],
gxe.pval.enhancer.cntrl.scan.top20[ , "df" ],
gxe.pval.gene.cntrl.scan.top20[ , "df" ] ) ) )
head( gxe.pval.all.cntrl.scan.top20 )
## region gene.name snp.name pval df
## 1 promoter rs29941 rs29941 0.1372708 2
## 2 promoter rs2235371 rs2235371 0.6699029 2
## 3 promoter rs2912760 rs2912760 0.3141108 2
## 4 promoter rs11084753 rs11084753 0.3286412 2
## 5 promoter rs8001641 rs8001641 0.2137793 2
## 6 promoter rs2912771 rs2912771 0.8798302 2
dim( gxe.pval.all.cntrl.scan.top20 )
## [1] 32 5
df.all.cntrl.scan.top20 <- unique( gxe.pval.all.cntrl.scan.top20$df )
df.all.cntrl.scan.top20
## [1] 2
# plotting
pvals.GxM.cntrl.scan.top20 <- gxe.pval.all.cntrl.scan.top20$pval
names( pvals.GxM.cntrl.scan.top20 ) <- paste( gxe.pval.all.cntrl.scan.top20$region, gxe.pval.all.cntrl.scan.top20$snp.name,
sep = "_" )
pvals.GxM.cntrl.scan.top20
## promoter_rs29941 promoter_rs2235371 promoter_rs2912760
## 0.137270790 0.669902904 0.314110830
## promoter_rs11084753 promoter_rs8001641 promoter_rs2912771
## 0.328641169 0.213779268 0.879830202
## promoter_rs1002246 promoter_rs6701037 promoter_rs766325
## 0.845813433 0.766016661 0.601984456
## promoter_rs4621895 promoter_rs470563 promoter_rs7138803
## 0.226496387 0.862097102 0.552290095
## promoter_rs987525 enhancer_rs4752028 enhancer_rs8001641
## 0.394732285 0.008949105 0.756633977
## enhancer_rs2912771 enhancer_rs7078160 enhancer_rs766325
## 0.806504578 0.936330519 0.369985147
## enhancer_rs470563 enhancer_rs7138803 enhancer_rs987525
## 0.573976931 0.305741501 0.033988270
## enhancer_rs3752075 enhancer_rs7864322 gene_rs2235371
## 0.513942721 0.023297383 0.128936886
## gene_rs4752028 gene_rs2912760 gene_rs2912771
## 0.209120232 0.948572340 0.776234184
## gene_rs1002246 gene_rs7078160 gene_rs4621895
## 0.201886639 0.936330519 0.146912777
## gene_rs470563 gene_rs3752075
## 0.516586450 0.026807263
cur.len <- length( pvals.GxM.cntrl.scan.top20 )
cur.nlabs <- 4
cur.xcoords <- get_x_coords( length( pvals.GxM.cntrl.scan.top20 ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.GxM.cntrl.scan.top20 ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.GxM.cntrl.scan.top20 ) +
labs( title = "GxMe, control dataset",
subtitle = "top 20 SNPs from PoO scan on CLP dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 1 rows containing missing values (geom_path).

# ==== POOxM ====
# now, PoOxM for controls
pooxm.pval.promoter <- lapply( gxe.prom.all, function(x){
return( data.frame( pval = x$pooxm$pval[ 2 ], df = x$pooxm$df[ 2 ] ) )
} )
pooxm.pval.promoter <- do.call( rbind, pooxm.pval.promoter )
pooxm.pval.enhancer <- lapply( gxe.enh.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} )
pooxm.pval.enhancer <- do.call( rbind, pooxm.pval.enhancer )
pooxm.pval.gene <- lapply( gxe.gene.all, function(x){
return( data.frame( pval = x$pooxm$gxe.test$pval[ 2 ], df = x$pooxm$gxe.test$df[ 2 ] ) )
} )
pooxm.pval.gene <- do.call( rbind, pooxm.pval.gene )
# creating the data.frame
my.SNP.map$Marker <- tolower( my.SNP.map$Marker )
cur.snp.names <- my.SNP.map$Marker[ match( c( rownames( pooxm.pval.promoter ),
rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
my.SNP.map$Marker ) ]
pooxm.pval.all <- data.frame( region = c( rep( "promoter", nrow( pooxm.pval.promoter ) ),
rep( "enhancer", nrow( pooxm.pval.enhancer ) ), rep( "gene", nrow( pooxm.pval.gene ) ) ),
gene.name = c( rownames( pooxm.pval.promoter ), rownames( pooxm.pval.enhancer ), rownames( pooxm.pval.gene ) ),
snp.name = cur.snp.names,
pval = unlist( c( pooxm.pval.promoter[ , "pval" ], pooxm.pval.enhancer[ , "pval" ], pooxm.pval.gene[ , "pval" ] ) ),
df = unlist( c( pooxm.pval.promoter[ , "df" ], pooxm.pval.enhancer[ , "df" ], pooxm.pval.gene[ , "df" ] ) ) )
head( pooxm.pval.all )
## region gene.name snp.name pval df
## 1 promoter rs29941 rs29941 0.24115969 2
## 2 promoter rs2235371 rs2235371 0.08800383 2
## 3 promoter rs2912760 rs2912760 0.41365840 2
## 4 promoter rs11084753 rs11084753 0.99976080 2
## 5 promoter rs8001641 rs8001641 0.79689498 2
## 6 promoter rs2912771 rs2912771 0.62263364 2
dim( pooxm.pval.all )
## [1] 32 5
df.all.pooxm <- unique( pooxm.pval.all$df )
df.all.pooxm
## [1] 2
# plotting
pvals.POOxM.cntrl.scan.top20 <- pooxm.pval.all$pval
names( pvals.POOxM.cntrl.scan.top20 ) <- paste( pooxm.pval.all$region, pooxm.pval.all$snp.name, sep = "_" )
pvals.POOxM.cntrl.scan.top20
## promoter_rs29941 promoter_rs2235371 promoter_rs2912760
## 0.241159688 0.088003825 0.413658402
## promoter_rs11084753 promoter_rs8001641 promoter_rs2912771
## 0.999760796 0.796894975 0.622633637
## promoter_rs1002246 promoter_rs6701037 promoter_rs766325
## 0.373770725 0.631668512 0.442064844
## promoter_rs4621895 promoter_rs470563 promoter_rs7138803
## 0.847711773 0.262633849 0.885167826
## promoter_rs987525 enhancer_rs4752028 enhancer_rs8001641
## 0.100198269 0.647343113 0.992102507
## enhancer_rs2912771 enhancer_rs7078160 enhancer_rs766325
## 0.845707298 0.204245362 0.771067726
## enhancer_rs470563 enhancer_rs7138803 enhancer_rs987525
## 0.672004643 0.572507479 0.004942489
## enhancer_rs3752075 enhancer_rs7864322 gene_rs2235371
## 0.079418842 0.340948665 0.292493187
## gene_rs4752028 gene_rs2912760 gene_rs2912771
## 0.961928933 0.252333479 0.796431053
## gene_rs1002246 gene_rs7078160 gene_rs4621895
## 0.719148045 0.204245362 0.824632091
## gene_rs470563 gene_rs3752075
## 0.540884050 0.470202890
cur.len <- length( pvals.POOxM.cntrl.scan.top20 )
cur.nlabs <- 4
cur.xcoords <- get_x_coords( length( pvals.POOxM.cntrl.scan.top20 ), cur.nlabs )
cur.ycoords <- -log10( sort( pvals.POOxM.cntrl.scan.top20 ) )[ 1:cur.nlabs ]
cur.labels <- data.frame( x = cur.xcoords, y = cur.ycoords,
label = names( cur.ycoords ) )
gg_qqplot( pvals.POOxM.cntrl.scan.top20 ) +
labs( title = "PoOxMe, control dataset",
subtitle = "top 20 SNPs from PoO scan on CLP dataset" ) +
geom_label_repel( data = cur.labels, aes( x, y, label = label ), xlim = c( 1.5,NA ) ) +
theme( axis.text = element_text( size = 12 ), axis.title = element_text( size = 14 ),
title = element_text( size = 16 ) )
## Warning: Removed 1 rows containing missing values (geom_path).

ggsave( filename = "PoOxM_top20SNPs-PoO-scan_CLP_cntrl_mult_betas_gg-qqplot_square.png",
width = 14, units = "cm", height = 14 )
## Warning: Removed 1 rows containing missing values (geom_path).