library(SingleCellExperiment)
library(DESeq2)
library(ggplot2)
library(ComplexHeatmap)
library(circlize)
library(EnhancedVolcano)
library(scConvexNMF)
#' Function to return object for ggplot2 plotting
#' @param size_text Size of the text to use for plotting
#' @param leg_pos Position of legend
#' @return ggplot theme object
theme_plot <- function(size_text=15,
leg_pos="right",
size_text_titles=NULL,
classic=FALSE,
line_size=0.85,
line_size_color="black",
axis_ticks_length=0.25,
axis_ticks_color="black",
rotate_x_axis=TRUE
){
require(ggplot2)
if( is.null(size_text_titles) ){
size_text_titles<- size_text + 2
}
if( classic ){
gg.plots<- theme_classic()
}else{
gg.plots<- theme_bw()
}
gg.plots <- gg.plots +
theme(axis.line=element_line(linewidth=line_size, colour=line_size_color),
axis.ticks=element_line(colour=axis_ticks_color, linewidth=line_size),
axis.ticks.length=unit(axis_ticks_length, "cm"),
axis.title.x=element_text(size=size_text_titles),
legend.position=leg_pos,
plot.title=element_text(hjust=0.5, size=size_text),
axis.text.y=element_text(size=size_text, color="black"),
axis.title.y=element_text(size=size_text_titles) )
if( rotate_x_axis) {
gg.plots<- gg.plots +
theme(axis.text.x=element_text(size=size_text, angle=45, hjust=1, color=line_size_color) )
}else{
gg.plots<- gg.plots +
theme(axis.text.x = element_text(size=size_text, angle = 90, vjust = 0.5, hjust=1, color=line_size_color))
}
}
norm_rpm<- function( E ){
return( scale( E, center=F, scale=apply(E,2,sum) ) * 1e6 )
}
run_pca<- function(inp_mat=NULL,
transpose=TRUE
) {
## Transposing
if( transpose ){
inp_mat<- t(inp_mat)
}
## Calculating PCA
dat_pca<- prcomp( inp_mat, center=TRUE, scale.=FALSE)
pca_obj<- data.frame(dat_pca$x)
## Output results
return(pca_obj)
}
plot_dimred <- function(dim_obj,
var_plot=NULL,
meta=NULL,
center=FALSE,
size_text=20,
size_dot=0.5,
leg_pos="right",
cols_use=NULL,
title_use="",
size_guide_legend=7,
use_ggrastr=FALSE,
ggrastr_dpi=100,
ggrastr_layers="Point"
){
require(ggplot2)
require(RColorBrewer)
require(ggrastr)
require(viridis)
col1<- colnames(dim_obj)[1]
col2<- colnames(dim_obj)[2]
if( is.null(meta) ){
meta<- dim_obj[,-c(1:2), drop=FALSE]
}
if( !is.null(var_plot) ){
colour<- meta[,var_plot]
if(is.numeric(colour)){
if( center ){
dim_obj[,var_plot] <- colour - mean(colour)
lim <- quantile(abs(dim_obj[,var_plot]),0.9999)
}else{
dim_obj[,var_plot] <- colour
}
ggp<- ggplot(dim_obj, aes_string( col1, col2, colour=var_plot))
if( use_ggrastr ){
ggp<- ggp + rasterise(geom_point(size=size_dot), dpi = ggrastr_dpi, layers=ggrastr_layers)
}else{
ggp<- ggp + geom_point(size=size_dot)
}
if( center) {
ggp<- ggp +
scale_color_gradientn( limits=c(-lim,lim), colours=c("blue","#d8d8d8","red") )
}else{
ggp<- ggp +
scale_color_viridis()
}
ggp<- ggp +
theme_plot(size_text=size_text, leg_pos=leg_pos)+
labs(color=var_plot)
} else {
dim_obj[,var_plot] <- colour
ggp<- ggplot(dim_obj, aes_string(col1,col2, color=var_plot))
if( use_ggrastr ){
ggp<- ggp + rasterise(geom_point(size=size_dot), dpi = ggrastr_dpi, layers=ggrastr_layers)
}else{
ggp<- ggp + geom_point(size=size_dot)
}
ggp<- ggp +
theme_plot(size_text=size_text, leg_pos=leg_pos)+
guides(colour = guide_legend(override.aes = list(size=size_guide_legend)))+
labs(color=var_plot)
if( !is.null(cols_use) ){
ggp<- ggp +
scale_color_manual(values=c(cols_use))
}
}
}else{
ggp<- ggplot(dim_obj, aes_string( col1, col2))
if( use_ggrastr ){
ggp<- ggp + rasterise(geom_point(size=size_dot), dpi = ggrastr_dpi, layers=ggrastr_layers)
}else{
ggp<- ggp + geom_point(size=size_dot)
}
ggp<- ggp +
theme_plot(size_text=size_text, leg_pos=leg_pos)
}
return(ggp)
}
The DESeq2 object can be found at Zenodo.
# Reading SCE object
dds<- readRDS("DESeq2_dds_malignant.rds")
meta<- data.frame(colData(dds))
GSEA data
lis_gsea<- readRDS("lis_gsea.rds")
vsd <- vst(dds, blind=FALSE)
topVarGenes <- order(rowVars(assay(vsd)),decreasing=TRUE)[1:1000]
pca_obj<- cbind( run_pca( assay(vsd)[topVarGenes,]), meta)
plot_dimred(pca_obj, var_plot="tumor_site", size_dot=3, cols_use=c("red", "blue"))
## Loading required package: RColorBrewer
## Loading required package: ggrastr
## Loading required package: viridis
## Loading required package: viridisLite
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
res<- data.frame( results(dds, name= "tumor_sitemetastasis") )
res$gene<- rownames(res)
EnhancedVolcano(res,
title="Metastasis vs primary",
lab = res$gene,
x = 'log2FoldChange',
y = 'padj',
cutoffLineType = 'blank',
pCutoff = 0.1,
FCcutoff = 0,
drawConnectors = TRUE,
ylim= c(0,6),
xlim= c(-10, 10),
raster=TRUE,
col=c('grey','grey', 'red', 'red'),
colAlpha = 0.5,
gridlines.major = FALSE,
gridlines.minor = FALSE
)
## Warning: ggrepel: 92 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
names(lis_gsea$malignant)
## [1] "gsea_stats" "programs" "ranks"
gene_ranks<- lis_gsea$malignant$ranks
norm_counts<- norm_rpm(counts(dds))
identical(rownames(meta), colnames(norm_counts))
## [1] TRUE
length(intersect(rownames(gene_ranks), rownames(norm_counts) ) )
## [1] 13661
sig_res<- res[which(res$padj < 0.05),]
# Establish order of genes
met_sig_res<- sig_res[which(sig_res$log2FoldChange > 0),]
pri_sig_res<- sig_res[which(sig_res$log2FoldChange < 0),]
met_gene_ranks <- gene_ranks[rownames(met_sig_res),]
met_gene_ranks<- met_gene_ranks[order(met_gene_ranks$SCORE),]
pri_gene_ranks <- gene_ranks[rownames(pri_sig_res),]
pri_gene_ranks<- pri_gene_ranks[order(pri_gene_ranks$SCORE),]
order_genes<- c(rownames(pri_gene_ranks), rownames(met_gene_ranks))
sig_res<- sig_res[order_genes,]
summary(abs(sig_res$log2FoldChange))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.7407 1.2945 2.0313 2.9550 4.0905 9.4294
expr_mat<- norm_counts[order_genes,]
expr_mat<- scale(t(expr_mat) )
summary(c(expr_mat))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -1.9065 -0.5823 -0.3327 0.0000 0.2923 3.4548
# Ordering samples
primary_samples<- rownames(meta[meta$tumor_site == "primary",])
met_samples<- rownames(meta[meta$tumor_site == "metastasis",])
order_samples<- names(c(sort(rowMeans(expr_mat[primary_samples,]), decreasing=T), sort(rowMeans(expr_mat[met_samples,]), decreasing=F) ))
#
expr_mat<- expr_mat[order_samples,]
# Annotation
row_ha<- rowAnnotation(df=meta[order_samples,c("tumor_site", "class")],
col=list(
tumor_site= c("primary" = "red", "metastasis" = "blue" ),
class = c("patient" = "#41cfe3", "PDX" = "#e341cf")
)
)
gene_annot<- data.frame(row.names=rownames(sig_res),
group= ifelse(sig_res$log2FoldChange>0, "up", "down") )
top_ha<- HeatmapAnnotation(df=gene_annot,
col=list(group=c("up" = "orange", "down" = "cyan") ) )
# Color
range_val<- quantile(c(abs(expr_mat)), 0.96)
col_fun <- colorRamp2(
seq(-range_val, range_val, length.out = 7), # automatically gets min and max
c("#2b00ad", "#4019b5", "#6b58ef", "white", "#ff5a5a", "#d60c00", "darkred")
)
ht1<- Heatmap(expr_mat,
col=col_fun,
cluster_columns=F,
cluster_rows=F,
clustering_distance_rows = "pearson",
clustering_distance_columns = "pearson",
clustering_method_row="average",
clustering_method_col="average",
left_annotation=row_ha,
top_annotation=top_ha,
row_names_gp=gpar(fontsize=9),
column_names_gp=gpar(fontsize=7),
rect_gp = gpar(col = "black", lwd = 1),
border=T,
use_raster=T,
heatmap_legend_param = list(
title = "Expression"
)
)
draw(ht1)
lis_spatial_Soupir<- readRDS("lis_spatial_Soupir.rds")
names(lis_spatial_Soupir)
## [1] "meta" "df_coords" "res_malignant" "res_macrophage"
meta<- lis_spatial_Soupir$meta
df_coords<- lis_spatial_Soupir$df_coords
res_malignant<- lis_spatial_Soupir$res_malignant
lis_all<- list()
vec_samples<- names(res_malignant)
# Summary of spatial analysis
for( sample_name in vec_samples ){
res<- res_malignant[[sample_name]]
res$stats <- res$stats[order(res$stats$p.value,res$stats$fdr),]
res$stats$Sample<- sample_name
res$stats$Comparison<- paste0(res$stats$x, "__", res$stats$y)
# Calculate confidence intervals
z <- atanh(res$stats$cor)
res$stats$SE_z <- 1 / sqrt(res$stats$effective_n - 3)
# 95% confidence interval on z scale
z_lower <- z - 1.96 * res$stats$SE_z
z_upper <- z + 1.96 * res$stats$SE_z
# Convert back to r scale
res$stats$r_lower_95 <- tanh(z_lower)
res$stats$r_upper_95 <- tanh(z_upper)
res$stats$signed_neg_log_fdr<- sign(res$stats$cor) * -log10(res$stats$fdr)
lis_all[[sample_name]]<- res$stats
}
res_all<- do.call(rbind, lis_all)
Comparison<- "Malignant_density__Malignant___LV12"
ggdat<- res_all[res_all$Comparison == Comparison,]
ggdat<- ggdat[ggdat$k == 3,]
lim <- stats::quantile(abs(ggdat$signed_neg_log_fdr),0.99, na.rm=T)
# Correlation plot
ggplot( ggdat, aes(y=Sample, x=cor, color=signed_neg_log_fdr ) ) +
geom_point(size=1) +
geom_errorbar(aes(xmin = r_lower_95, xmax = r_upper_95), width = 0.2) + # CI error bars
geom_vline(xintercept=0, linetype="dashed", color = "red") +
scale_color_gradientn( limits=c(-lim,lim), colours=c("blue","grey","red"), oob=scales::squish ) +
facet_wrap(~k) +
labs(title=Comparison) +
theme_plot(classic=T, size_text=10)
Comparison<- "Malignant_density__Malignant___LV48"
ggdat<- res_all[res_all$Comparison == Comparison,]
ggdat<- ggdat[ggdat$k == 3,]
lim <- stats::quantile(abs(ggdat$signed_neg_log_fdr),0.99, na.rm=T)
# Correlation plot
ggplot( ggdat, aes(y=Sample, x=cor, color=signed_neg_log_fdr ) ) +
geom_point(size=1) +
geom_errorbar(aes(xmin = r_lower_95, xmax = r_upper_95), width = 0.2) + # CI error bars
geom_vline(xintercept=0, linetype="dashed", color = "red") +
scale_color_gradientn( limits=c(-lim,lim), colours=c("blue","grey","red"), oob=scales::squish ) +
facet_wrap(~k) +
labs(title=Comparison) +
theme_plot(classic=T, size_text=10)
Meta-analysis
library(psychmeta)
## ----------------------------------------------------- psychmeta version 2.7.0 --
##
## Please report any bugs to github.com/psychmeta/psychmeta/issues
## or issues@psychmeta.com
##
## We work hard to produce these open-source tools for the R community.
## Please cite psychmeta when you use it in your research:
## Dahlke, J. A., & Wiernik, B. M. (2019). psychmeta: An R package for
## psychometric meta-analysis. Applied Psychological Measurement, 43(5), 415-416.
## https://doi.org/10.1177/0146621618795933
##
## --------------------------------------------------------------- Version check --
## ✔ Yay! Your copy of psychmeta is up to date!
########################################
# Meta analysis
########################################
lis_meta_res<- list()
for( k in sort(unique( res_all$k )) ){
res<- res_all[res_all$k == k,]
ma_res <- ma_r(rxyi = cor,
n = effective_n,
construct_x = x,
construct_y = y,
sample_id = Sample,
data = res
)
meta_res<- data.frame( get_metatab(ma_res) )
meta_res$k<- k
lis_meta_res[[k]]<- meta_res
}
## **** Running ma_r: Meta-analysis of correlations ****
##
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 3s Computing meta-analyses [====>------------------] 22% est. time remaining: 3s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 3s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 3s Computing meta-analyses [======>----------------] 30% est. time remaining: 2s Computing meta-analyses [======>----------------] 32% est. time remaining: 2s Computing meta-analyses [=======>---------------] 35% est. time remaining: 2s Computing meta-analyses [========>--------------] 38% est. time remaining: 2s Computing meta-analyses [========>--------------] 40% est. time remaining: 2s Computing meta-analyses [=========>-------------] 42% est. time remaining: 2s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 1s Computing meta-analyses [===============>-------] 68% est. time remaining: 1s Computing meta-analyses [===============>-------] 70% est. time remaining: 1s Computing meta-analyses [================>------] 72% est. time remaining: 1s Computing meta-analyses [================>------] 75% est. time remaining: 1s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 1s Computing meta-analyses [===============>-------] 68% est. time remaining: 1s Computing meta-analyses [===============>-------] 70% est. time remaining: 1s Computing meta-analyses [================>------] 72% est. time remaining: 1s Computing meta-analyses [================>------] 75% est. time remaining: 1s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 0s Computing meta-analyses [===============>-------] 68% est. time remaining: 0s Computing meta-analyses [===============>-------] 70% est. time remaining: 0s Computing meta-analyses [================>------] 72% est. time remaining: 0s Computing meta-analyses [================>------] 75% est. time remaining: 0s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 0s Computing meta-analyses [===============>-------] 68% est. time remaining: 0s Computing meta-analyses [===============>-------] 70% est. time remaining: 0s Computing meta-analyses [================>------] 72% est. time remaining: 0s Computing meta-analyses [================>------] 75% est. time remaining: 0s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 0s Computing meta-analyses [===============>-------] 68% est. time remaining: 0s Computing meta-analyses [===============>-------] 70% est. time remaining: 0s Computing meta-analyses [================>------] 72% est. time remaining: 0s Computing meta-analyses [================>------] 75% est. time remaining: 0s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
meta_res<- do.call(rbind, lis_meta_res)
# Calculate p-value
meta_res$Z <- meta_res$mean_r / meta_res$se_r
meta_res$p <- 2 * pnorm(-abs(meta_res$Z))
meta_res$fdr <- p.adjust(meta_res$p,method="fdr")
meta_res$signed_neg_log_fdr<- sign(meta_res$mean_r) * -log10(meta_res$fdr)
meta_res <- meta_res[order(-meta_res$p),]
Figure meta analysis
order_lvs<- sub("Malignant___", "", unique(meta_res$construct_y))
df_dat<- meta_res[meta_res$k == 3,]
df_dat<- df_dat[df_dat$construct_y %in% c("Malignant___LV12", "Malignant___LV48"),]
df_dat$construct_y<- sub("Malignant___", "", df_dat$construct_y)
lim <- stats::quantile(abs(df_dat$signed_neg_log_fdr),0.99, na.rm=T)
df_dat$construct_y<- factor(df_dat$construct_y, levels=order_lvs)
# Main plot
ggplot(df_dat, aes( mean_r, construct_y, color=signed_neg_log_fdr) ) +
geom_point(size=1) +
geom_errorbar(aes(xmin = CI_LL_95, xmax = CI_UL_95), width = 0.2) + # CI error bars
geom_vline(xintercept=0, linetype="dashed", color = "red") +
scale_color_gradientn( limits=c(-lim,lim), colours=c("blue","grey","red"), oob=scales::squish ) +
theme_plot(classic=T, size_text=9, rotate_x_axis=F, leg_pos="right")
## Plot for specific samples
## Program 12 -- RCC 5_1
sample_name<- "RCC5_1"
Comparison<- "Malignant_density__Malignant___LV12"
obj<- res_malignant[[sample_name]]
meta_sample<- cbind(meta[rownames(obj$Y),], df_coords[rownames(obj$Y),])
obj$stats <- obj$stats[order(obj$stats$p.value,obj$stats$fdr),]
obj$stats$Comparison<- paste0(obj$stats$x, "__", obj$stats$y)
idx_plot<- which( obj$stats$Comparison == Comparison & obj$stats$k == 3)[1]
k<- obj$stats$k[idx_plot]
var1<- obj$stats$x[idx_plot]
var2<- obj$stats$y[idx_plot]
# Celltypes
ggplot(meta_sample,aes(x=x,y=y,color=lasso_final_curated)) +
geom_point() +
theme_plot(leg_pos="none")
# Activities
ggplot(data.frame(x=meta_sample$x,y=meta_sample$y,LV=obj$Y[,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,color=LV,alpha=(!is.na(LV))*1)) +
scale_color_gradient2(low="blue",mid="lightgrey",high="red") +
ggtitle(var2) +
theme_plot()
# Scatterplot
ggplot(data.frame(x=obj$smoothed_X[[k]][,var1],y=obj$smoothed_Y[[k]][,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,alpha=weights)) +
scale_alpha(range=c(0,1)) +
theme_plot()
## Warning: Removed 645 rows containing missing values or values outside the scale
## range (`geom_point()`).
## Program 48 -- RCC 3_12
sample_name<- "RCC3_12"
Comparison<- "Malignant_density__Malignant___LV48"
obj<- res_malignant[[sample_name]]
meta_sample<- cbind(meta[rownames(obj$Y),], df_coords[rownames(obj$Y),])
obj$stats <- obj$stats[order(obj$stats$p.value,obj$stats$fdr),]
obj$stats$Comparison<- paste0(obj$stats$x, "__", obj$stats$y)
idx_plot<- which( obj$stats$Comparison == Comparison & obj$stats$k == 3)[1]
k<- obj$stats$k[idx_plot]
var1<- obj$stats$x[idx_plot]
var2<- obj$stats$y[idx_plot]
# Celltypes
ggplot(meta_sample,aes(x=x,y=y,color=lasso_final_curated)) +
geom_point() +
theme_plot(leg_pos="none")
# Activities
ggplot(data.frame(x=meta_sample$x,y=meta_sample$y,LV=obj$Y[,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,color=LV,alpha=(!is.na(LV))*1)) +
scale_color_gradient2(low="blue",mid="lightgrey",high="red") +
ggtitle(var2) +
theme_plot()
# Scatterplot
ggplot(data.frame(x=obj$smoothed_X[[k]][,var1],y=obj$smoothed_Y[[k]][,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,alpha=weights)) +
scale_alpha(range=c(0,1)) +
theme_plot()
## Warning: Removed 4295 rows containing missing values or values outside the
## scale range (`geom_point()`).
lis_spatial_PID037<- readRDS("lis_spatial_PID037.rds")
names(lis_spatial_PID037)
## [1] "res_malignant" "res_macrophage"
# PID037 object
PID037_object<- readRDS("PID037_object.rds")
meta<- PID037_object$meta
df_coords<- meta[,c("CenterX_global_px", "CenterY_global_px")]
colnames(df_coords)<- c("x", "y")
res_malignant<- lis_spatial_PID037$res_malignant
lis_all<- list()
vec_samples<- names(res_malignant)
# Summary of spatial analysis
for( sample_name in vec_samples ){
res<- res_malignant[[sample_name]]
res$stats <- res$stats[order(res$stats$p.value,res$stats$fdr),]
res$stats$Sample<- sample_name
res$stats$Comparison<- paste0(res$stats$x, "__", res$stats$y)
# Calculate confidence intervals
z <- atanh(res$stats$cor)
res$stats$SE_z <- 1 / sqrt(res$stats$effective_n - 3)
# 95% confidence interval on z scale
z_lower <- z - 1.96 * res$stats$SE_z
z_upper <- z + 1.96 * res$stats$SE_z
# Convert back to r scale
res$stats$r_lower_95 <- tanh(z_lower)
res$stats$r_upper_95 <- tanh(z_upper)
res$stats$signed_neg_log_fdr<- sign(res$stats$cor) * -log10(res$stats$fdr)
lis_all[[sample_name]]<- res$stats
}
res_all<- do.call(rbind, lis_all)
Meta-analysis
library(psychmeta)
########################################
# Meta analysis
########################################
lis_meta_res<- list()
for( k in sort(unique( res_all$k )) ){
res<- res_all[res_all$k == k,]
ma_res <- ma_r(rxyi = cor,
n = effective_n,
construct_x = x,
construct_y = y,
sample_id = Sample,
data = res
)
meta_res<- data.frame( get_metatab(ma_res) )
meta_res$k<- k
lis_meta_res[[k]]<- meta_res
}
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 0s Computing meta-analyses [===============>-------] 68% est. time remaining: 0s Computing meta-analyses [===============>-------] 70% est. time remaining: 0s Computing meta-analyses [================>------] 72% est. time remaining: 0s Computing meta-analyses [================>------] 75% est. time remaining: 0s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 2s Computing meta-analyses [=========>-------------] 42% est. time remaining: 2s Computing meta-analyses [=========>-------------] 45% est. time remaining: 2s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 1s Computing meta-analyses [===============>-------] 68% est. time remaining: 1s Computing meta-analyses [===============>-------] 70% est. time remaining: 1s Computing meta-analyses [================>------] 72% est. time remaining: 1s Computing meta-analyses [================>------] 75% est. time remaining: 1s Computing meta-analyses [=================>-----] 78% est. time remaining: 1s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 1s Computing meta-analyses [===============>-------] 68% est. time remaining: 1s Computing meta-analyses [===============>-------] 70% est. time remaining: 0s Computing meta-analyses [================>------] 72% est. time remaining: 0s Computing meta-analyses [================>------] 75% est. time remaining: 0s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 1s Computing meta-analyses [===============>-------] 68% est. time remaining: 1s Computing meta-analyses [===============>-------] 70% est. time remaining: 0s Computing meta-analyses [================>------] 72% est. time remaining: 0s Computing meta-analyses [================>------] 75% est. time remaining: 0s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
## **** Running ma_r: Meta-analysis of correlations ****
## Computing meta-analyses [==>--------------------] 15% est. time remaining: 1s Computing meta-analyses [===>-------------------] 18% est. time remaining: 1s Computing meta-analyses [====>------------------] 20% est. time remaining: 1s Computing meta-analyses [====>------------------] 22% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 25% est. time remaining: 1s Computing meta-analyses [=====>-----------------] 28% est. time remaining: 1s Computing meta-analyses [======>----------------] 30% est. time remaining: 1s Computing meta-analyses [======>----------------] 32% est. time remaining: 1s Computing meta-analyses [=======>---------------] 35% est. time remaining: 1s Computing meta-analyses [========>--------------] 38% est. time remaining: 1s Computing meta-analyses [========>--------------] 40% est. time remaining: 1s Computing meta-analyses [=========>-------------] 42% est. time remaining: 1s Computing meta-analyses [=========>-------------] 45% est. time remaining: 1s Computing meta-analyses [==========>------------] 48% est. time remaining: 1s Computing meta-analyses [===========>-----------] 50% est. time remaining: 1s Computing meta-analyses [===========>-----------] 52% est. time remaining: 1s Computing meta-analyses [============>----------] 55% est. time remaining: 1s Computing meta-analyses [============>----------] 57% est. time remaining: 1s Computing meta-analyses [=============>---------] 60% est. time remaining: 1s Computing meta-analyses [=============>---------] 62% est. time remaining: 1s Computing meta-analyses [==============>--------] 65% est. time remaining: 1s Computing meta-analyses [===============>-------] 68% est. time remaining: 1s Computing meta-analyses [===============>-------] 70% est. time remaining: 0s Computing meta-analyses [================>------] 72% est. time remaining: 0s Computing meta-analyses [================>------] 75% est. time remaining: 0s Computing meta-analyses [=================>-----] 78% est. time remaining: 0s Computing meta-analyses [=================>-----] 80% est. time remaining: 0s Computing meta-analyses [==================>----] 82% est. time remaining: 0s Computing meta-analyses [===================>---] 85% est. time remaining: 0s Computing meta-analyses [===================>---] 88% est. time remaining: 0s Computing meta-analyses [====================>--] 90% est. time remaining: 0s Computing meta-analyses [====================>--] 92% est. time remaining: 0s Computing meta-analyses [=====================>-] 95% est. time remaining: 0s Computing meta-analyses [=====================>-] 98% est. time remaining: 0s Computing meta-analyses [=======================] 100% est. time remaining: 0s
meta_res<- do.call(rbind, lis_meta_res)
# Calculate p-value
meta_res$Z <- meta_res$mean_r / meta_res$se_r
meta_res$p <- 2 * pnorm(-abs(meta_res$Z))
meta_res$fdr <- p.adjust(meta_res$p,method="fdr")
meta_res$signed_neg_log_fdr<- sign(meta_res$mean_r) * -log10(meta_res$fdr)
meta_res <- meta_res[order(-meta_res$p),]
Figure meta analysis
order_lvs<- sub("Malignant___", "", unique(meta_res$construct_y))
df_dat<- meta_res[meta_res$k == 3,]
df_dat<- df_dat[df_dat$construct_y %in% c("Malignant___LV12", "Malignant___LV48"),]
df_dat$construct_y<- sub("Malignant___", "", df_dat$construct_y)
lim <- stats::quantile(abs(df_dat$signed_neg_log_fdr),0.99, na.rm=T)
df_dat$construct_y<- factor(df_dat$construct_y, levels=order_lvs)
# Main plot
ggplot(df_dat, aes( mean_r, construct_y, color=signed_neg_log_fdr) ) +
geom_point(size=1) +
geom_errorbar(aes(xmin = CI_LL_95, xmax = CI_UL_95), width = 0.2) + # CI error bars
geom_vline(xintercept=0, linetype="dashed", color = "red") +
scale_color_gradientn( limits=c(-lim,lim), colours=c("blue","grey","red"), oob=scales::squish ) +
theme_plot(classic=T, size_text=9, rotate_x_axis=F, leg_pos="right")
## Plot for specific samples
## Program 12 -- FOV17
sample_name<- "17"
Comparison<- "Malignant_density__Malignant___LV12"
obj<- res_malignant[[sample_name]]
meta_sample<- cbind(meta[rownames(obj$Y),], df_coords[rownames(obj$Y),])
obj$stats <- obj$stats[order(obj$stats$p.value,obj$stats$fdr),]
obj$stats$Comparison<- paste0(obj$stats$x, "__", obj$stats$y)
idx_plot<- which( obj$stats$Comparison == Comparison & obj$stats$k == 3)[1]
k<- obj$stats$k[idx_plot]
var1<- obj$stats$x[idx_plot]
var2<- obj$stats$y[idx_plot]
# Celltypes
ggplot(meta_sample,aes(x=x,y=y,color=cell_type)) +
geom_point() +
theme_plot(leg_pos="none")
# Activities
ggplot(data.frame(x=meta_sample$x,y=meta_sample$y,LV=obj$Y[,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,color=LV,alpha=(!is.na(LV))*1)) +
scale_color_gradient2(low="blue",mid="lightgrey",high="red") +
ggtitle(var2) +
theme_plot()
# Scatterplot
ggplot(data.frame(x=obj$smoothed_X[[k]][,var1],y=obj$smoothed_Y[[k]][,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,alpha=weights)) +
scale_alpha(range=c(0,1)) +
theme_plot()
## Warning: Removed 788 rows containing missing values or values outside the scale
## range (`geom_point()`).
## Program 48 -- 4
sample_name<- "4"
Comparison<- "Malignant_density__Malignant___LV48"
obj<- res_malignant[[sample_name]]
meta_sample<- cbind(meta[rownames(obj$Y),], df_coords[rownames(obj$Y),])
obj$stats <- obj$stats[order(obj$stats$p.value,obj$stats$fdr),]
obj$stats$Comparison<- paste0(obj$stats$x, "__", obj$stats$y)
idx_plot<- which( obj$stats$Comparison == Comparison & obj$stats$k == 3)[1]
k<- obj$stats$k[idx_plot]
var1<- obj$stats$x[idx_plot]
var2<- obj$stats$y[idx_plot]
# Celltypes
ggplot(meta_sample,aes(x=x,y=y,color=cell_type)) +
geom_point() +
theme_plot(leg_pos="none")
# Activities
ggplot(data.frame(x=meta_sample$x,y=meta_sample$y,LV=obj$Y[,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,color=LV,alpha=(!is.na(LV))*1)) +
scale_color_gradient2(low="blue",mid="lightgrey",high="red") +
ggtitle(var2) +
theme_plot()
# Scatterplot
ggplot(data.frame(x=obj$smoothed_X[[k]][,var1],y=obj$smoothed_Y[[k]][,var2],weights=obj$weights[,k])) +
geom_point(aes(x=x,y=y,alpha=weights)) +
scale_alpha(range=c(0,1)) +
theme_plot()
## Warning: Removed 847 rows containing missing values or values outside the scale
## range (`geom_point()`).
sessionInfo()
## R version 4.3.1 (2023-06-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: AlmaLinux 9.6 (Sage Margay)
##
## Matrix products: default
## BLAS/LAPACK: FlexiBLAS IMKL; LAPACK version 3.11.0
##
## locale:
## [1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
## [5] LC_MONETARY=en_CA.UTF-8 LC_MESSAGES=en_CA.UTF-8
## [7] LC_PAPER=en_CA.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C
##
## time zone: Canada/Eastern
## tzcode source: system (glibc)
##
## attached base packages:
## [1] grid stats4 stats graphics grDevices utils datasets
## [8] methods base
##
## other attached packages:
## [1] psychmeta_2.7.0 viridis_0.6.4
## [3] viridisLite_0.4.2 ggrastr_1.0.2
## [5] RColorBrewer_1.1-3 scConvexNMF_0.0.0.9000
## [7] EnhancedVolcano_1.20.0 ggrepel_0.9.4
## [9] circlize_0.4.15 ComplexHeatmap_2.18.0
## [11] ggplot2_3.5.2 DESeq2_1.42.0
## [13] SingleCellExperiment_1.24.0 SummarizedExperiment_1.32.0
## [15] Biobase_2.62.0 GenomicRanges_1.54.1
## [17] GenomeInfoDb_1.38.5 IRanges_2.36.0
## [19] S4Vectors_0.40.2 BiocGenerics_0.48.1
## [21] MatrixGenerics_1.14.0 matrixStats_1.2.0
##
## loaded via a namespace (and not attached):
## [1] tidyselect_1.2.0 farver_2.1.1 dplyr_1.1.4
## [4] vipor_0.4.7 bitops_1.0-7 fastmap_1.1.1
## [7] RCurl_1.98-1.14 digest_0.6.33 lifecycle_1.0.4
## [10] cluster_2.1.6 Cairo_1.6-2 magrittr_2.0.3
## [13] compiler_4.3.1 progress_1.2.3 rlang_1.1.6
## [16] sass_0.4.8 tools_4.3.1 utf8_1.2.4
## [19] yaml_2.3.8 knitr_1.45 prettyunits_1.2.0
## [22] labeling_0.4.3 S4Arrays_1.2.0 curl_6.2.3
## [25] DelayedArray_0.28.0 abind_1.4-5 BiocParallel_1.36.0
## [28] purrr_1.0.2 withr_2.5.2 fansi_1.0.6
## [31] colorspace_2.1-0 scales_1.3.0 iterators_1.0.14
## [34] cli_3.6.2 rmarkdown_2.29 crayon_1.5.2
## [37] generics_0.1.3 rjson_0.2.21 ggbeeswarm_0.7.2
## [40] cachem_1.0.8 zlibbioc_1.48.0 parallel_4.3.1
## [43] XVector_0.42.0 vctrs_0.6.5 boot_1.3-28.1
## [46] Matrix_1.6-4 jsonlite_1.8.8 hms_1.1.3
## [49] GetoptLong_1.0.5 clue_0.3-65 beeswarm_0.4.0
## [52] magick_2.9.0 locfit_1.5-9.8 foreach_1.5.2
## [55] tidyr_1.3.0 jquerylib_0.1.4 glue_1.7.0
## [58] codetools_0.2-19 gtable_0.3.4 shape_1.4.6
## [61] munsell_0.5.0 tibble_3.2.1 pillar_1.9.0
## [64] htmltools_0.5.7 GenomeInfoDbData_1.2.11 R6_2.5.1
## [67] doParallel_1.0.17 evaluate_0.23 lattice_0.22-5
## [70] highr_0.10 png_0.1-8 bslib_0.6.1
## [73] Rcpp_1.0.12 gridExtra_2.3 SparseArray_1.2.3
## [76] xfun_0.41 pkgconfig_2.0.3 GlobalOptions_0.1.2