[BioC] Venn Diagram
Thomas Girke
thomas.girke at ucr.edu
Thu Jul 2 23:27:01 CEST 2009
There are plenty of options for this:
gplots does 2-5 way venn diagrams
http://cran.at.r-project.org/web/packages/gplots/index.html
vennerable has functions for proportional venn diagrams
http://doapstore.org/view.php?uri=nodeID%3A%2F%2F1000056780
My personal hack does 2-4 way diagrams:
http://faculty.ucr.edu/~tgirke/Documents/R_BioCond/R_BioCondManual.html#R_graphics_venn
In addition, there are also many online tools:
http://www.pangloss.com/seidel/Protocols/venn4.cgi
http://bioinfogp.cnb.csic.es/tools/venny/index.html
Thomas
On Thu, Jul 02, 2009 at 05:14:53PM -0400, Simon Noël wrote:
> Thank's you for your help but I already have produced a table like that. My
> code was really different. Your code run faster than mine... But the result
> is the same. What I really need for the next step is a Veen Diagram. To see
> how to create a 4 set may help me to see how to create more complicated one.
> Selon Hervé Pagès <hpages at fhcrc.org>, 01.07.2009:
>
> > Hi Simon,
> >
> > Simon Noël wrote:
> > > Hello every one.
> > >
> > > I have ten list of between 4 to 3000 genes and I woudlike to put them all
> > > together in a venn diagram.
> > >
> > > I have try to load the library ABarray and to use doVennDiagram but it can
> > only
> > > une 3 list.
> > >
> > > Does any one know a way to put all of my ten list in the same venn diagram?
> >
> > A venn diagramm is a 2-D drawing of all the possible intersections
> > between 2 or 3 sets where each set is represented by a simple 2-D
> > shape (typically a circle). In the case of 3 sets, the resulting
> > diagram defines a partitioning of the 2-D plane in 8 regions.
> > Some people have tried (with more or less success) to put 4 sets on
> > the diagram but then they need to use more complicated shapes and
> > the resulting diagram is not as easy to read anymore. With 10 sets,
> > you would end up with 1024 (2^10) regions in your drawing and you
> > would need to use extremely complicated shapes for each region
> > making it really hard to read! Maybe in that case it's easier
> > to generate the table below.
> >
> > ## Let's say your genes are in 'set1', 'set2', etc... Put all the
> > ## sets in a big list:
> >
> > mysets <- list(set1, set2, ..., set10)
> >
> > makeVennTable <- function(sets)
> > {
> > mkAllLogicalVect <- function(length)
> > {
> > if (length == 0L)
> > return(logical(0))
> > ans0 <- mkAllLogicalVect(length - 1L)
> > ans1 <- cbind(TRUE, ans0)
> > ans2 <- cbind(FALSE, ans0)
> > rbind(ans1, ans2)
> > }
> > lm <- mkAllLogicalVect(length(sets))
> > subsets <- apply(lm, MARGIN=1,
> > function(ii)
> > {
> > s <- sets[ii]
> > if (length(s) == 0)
> > return("")
> > paste(sort(unique(unlist(s))), collapse=",")
> > })
> > data.frame(lm, subsets)
> > }
> >
> > Then call makeVennTable() on 'mysets'. For example, with 5 small sets:
> >
> > > mysets <- list(c(1,5,12,4,9,29),
> > c(4,11,3,18),
> > c(22,4,12,19,8),
> > c(7,12,4,5,3),
> > c(25,24,4,2))
> >
> > > makeVennTable(mysets)
> > X1 X2 X3 X4 X5 subsets
> > 1 TRUE TRUE TRUE TRUE TRUE 1,2,3,4,5,7,8,9,11,12,18,19,22,24,25,29
> > 2 TRUE TRUE TRUE TRUE FALSE 1,3,4,5,7,8,9,11,12,18,19,22,29
> > 3 TRUE TRUE TRUE FALSE TRUE 1,2,3,4,5,8,9,11,12,18,19,22,24,25,29
> > 4 TRUE TRUE TRUE FALSE FALSE 1,3,4,5,8,9,11,12,18,19,22,29
> > 5 TRUE TRUE FALSE TRUE TRUE 1,2,3,4,5,7,9,11,12,18,24,25,29
> > 6 TRUE TRUE FALSE TRUE FALSE 1,3,4,5,7,9,11,12,18,29
> > 7 TRUE TRUE FALSE FALSE TRUE 1,2,3,4,5,9,11,12,18,24,25,29
> > 8 TRUE TRUE FALSE FALSE FALSE 1,3,4,5,9,11,12,18,29
> > 9 TRUE FALSE TRUE TRUE TRUE 1,2,3,4,5,7,8,9,12,19,22,24,25,29
> > 10 TRUE FALSE TRUE TRUE FALSE 1,3,4,5,7,8,9,12,19,22,29
> > 11 TRUE FALSE TRUE FALSE TRUE 1,2,4,5,8,9,12,19,22,24,25,29
> > 12 TRUE FALSE TRUE FALSE FALSE 1,4,5,8,9,12,19,22,29
> > 13 TRUE FALSE FALSE TRUE TRUE 1,2,3,4,5,7,9,12,24,25,29
> > 14 TRUE FALSE FALSE TRUE FALSE 1,3,4,5,7,9,12,29
> > 15 TRUE FALSE FALSE FALSE TRUE 1,2,4,5,9,12,24,25,29
> > 16 TRUE FALSE FALSE FALSE FALSE 1,4,5,9,12,29
> > 17 FALSE TRUE TRUE TRUE TRUE 2,3,4,5,7,8,11,12,18,19,22,24,25
> > 18 FALSE TRUE TRUE TRUE FALSE 3,4,5,7,8,11,12,18,19,22
> > 19 FALSE TRUE TRUE FALSE TRUE 2,3,4,8,11,12,18,19,22,24,25
> > 20 FALSE TRUE TRUE FALSE FALSE 3,4,8,11,12,18,19,22
> > 21 FALSE TRUE FALSE TRUE TRUE 2,3,4,5,7,11,12,18,24,25
> > 22 FALSE TRUE FALSE TRUE FALSE 3,4,5,7,11,12,18
> > 23 FALSE TRUE FALSE FALSE TRUE 2,3,4,11,18,24,25
> > 24 FALSE TRUE FALSE FALSE FALSE 3,4,11,18
> > 25 FALSE FALSE TRUE TRUE TRUE 2,3,4,5,7,8,12,19,22,24,25
> > 26 FALSE FALSE TRUE TRUE FALSE 3,4,5,7,8,12,19,22
> > 27 FALSE FALSE TRUE FALSE TRUE 2,4,8,12,19,22,24,25
> > 28 FALSE FALSE TRUE FALSE FALSE 4,8,12,19,22
> > 29 FALSE FALSE FALSE TRUE TRUE 2,3,4,5,7,12,24,25
> > 30 FALSE FALSE FALSE TRUE FALSE 3,4,5,7,12
> > 31 FALSE FALSE FALSE FALSE TRUE 2,4,24,25
> > 32 FALSE FALSE FALSE FALSE FALSE
> >
> > Cheers,
> > H.
> >
> > >
> > > Simon Noël
> > > VP Externe CADEUL
> > > Association des étudiants et étudiantes en Biochimie, Bio-
> > > informatique et Microbiologie de l'Université Laval
> > > CdeC
> > >
> > > _______________________________________________
> > > Bioconductor mailing list
> > > Bioconductor at stat.math.ethz.ch
> > > https://stat.ethz.ch/mailman/listinfo/bioconductor
> > > Search the archives:
> > http://news.gmane.org/gmane.science.biology.informatics.conductor
> >
> > --
> > Hervé Pagès
> >
> > Program in Computational Biology
> > Division of Public Health Sciences
> > Fred Hutchinson Cancer Research Center
> > 1100 Fairview Ave. N, M2-B876
> > P.O. Box 19024
> > Seattle, WA 98109-1024
> >
> > E-mail: hpages at fhcrc.org
> > Phone: (206) 667-5791
> > Fax: (206) 667-1319
> >
> >
>
>
> Simon Noël
> VP Externe CADEUL
> Association des étudiants et étudiantes en Biochimie, Bio-
> informatique et Microbiologie de l'Université Laval
> CdeC
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>
More information about the Bioconductor
mailing list