Home > Software design >  How to create Venn digaram for 8 groups using R?
How to create Venn digaram for 8 groups using R?

Time:10-28

I used following code to generate the sets:

H=list('ASD'=c("SCN3A", "TSC2", "RASSF8", "XDH", "CNTN5", "CHD7", "DPYD", "BUB1", "DPP4", "AMPD1", "ARID4A", "QSER1", "OCA2", "GPR141", "DNAH9", "LOXHD1", "SETX", "GSTP1", "SLC6A15", "ASTN1", "CACNA1D", "WFS1", "KCNC1", "TPRA1", "NBAS", "LAMB1", "TSNARE1", "GABRB3", "PAG1", "SOS1", "LHFPL4", "KMT2C", "GATM", "NPTX2", "ANK3", "SH3TC2", "CLPP", "TP53BP1", "EBF4", "ANO1", "DNAJC10", "TTC25", "NDUFB7", "PCSK1", "ROBO3", "MYO9A", "RPS23", "ZNF292", "CRBN", "HIVEP2", "CYP1B1", "KCNE2", "NRP2", "ADSL", "XIRP2", "SMARCA4", "HDAC2", "JAK2", "ATP9B", "ESR1", "MDN1", "CTNNA2", "CNTNAP2", "SPTB", "ACY1", "CEP290", "WNT2", "IQGAP3", "CACNG3", "CACNA1H", "FOXN1", "SPAST", "ADCY1", "IGF2", "RNF4", "CTTNBP2", "TMF1", "CPT1A", "TENM3", "RABGGTA", "MBD3", "CCDC18", "SMG1", "SYNE1", "PITX3", "HMGA2", "PDE6C", "CTU2", "PNPLA7", "PIEZO1", "MAP2", "MCF2L", "PRF1", "VWA8", "LRP2", "RYR3", "IPO9", "DIXDC1", "CNTNAP5", "ELP4", "LRRN1", "TRIO", "SACS", "ASIC2", "KIF1B", "AXIN2", "SORL1", "DLG2", "VPS13C", "F2RL1", "NRP1", "LAMA1", "LARP1", "SDK1", "LAMC2", "LSG1", "EP300", "DGCR6L", "TSHB", "APC", "TENM4", "IGSF21"),
         'Epilepsy'=c("ADCY1", "ADSL", "ANK3", "APC", "ASIC2", "ASTN1", "ATP9B", "AXIN2", "BUB1", "CACNA1D", "CACNA1H", "CACNG3", "CEP290", "CLPP", "CNTN5", "CNTNAP2", "CNTNAP5", "CTNNA2", "CTU2", "DGCR6L", "DLG2", "DNAJC10", "ELP4", "EP300", "GABRB3", "HDAC2", "HMGA2", "IGSF21", "IPO9", "IQGAP3", "JAK2", "KCNC1", "KCNE2", "KIF1B", "LAMB1", "LAMC2", "LARP1", "LHFPL4", "MCF2L", "MYO9A", "NDUFB7", "NRP2", "RABGGTA", "RYR3", "SACS", "SCN3A", "SETX", "SMARCA4", "SMG1", "SORL1", "SPAST", "SPTB", "TMF1", "TP53BP1", "TPRA1", "TRIO", "TSC2", "TSHB", "VPS13C", "WFS1", "XDH", "ZNF292", "ABCA1", "ABCG5", "ACP2", "ADCY6", "ADGRA3", "ADGRV1", "AGA", "AGRN", "ALG3", "ANK2", "ANKRD44", "AP5Z1", "ARAP1", "ARHGEF11", "ASCC3", "ASPM", "ATRN", "AURKB", "BRINP2", "BRSK2", "CAPN15", "CAPN2", "CC2D2A", "CD36", "CDX1", "CHAT", "CHM", "CHTF18", "CLCN2", "CLCN7", "CLEC12A", "COG5", "COG6", "COL12A1", "COL17A1", "COL28A1", "COL6A2", "COQ3", "CYBB", "DBNL", "DBR1", "DEAF1", "DGKQ", "DHX29", "DMXL1", "DMXL2", "DNAH12", "DOCK7", "DOLK", "DSG4", "DZIP1", "EFHC1", "EPHA7", "EPHB1", "EPHB3", "ESYT1", "EXOC7", "F13A1", "F5", "FAH", "FARP1", "FASN", "FAT1", "FERMT1", "FGFR3", "FLNB", "FLRT1", "FMNL1", "FN1", "FOLR1", "FZD4", "GAA", "GAK", "GALC", "GANAB", "GLB1", "GM2A", "GNA14", "GOSR2", "GPC1", "GSS", "GTPBP4", "HEATR1", "HGS", "HIPK2", "HSPA13", "HTR2B", "INO80E", "KALRN", "KCNH2", "KCNJ16", "KIAA0586", "KRIT1", "LAMB2", "LMAN1", "LTBP3", "MASTL", "MED17", "METTL25", "MGAT5B", "MPL", "MRPL24", "MRPS27", "MSX2", "MUS81", "NALCN", "NEB", "NFE2L1", "NMBR", "NOL11", "NUCB1", "OBSL1", "OGDHL", "OGFOD2", "PARP1", "PCCB", "PDGFRA", "PDYN", "PFAS", "PFKFB3", "PLEC", "PLOD2", "PNKD", "PNPO", "POLD1", "POLE", "POLL", "PPAT", "PRDX3", "PSEN2", "PTCH1", "PTK2B", "RAB5A", "RAD54B", "RELB", "RHOT2", "RIMS2", "RTN4IP1", "SAE1", "SCAPER", "SCN1B", "SCN5A", "SEC23IP", "SERPINE2", "SGCB", "SIGLEC1", "SLC18A3", "SLC26A4", "SLC2A1", "SLC4A1", "SLC4A3", "SLITRK6", "SPG11", "STARD13", "STT3A", "SYF2", "SYNJ1", "SZT2", "TECPR2", "TES", "TMEM67", "TNK2", "TNS1", "TNS3", "TRAP1", "TRAPPC11", "TRAPPC8", "TRIP10", "TRPM2", "TRPM3", "TRPV1", "TUBGCP6", "TYW1", "UNC13B", "USP45", "VCP", "WDR62", "WWOX", "YAP1", "ZBTB48", "ZFHX4", "ZW10"),
         'Intellectual'=c("YAP1", "TSC2", "FMNL1", "MADD", "KRIT1", "TNK2", "NUP155", "COG6", "TRAPPC8", "IPO9", "CCT8", "ZFYVE16", "FAT1", "SLC37A1", "KAT6B", "WWOX", "PTK2B", "CNTNAP5", "HEATR1", "TRAPPC11", "ARID4A", "ADGRV1", "GPC1", "AURKB", "TTC39B", "GSS", "GANAB", "RFWD3", "CUL9", "SAE1", "CACNG3", "SMC4", "ASIC2", "SYF2", "PFAS", "GAK", "METTL25", "OGDHL", "RAB5A", "VPS13C", "FGFR3", "KCNC1", "DDOST", "CTNND1", "ATRN", "UNC13B", "FASN", "MYO18A", "TMF1", "CRBN", "FLNB", "LARP1", "RCC2", "MASTL", "ADGRA3", "SCAPER", "SZT2", "LRP4", "SMG1", "SYNE1", "ADCY6", "RNGTT", "EP300", "ARAP1", "ANKRD44", "VPS39", "DGCR6L", "STT3A", "COG5", "NFE2L1", "SLC7A2", "ASCC3", "LMAN1", "OBSL1", "KIF20B", "PNPLA7"),
         'Schizophrenia'=c("CRB1", "FBXW4", "CNTN5", "CHM", "DPYD", "BUB1", "DPP4", "ADGRV1", "GPC1", "DLD", "RBM19", "ITIH1", "ADCY7", "KCNC1", "ACBD5", "ELF1", "TSNARE1", "GABRB3", "TMEM182", "STT3A", "KMT2C", "ANK3", "SAMD4A", "NALCN", "PDLIM5", "LIMA1", "DYNC1I2", "TMEM26", "ANK2", "GRIN3A", "EPHB1", "BRINP2", "KALRN", "MICAL2", "TTLL6", "ZNF292", "SERPINB1", "SCAPER", "KCNS3", "VAMP1", "HDAC2", "DLG1", "CFAP58", "JAK2", "ESR1", "EFCAB14", "CNTNAP2", "PENK", "WWOX", "GLT8D1", "SFMBT2", "EEFSEC", "PDZD8", "GALC", "CACNG3", "SPG7", "ADCY1", "CLDN10", "TENM3", "OTOS", "CAPN2", "LRP4", "SYNE1", "HMGA2", "APOL4", "ARAP1", "DOPEY1", "EPN2", "MCF2L", "PLAA", "RYR3", "CNTNAP5", "POLE", "TRIO", "RAB11FIP5", "BNIP3L", "RUNX1", "AXIN2", "KIF1B", "DLG2", "MAP3K9", "CERCAM", "VPS13C", "MYO18B", "NRP1", "IRS1", "MANEA", "EP300", "DGCR6L", "TSHB", "AASDHPPT", "TRAPPC3", "APC", "TENM4"),
         'ADHD'=c("TSC2", "CSMD2", "ANK3", "ASPM", "CNTN5", "TP53BP1", "CNTNAP2", "CHD7", "GLT8D1", "CNTNAP5", "SFMBT2", "MLH1", "FLII", "PTCH1", "SPRED1", "ARHGEF12", "CHMP7", "SVEP1", "CREB5", "MSH6", "TTLL8", "DLG2", "MICAL2", "DNAH3", "ADGRA3", "ACBD5", "SYNE1", "NUCB1", "NRP2", "TMEM182", "STT3A", "GNE", "PAX5", "TENM4"),
         'Biopolar Disoder'=c("CSMD2", "ANK3", "NUMB", "CNTN5", "CTNNA2", "CNTNAP2", "NALCN", "RDH14", "WWOX", "GLT8D1", "SFMBT2", "SPRED1", "ADAMTS14", "TTC39B", "SVEP1", "COL28A1", "PDZD8", "GALC", "SORL1", "ITIH1", "CLSPN", "SLCO4A1", "VPS13C", "MYO18B", "TTLL6", "CRBN", "NFATC2", "SYNE1", "INTS7", "TMEM182", "STT3A", "WSCD1", "KCNS3", "PDGFRA"),
         'circadian'=c("YTHDC2", "LRP1B", "SAMD4A", "VTA1", "NALCN", "F13A1", "SLC4A1", "TMEM26", "ADAMTS14", "COL28A1", "RNF19A", "BRINP2", "TRHR", "CCBE1", "CACNA2D3", "MYO18A", "SLC26A7", "FRAS1", "EP300", "GNE", "LMAN1", "NMBR", "TGFBI", "CHAT", "HIPK2", "SERPINE2", "RELB", "ARHGEF12", "SETX", "CACNA1D", "ADCY7", "NBAS", "GPR83", "LTBP3", "GABRB3", "HMBS", "PSMA4", "MADD", "SIX3", "EPHB1", "GAK", "SPRY4", "ABCA13", "SLC8A3", "HIVEP2", "FAH", "ADCY6", "MYLIP", "NFE2L1", "PRKAG1", "HDAC2", "TNS1", "GSS", "CACNA1H", "POLL", "CPT1A", "CAPN2", "PITX3", "NFE2L3", "PNPLA7", "AGA", "STX16", "TNK2", "PRF1", "RYR3", "DIXDC1", "PSEN2", "SREBF1", "POLE", "RAB11FIP5", "KIF1B", "RAB5A", "NGB", "ARHGEF11", "SIX6", "SDK1", "AATK", "CYP7A1", "CUL9"),
         'dementia'=c("LMAN1", "PRDX3", "NPLOC4", "PSEN2", "ZFYVE16", "CHAT", "PENK", "LTBP1", "SNCAIP", "NOL11", "GANAB", "DLD", "SPG11", "IGSF21", "RNF19A", "ASIC2", "ASTN1", "SORL1", "SPRY4", "VCP", "TATDN1", "RAB5A", "VPS13C", "GM2A", "IRS1", "PSMB4", "NGB", "F2RL1", "RAB38", "SMOX", "PARP1", "ABCC9", "RPN2", "CAPN2", "GALNT7", "SMG1", "TBK1", "MASP2", "GNE", "GTPBP4", "CCT8", "CD63", "PSMA4", "TUBA4A", "CUL9")
        )
venn(H)

Throws me an error:

Error in drawVennDiagram(data = counts, small = small, showSetLogicLabel = showSetLogicLabel, : Venn diagrams for 8 dimensions are not yet supported.

CodePudding user response:

Here is a solution with package venneuler.
The data must first be restructured. A lapply loop will create data.frames with element name and set as 1st and 2nd columns, respectively. Then they are rbinded and the diagram is created.

library(venneuler)

Hmat <- lapply(seq_along(H), \(i) {
  Set <- names(H)[i]
  data.frame(Element = H[[i]], Set)
})
Hmat <- do.call(rbind, Hmat)
vd <- venneuler(Hmat)
plot(vd)

enter image description here


A double sapply loop is a way to get the overlap counts.

overlap <- function(x, y) length(intersect(x, y))
sapply(H, function(h1) sapply(H, function(h2) overlap(h1, h2)))

CodePudding user response:

Using ggvenn package,

library(ggvenn)
ggvenn(H)

  • Related