1. 程式人生 > 其它 >R 維恩圖

R 維恩圖

技術標籤:繪圖r語言

1.venn.diagram

首先我們有這樣一個格式的檔案,是將colname對應的四個檔案merge之後(注意“all = T”),意思就是看“Accession”這一列對應蛋白在每個資料集的存在情況,不存在則為“NA”:

tmp1 <- merge(LCC1_12F[,c(1,2)],LCC1_24F[,c(1,2)],by="Accession",all = T)
tmp2 <- merge(LCC2_12F[,c(1,2)],LCC2_24F[,c(1,2)],by="Accession",all = T)
tmp <- merge(tmp1,tmp2,by="Accession",all = T) tmp_backup <- tmp
> head(tmp_backup)
   Accession LCC1_1_181894_LN02.x LCC1_1_181894_LN02.y LCC2_6_190078_LN07.x LCC2_6_190078_LN07.y
1 A0A024RBG1                   NA          -0.06777842                   NA                   NA
2 A0A075B6H7            0.3708574
0.32445949 0.1197036 -0.2479927 3 A0A075B6H9 -0.1703125 -0.15957269 0.1997557 0.4781777 4 A0A075B6I0 0.8670320 1.21766875 1.0739528 0.6997812 5 A0A075B6I1 1.5430119 NA 0.8042385
NA 6 A0A075B6I4 NA 1.00683755 NA NA

對於每一行不同的資料集,有值的資料集設為統一的數字(這裡暫時定為行序數),NA的資料集需要定義不同的內容,保證維恩圖不會有交集

for (i in 1:dim(tmp)[1]) {
  #i=1
  each_line <- tmp[i,]
  for (j in 2:5) {
    each_one <- tmp[i,j]
    ifelse(is.na(tmp[i,j]),tmp[i,j] <- paste(tmp[i,1],j,sep = "_"),tmp[i,j] <- i)
  }
}
tmp <- tmp[,-1]
colnames(tmp) <- c("LCC1_12F","LCC1_24F","LCC2_12F","LCC2_24F")

出圖


venn.diagram(list("LCC1_12F (7100)"=tmp[,1],"LCC1_24F (8181)"=tmp[,2],
                  "LCC2_12F (7106)"=tmp[,3],"LCC2_24F (8230)"=tmp[,4]),
             filename = './1.normalization_evaluate.bencheffect/LCC/0.data_information/LCC1_LCC2_12.24Faction.png',
             col = "black",
             fill = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3"),
             alpha = 0.5,
             cex = 1,
             cat.col = 'black',
             cat.cex = .8,
             cat.fontface = "bold",
             margin = 0.05,
             main = "LCC1 LCC2 12/24Faction",
             main.cex = 2)```

2.其他