Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(ggVennDiagram)
## -----------------------------------------------------------------------------
genes <- paste0("gene",1:1000)
set.seed(20231214)
gene_list <- list(A = sample(genes,100),
B = sample(genes,200),
C = sample(genes,300),
D = sample(genes,200))
## -----------------------------------------------------------------------------
library(ggVennDiagram)
library(ggplot2)
## -----------------------------------------------------------------------------
venn <- Venn(gene_list)
data <- process_data(venn)
ggplot() +
# 1. region count layer
geom_polygon(aes(X, Y, fill = count, group = id),
data = venn_regionedge(data)) +
# 2. set edge layer
geom_path(aes(X, Y, color = id, group = id),
data = venn_setedge(data),
show.legend = FALSE) +
# 3. set label layer
geom_text(aes(X, Y, label = name),
data = venn_setlabel(data)) +
# 4. region label layer
geom_label(aes(X, Y, label = count),
data = venn_regionlabel(data)) +
coord_equal() +
theme_void()
## -----------------------------------------------------------------------------
data
## -----------------------------------------------------------------------------
ggplot() +
# change mapping of color filling
geom_polygon(aes(X, Y, fill = id, group = id),
data = venn_regionedge(data),
show.legend = FALSE) +
# adjust edge size and color
geom_path(aes(X, Y, color = id, group = id),
data = venn_setedge(data),
linewidth = 3,
show.legend = FALSE) +
# show set label in bold
geom_text(aes(X, Y, label = name),
fontface = "bold",
data = venn_setlabel(data)) +
# add a alternative region name
geom_label(aes(X, Y, label = id),
data = venn_regionlabel(data),
alpha = 0.5) +
coord_equal() +
theme_void()
## -----------------------------------------------------------------------------
set.seed(20231225)
y = list(
A = sample(letters, 8) |> sort(),
B = sample(letters, 8) |> sort(),
C = sample(letters, 8) |> sort(),
D = sample(letters, 8) |> sort())
# view the list
y
## -----------------------------------------------------------------------------
ggVennDiagram(y, show_intersect = TRUE, set_color = "black")
## -----------------------------------------------------------------------------
venn_y = Venn(y)
venn_y
## -----------------------------------------------------------------------------
# find the overlaping members of two or more sets
overlap(venn_y, 1:2) # members in both the first two sets
overlap(venn_y) # members in all the sets
# find the different members between sets and set unions
discern(venn_y, 1) # members in set 1, but not in all the resting sets by default
discern(venn_y, c("A","B"), 3) # members in set A & B, but not in the third set
# find the specific members in one or more sets
discern_overlap(venn_y, 1) # specific items in set 1, equals to `discern(venn_y, 1)`. Those members are not shared by all the other sets.
discern_overlap(venn_y, 1:2) # specific items in set 1 and set 2
## -----------------------------------------------------------------------------
venn_plot_data = process_data(venn_y)
# summary of VennPlotData object
venn_plot_data
## -----------------------------------------------------------------------------
# get the set data
venn_set(venn_plot_data)
# get subsets, i.e., regions
venn_region(venn_plot_data)
## -----------------------------------------------------------------------------
# get set edge
venn_setedge(venn_plot_data)
# get region edge
venn_regionedge(venn_plot_data)
## -----------------------------------------------------------------------------
df = venn_setedge(venn_plot_data)
plot(df$X, df$Y, asp = 1)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.