久等了辩涝,接上一次內(nèi)容。這次我們要讓熱圖更加復(fù)雜化勘天。
實際上怔揩,有些情況下做熱圖可能只需要標(biāo)注對照組、實驗組即可脯丝。但是大多時候商膊,可以在熱圖上體現(xiàn)更多信息,比如宠进,除了分組晕拆,還有不同得處理、年齡材蹬、性別实幕、疾病階段等等,以及不同功能基因也要分組堤器。
因此茬缩,需要在熱圖上添加更多分組信息。
下面是我們得示例數(shù)據(jù)吼旧,一個表達(dá)舉證(數(shù)據(jù)純屬虛構(gòu),分組純屬虛構(gòu))
第一步未舟,還是將數(shù)據(jù)讀入圈暗,加載R包,這里我們使用pheatmap裕膀。
setwd("D:/tq/熱圖行列注釋")
A <- read.csv("行列注釋.csv",header = T,row.names = 1)
library(pheatmap)
接下來员串,寫列得注釋信息,也就是列的分組昼扛。
annotation_col = data.frame(
group = c(rep("ST",3),rep("TZ",3),rep("TL",5),rep("TS",4),rep("TQ",3)),
Stage = c(rep("Stage0", 3), rep("Stage1",8), rep("Stage2", 4), rep("Stage3",3)),
Age = c(rep("30",2),rep("35",2),rep("30",4),rep("45",3),rep("34",3),rep("33",2),rep("31",2)),
Sex = c(rep("F",3),rep("M",3),rep("F",6),rep("M",5),rep("F",1))
)
row.names(annotation_col) <- colnames(A)
理論上寸齐,annotation_col可以包含無數(shù)個分組信息欲诺,只要你有,那么就可以放進(jìn)去渺鹦。之后將分組信息與入讀得矩陣列名結(jié)合扰法。
當(dāng)然了,如果分組太多毅厚,手打不現(xiàn)實塞颁,可以先編輯好Excel文件,然后讀入吸耿。
同理祠锣,行的信息注釋如下:
annotation_row = data.frame(
Biological_process = c(rep("Immune response",20), rep("Proteoglycans in cancer", 13),
rep("Glycolysis",18),rep("Endocytosis",35)),
Pathway = c(rep("Wnt",20), rep("Inflammatory",32),rep("HIF",34))
)
row.names(annotation_row) <- rownames(A)
畫圖(用pheatmap函數(shù)):
pheatmap(A,cluster_rows = T,cluster_cols = F,
color=colorRampPalette(c("navy","white","firebrick3"))(100),
show_colnames = T,border_color = NA,scale = "row",show_rownames =F,
annotation_col = annotation_col, annotation_row = annotation_row)
發(fā)現(xiàn)注釋信息已經(jīng)全部添加上了,效果還不錯咽安,但是注釋的顏色不太好伴网。這個也是可以個性化實現(xiàn)的,用你喜歡的顏色即可妆棒。我們示例幾個:
groupcolor <- c("#85B22E","#5F80B4","#E29827","#922927",'#57C3F3')
names(groupcolor) <- c("ST","TZ","TL","TS","TQ") #類型顏色
Agecolor <- colorRampPalette(c("white","#99CCCC","#66CC99","#339966"))(6)
names(Agecolor) <- c("30","31","33","34","35","45")
Sexcolor <- c("red","#016D06")
names(Sexcolor) <- c("F","M") #類型顏色
BPcolor <- c("#708090",'#68A180','#F3B1A0', '#D6E7A3')
names(BPcolor) <- c("Immune response","Proteoglycans in cancer","Glycolysis","Endocytosis")
ann_colors <- list(group=groupcolor, Age= Agecolor, Sex=Sexcolor, Biological_process=BPcolor) #顏色設(shè)置
在畫圖的時候澡腾,heatmap函數(shù)中多添加annotation_colors即可:
pheatmap(A,cluster_rows = T,cluster_cols = F,
color=colorRampPalette(c("navy","white","firebrick3"))(100),
show_colnames = T,border_color = NA,scale = "row",show_rownames =F,
annotation_col = annotation_col, annotation_row = annotation_row,
annotation_colors = ann_colors)
比默認(rèn)的顏色好多了。
此外募逞,在pheatmap中也能實現(xiàn)上次Complexheatmap出現(xiàn)的分裂效果蛋铆,只不過這里是根據(jù)聚類分的,不聚類不能分放接。所以選擇使用刺啦,按實際情況。
pheatmap(A,cluster_rows = T,cluster_cols = T,
color=colorRampPalette(c("navy","white","firebrick3"))(100),
show_colnames = T,border_color = NA,scale = "row",show_rownames =F,
annotation_col = annotation_col, annotation_row = annotation_row,
annotation_colors = ann_colors,cutree_row = 4, cutree_cols = 5)
這就是行列分組信息注釋的內(nèi)容了纠脾,是不是會更長一層樓玛瘸!
下節(jié)熱圖預(yù)告---Complexheatmap函數(shù)對熱圖行列信息注釋。
一起學(xué)習(xí)進(jìn)步把苟蹈!