Setup
library(UpSetR)
library(ggplot2)
library(ComplexUpset)
##
## Attaching package: 'ComplexUpset'
## The following object is masked from 'package:UpSetR':
##
## upset
library(ggplot2movies)
Read in DEGs
star_brain <- read.delim("../../../bulkRNA/results/star/DEGs/LPS_Brain_gene_DEGs_FDRq0.05.txt",
header = TRUE, sep = "\t")
sn_brain <- read.delim("../../results/DEGs/individual/brain_pseudo_bulk_DEGs_LPS_vs_saline_pval_0.05.tsv",
sep = "\t", header = TRUE)
Subset lists
up_star_brain <- subset(star_brain$gene_name, star_brain$logFC > 0)
down_star_brain <- subset(star_brain$gene_name, star_brain$logFC < 0)
up_sn_brain <- subset(sn_brain$gene, sn_brain$avg_log2FC > 0)
down_sn_brain <- subset(sn_brain$gene, sn_brain$avg_log2FC < 0)
Up set plot
list_input <- list("Bulk brain up-regulated" = up_star_brain,
"Bulk brain down-regulated" = down_star_brain,
"snRNA brain up-regulated" = up_sn_brain,
"snRNA brain down-regulated" = down_sn_brain)
data <- fromList(list_input)
upset_gene <- upset(data, set_sizes=FALSE,
c('Bulk brain up-regulated','Bulk brain down-regulated','snRNA brain up-regulated', 'snRNA brain down-regulated'),
queries=list(
upset_query(set='Bulk brain up-regulated', fill='red'),
upset_query(set='Bulk brain down-regulated', fill='blue'),
upset_query(set='snRNA brain up-regulated', fill='red'),
upset_query(set='snRNA brain down-regulated', fill='blue')
),
base_annotations=list(
'Intersection size'=(
intersection_size(
bar_number_threshold=1, # show all numbers on top of bars
width=0.5, # reduce width of the bars
)
# add some space on the top of the bars
+ scale_y_continuous(expand=expansion(mult=c(0, 0.05)))
+ theme(
# hide grid lines
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
# show axis lines
axis.line=element_line(colour='black')
)
)
),
stripes=upset_stripes(
geom=geom_segment(size=12), # make the stripes larger
colors=c('grey95', 'white')
),
# to prevent connectors from getting the colorured
# use `fill` instead of `color`, together with `shape='circle filled'`
matrix=intersection_matrix(
geom=geom_point(
shape='circle filled',
size=3,
stroke=0.45
)
),
sort_sets='descending',
sort_intersections='descending'
)
upset_gene

# show the genes that shared up and shared down
shared_up <- intersect(up_star_brain, up_sn_brain)
shared_up
## [1] "SBNO2" "JDP2" "MXD1" "USP18" "PARP14" "MX2" "EPSTI1"
## [8] "BIRC2" "CEMIP2" "NOCT" "CDC25C" "TEAD4" "PLOD1" "LITAF"
## [15] "CCNL1" "DNAJB1" "BAZ1A" "B4GALT5" "PLEK" "HERC6" "HSPH1"
## [22] "B4GALT1" "HUNK" "HS6ST2" "ATP1A1" "BAG3" "RIPK2" "TRPM6"
## [29] "HSPB8" "LAP3" "STIP1" "SLC38A2" "RGS20" "CARS1" "CSRP2"
shared_down <- intersect(down_star_brain, down_sn_brain)
shared_down
## [1] "ARHGAP24" "SLCO2B1" "GRAMD1C" "FLI1" "HDAC9" "PDE3B"
## [7] "KCNK13" "DOCK8" "GPC5" "IL1RAPL2" "PDZRN4" "RCSD1"
## [13] "CGNL1" "P2RY12" "TMCC3" "LRMDA" "RASSF3" "ST6GAL1"
## [19] "DISC1" "PHACTR2" "TST" "SLC6A20" "GRM8" "LOXL3"
## [25] "SERINC5" "ARHGAP15" "DOCK2" "CDK6" "ZFPM2" "IQGAP2"
## [31] "TMEFF2" "CECR2" "ADAMTS10" "ACOX2" "ERCC6L2" "APBB1IP"
## [37] "BCKDHB" "BTBD7"