組合Venn圖和Heatmap圖

處理數(shù)據(jù)list

library(VennDiagram)

#導入數(shù)據(jù),下調(diào)數(shù)據(jù)
1d <- read.table("...diff/1_DEseq2.DEG_down.xls", sep='\t', header=T)
2d <- read.table("...diff/2_DEseq2.DEG_down.xls", sep='\t', header=T)
3d <- read.table("...diff/3_DEseq2.DEG_down.xls", sep='\t', header=T)
4d <- read.table("...diff/4_DEseq2.DEG_down.xls", sep='\t', header=T)

類似地,導入 #上調(diào)數(shù)據(jù) #全部數(shù)據(jù)

然后可以做成表,寫出數(shù)據(jù)后分別查看1U2,1U2U3集合內(nèi)容

#做成表
input_down  <-list(1d$gene_id,2d$gene_id,3d$gene_id,4d$gene_id)
Table_down<-calculate.overlap(input_down)

input_up  <-list(1d$gene_id,2d$gene_id,3d$gene_id,4d$gene_id)
Table_up<-calculate.overlap(input_up)

#寫出投加共同上調(diào)or下調(diào)的表格
write.table(Table_down$“你需要的組合”, file = "mutually down-DESeq2.csv", sep = ",", col.names = NA,qmethod = "double")

繪制Venn圖

#繪制Venn圖
up<-venn.diagram(input_up,NULL, main.cex = 2,
            category = c("1d", "2d", "3d","4d"),fill = c("dodgerblue", "green", "orange", "darkorchid4"),
            alpha=0.3, cex=1.5, cat.fontface=2, cat.cex = 1, cat.col= c("dodgerblue", "green", "orange", "darkorchid4"),   imagetype = "tiff", ext.line.lty = "dotted", lty = "dotted",
            ext.line.lwd = 0.5,force.unique = F, lwd = 1, main.fontfamily="serif", main = "Up-regulated") #, filename = "Vennup.tif"

down<-venn.diagram(input_down,main.cex = 2,
            category = c("1d", "2d", "3d","4d"),fill = c("dodgerblue", "green", "orange", "darkorchid4"),
            alpha=0.3, cex=1.5, cat.fontface=2, cat.cex = 1, cat.col= c("dodgerblue", "green", "orange", "darkorchid4"), imagetype = "tiff", ext.line.lty = "dotted", lty = "dotted",
            ext.line.lwd = 0.5,force.unique = F, lwd = 1, main.fontfamily="serif", main = "Down-regulated", filename = "Venndown.tif")

分別得到一張上調(diào)Venn圖和一張下調(diào)Venn圖,用grid.draw()命令可以查看效果

使用pheatmap繪制heatmap

library(pheatmap)
x<-read.table("Union_for_cluster.xls", sep = "\t", header=T, row.names = 1)

x<-pheatmap(x, clustering_distance_rows = "euclidean", clustering_distance_cols = "euclidean"
        ,annotation_row = NA, cellwidth = 15,show_rownames = F, drop_levels = F
        ,clustering_method = "average", scale = "row")

#the agglomeration method should be one of "ward.D", "ward.D2", "single","complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC).

把兩張Venn圖和一張heatmap圖組合在一起

這件事費了我好大功夫啊……本來想看看Y叔有什么神奇的辦法,因為自己是個半吊子,但是看了聽說你還不會畫heatmap以后也沒學會,Y叔說可以用cowplot包,plot_grid這個函數(shù)可以拼一切基于grid的圖。pheatmap是可以,但是VennDiagram生成對象是gList,用plot_grid()這個命令沒辦法處理gList,不停報錯(差點掀桌),沒辦法,只好自己慢慢啃呲(誰讓我是半瓶水呢)。

grid.newpage()
pushViewport(plotViewport(layout=grid.layout(2, 2,just = "centre")))
pushViewport(plotViewport(layout.pos.row=1, layout.pos.col=1))
grid.draw(up)
popViewport()
pushViewport(plotViewport(layout.pos.row=2, layout.pos.col=1, clip="on"))
grid.draw(down)
popViewport()
pushViewport(plotViewport(layout.pos.col=2, clip="inherit"))
grid.draw(x$gtable)
popViewport()
image.png

好了,因為用了自己的數(shù)據(jù)所以只能傳一張高糊圖片,總之最終效果就是左邊2張Venn右邊1張heatmap

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • On Mouth What is ...
    Stockman閱讀 224評論 0 0
  • 2016年5月16日晚,小寶躺上床時,看時間尚早不到八點半,我蹲在床邊握著他的手,和他聊了一會兒天。和小孩子聊天總...
    知了唯知愛閱讀 1,206評論 0 0
  • 我希望你很會玩兒,可以很小孩子一樣對著我耍賴,帶著我四處玩耍; 我希望咱們兩個性格互補,我主靜你主動,你可以帶動我...
    想當作家的猴哥閱讀 267評論 0 0
  • 冬至的前一天剛收到兒子打來的電話,緊急回了家。原本以為可以陪他走完全程在送回,卻沒想到,昨天中午又接到了姐姐的電話...
    米蘭朵閱讀 296評論 0 0

友情鏈接更多精彩內(nèi)容