
Last chance! 50% off unlimited learning
Sale ends in
Plot a Venn diagrams for up to 5 sets
venn(data, universe=NA, small=0.7, showSetLogicLabel=FALSE,
simplify=FALSE, show.plot=TRUE, intersections=TRUE, names,
...)# S3 method for venn
plot(x, y, ..., small=0.7, showSetLogicLabel=FALSE,
simplify=FALSE)
Either a list list containing vectors of names or indices of group intersections, or a data frame containing boolean indicators of group intersectionship (see below)
Subset of valid name/index elements. Values ignore values
in codedata not in this list will be ignored. Use NA
to
use all elements of data
(the default).
Character scaling of the smallest group counts
Logical flag indicating whether the internal group label should be displayed
Logical flag indicating whether unobserved groups should be omitted.
Logical flag indicating whether the plot should be displayed. If false, simply returns the group count matrix.
Logical flag indicating if the returned object should have the attribute "individuals.in.intersections" featuring for every set a list of individuals that are assigned to it.
Ignored
Optional graphical parameters.
Optional vector of group names.
Invisibly returns an object of class "venn", containing:
A matrix of all possible sets of groups, and the observed count of items belonging to each The fist column contains observed counts, subsequent columns contain 0-1 indicators of group intersectionship.
If intersections=TRUE
, the attribute intersections
will be a list of vectors containing the names of the elements
belonging to each subset.
data
should be either a named list of vectors containing
character string names ("GeneAABBB", "GeneBBBCY", .., "GeneXXZZ") or
indexes of group intersections (1, 2, .., N), or a data frame containing
indicator variables (TRUE, FALSE, TRUE, ..) for group intersectionship.
Group names will be taken from the component list element or column
names.
# NOT RUN {
##
## Example using a list of item names belonging to the
## specified group.
##
## construct some fake gene names..
oneName <- function() paste(sample(LETTERS,5,replace=TRUE),collapse="")
geneNames <- replicate(1000, oneName())
##
GroupA <- sample(geneNames, 400, replace=FALSE)
GroupB <- sample(geneNames, 750, replace=FALSE)
GroupC <- sample(geneNames, 250, replace=FALSE)
GroupD <- sample(geneNames, 300, replace=FALSE)
input <-list(GroupA,GroupB,GroupC,GroupD)
input
tmp <- venn(input)
attr(tmp, "intersections")
##
## Example using a list of item indexes belonging to the
## specified group.
##
GroupA.i <- which(geneNames %in% GroupA)
GroupB.i <- which(geneNames %in% GroupB)
GroupC.i <- which(geneNames %in% GroupC)
GroupD.i <- which(geneNames %in% GroupD)
input.i <-list(A=GroupA.i,B=GroupB.i,C=GroupC.i,D=GroupD.i)
input.i
venn(input.i)
##
## Example using a data frame of indicator ('f'lag) columns
##
GroupA.f <- geneNames %in% GroupA
GroupB.f <- geneNames %in% GroupB
GroupC.f <- geneNames %in% GroupC
GroupD.f <- geneNames %in% GroupD
input.df <- data.frame(A=GroupA.f,B=GroupB.f,C=GroupC.f,D=GroupD.f)
head(input.df)
venn(input.df)
## smaller set to create empty groupings
small <- input.df[1:20,]
venn(small, simplify=FALSE) # with empty groupings
venn(small, simplify=TRUE) # without empty groupings
## Capture group counts, but don't plot
tmp <- venn(input, show.plot=FALSE)
tmp
## Show internal binary group labels
venn(input, showSetLogicLabel=TRUE)
## Limit universe
tmp <- venn(input, universe=geneNames[1:100])
tmp
##
## Example to determine which elements are in A and B but not in
## C and D using the 'intersections' attribute.
##
tmp <- venn(input, intersection=TRUE)
isect <- attr(tmp, "intersection")
# Look at all of the subsets
str(isect)
# Extract and combine the subsets of interest..
AandB <- unique(c(isect$A, isect$B, isect$'A:B'))
# and look at the results
str(AandB)
##
## The full set of elements of each intersection is provided in the
## "interesections" attribute.
##
a<-venn(list(1:5,3:8), show.plot=FALSE)
intersections<-attr(a,"intersections")
print(intersections)
# $A
# [1] "1" "2"
#
# $B
# [1] "6" "7" "8"
#
# $`A:B`
# [1] "3" "4" "5"
# }
Run the code above in your browser using DataLab