熱圖
EXCEL文件要轉(zhuǎn)化為TXT格式,才能被R讀取
熱圖不但能用顏色直觀的展示基因的表達量的高低促王,并且可以通過層級聚類,在二個維度上分別對基因和樣本進行聚集
關(guān)鍵
關(guān)鍵.png
安裝pheatmap包
install.packages("pheatmap")
library(pheatmap) #什么都沒顯示表示安裝成功
讀取數(shù)據(jù)
data = read.table("gene_exp.xls",header=T,row.names=1,sep="\t") #讀取數(shù)據(jù)
dim(data) #檢查數(shù)據(jù),顯示多少行劝贸,多少列
exp = data[,1:11] #截取表達數(shù)據(jù),只要所要行的1-11列
dim(exp) #檢查數(shù)據(jù)逗宁,這個時候應(yīng)該顯示所有行的1-11列
讀取數(shù)據(jù).png
熱圖繪制pheatmap()
pheatmap(exp) #繪制exp的熱圖
熱圖1.png
數(shù)據(jù)處理——均一化
scale() #均一化參數(shù)
取值”row”,”column”和”none” #以行映九、列、無均一化瞎颗,一般默認(rèn)無件甥,根據(jù)表格選擇取值
均一化.png
pheatmap(exp,scale="column") #以列均一化捌议,很丑,而且不能表達出基因間的差異性
熱圖2.png
pheatmap(exp,scale="row") #以行為均一化引有,即以基因為標(biāo)準(zhǔn)瓣颅,尋找基因間的差異
熱圖3.png
美化
改變邊框顏色(一般不改顏色比較好)
pheatmap(exp,scale="row",border="green") #邊框顏色變?yōu)榫G色
pheatmap(exp,scale="row",border=NA) #邊框沒有顏色
邊框.png
改變字體大小(視情況而定)
pheatmap(exp,scale="row",border=NA,fontsize=7) #改變字體大小為7
字體.png
改變顏色
pheatmap(exp,scale="row",border=NA,fontsize=7,color=c("green", "blue", "red")) #將顏色從高到低分為紅譬正,藍宫补,綠,最高為紅色导帝,最低為綠色
丑.png
定義自己的漸變顏色
colorRampPalette()
colorRampPalette()
redgreen=colorRampPalette(c("green","black","red"))(100) #將綠守谓、紅從低到高分為漸變的100個顏色
pheatmap(exp,scale="row",border=NA,fontsize=7,color=redgreen) #繪制自己定義的顏色的熱圖
熱圖4.png
一般不用紅綠色,因為紅綠色盲您单,根據(jù)具體要求來完成
圖例顏色漸變(視情況而定)
bias()
顏色.png
bias.png
colors=colorRampPalette(c("green","black","red"),bias=4.5)(100) #圖例大值一段會占更多范圍
pheatmap(exp,scale="row",border=NA,fontsize=7,color=colors)
bias1.png
常見函數(shù)
是否顯示列名或者行名: show_rownames和show_colnames
是否做聚類: cluster_rows和cluster_cols,視情況而定聚不聚類
設(shè)置聚類樹的高度: treeheight_row和treeheight_col
是否顯示圖例:legend
舉個例子
pheatmap(exp,scale="row",border=NA,fontsize=10,color=redgreen,show_rownames=F,show_colnames=T,cluster_rows=T,cluster_cols=T, treeheight_row=0, treeheight_col =0,legend=F)
#不顯示行名斋荞,顯示列名,行列都聚類虐秦,聚類數(shù)行列都為0平酿,不顯示圖例
other.png
顯示每個小塊的值 display_numbers = TRUE
pheatmap(exp,scale="row",fontsize=10,show_rownames=F,display_numbers = TRUE)
display.png
根據(jù)樹聚集結(jié)果分割
cutree_rows, cutree_cols 這兩個參數(shù),是根據(jù)樹分類結(jié)果悦陋,來分開間隔
pheatmap(exp,scale="row",fontsize=10, show_rownames=F,cutree_rows=2) # 行方向蜈彼,按照樹聚類分為2份
pheatmap(exp,scale="row",fontsize=10, show_rownames=F, cutree_cols=3) # 列方向,按照樹聚類分為3份
樹聚類.png
添加自定義間隔
gaps_col和gaps_row參數(shù),用這兩個參數(shù)時俺驶,對應(yīng)的方向不能進行聚類
pheatmap(exp,scale="row",fontsize=10,show_rownames=F,cluster_cols=F,gaps_col=5) #在第五列分隔
gaps.png
添加顏色條
annotation_row, annotation_col和annotation_colors參數(shù)
定義顏色條數(shù)據(jù)框
annotation_col=data.frame(type=c(rep("Case",5),rep("Control",6))) #新建一個數(shù)據(jù)框幸逆,共11個,前5個命名為case暮现,后6個命名為control
rownames(annotation_col) = colnames(exp) #將exp中的列名賦值給它
col.png
繪制含顏色的熱圖
pheatmap(exp,scale="row",fontsize=10,show_rownames=F,cluster_cols=F,gaps_col=5,annotation_col=annotation_col)
cols.png
調(diào)整顏色條的顏色
anno_colors=list(type=c(Case="#1B9E77",Control="#D95F02"))
pheatmap(exp,scale="row",fontsize=10,show_rownames=F,cluster_cols=F,gaps_col=5,annotation_col=annotation_col,annotation_colors=anno_colors)
anno.png
保存熱圖filename=(xx.pdf/png)
pheatmap(exp,scale="row",fontsize=10,show_rownames=F,cluster_cols=F,gaps_col=5,
annotation_col=annotation_col,annotation_colors=anno_colors,annotation_legend=F,display_number=T, filename="heatmap.pdf")
# 去掉顏色條的圖例并保持圖片
eg.png
多級顏色條
annotation_col=data.frame(type=c(rep("Case",5),rep("Control",6)),age=c(24,32,46,32,35,18,25,35,18,25,23),sex=c("male","male","female","female","female","male","female","female","female","male","female"))
rownames(annotation_col) = colnames(exp)
多級.png
pheatmap(exp,scale="row",fontsize=10,show_rownames=F,cluster_cols=F,gaps_col=5,annotation_col=annotation_col)
eg2.png
計算相關(guān)系數(shù)
舉例
library(pheatmap) #加載pheatmap包
exp=read.table("exp_top30.original.txt",header=T,row.names = 1,sep = "\t") #讀數(shù)據(jù)
matrix=cor(t(exp)) #計算相關(guān)系數(shù)还绘,只能以列來計算,所以轉(zhuǎn)置一下(如果基因就是列上,就不用轉(zhuǎn)置)
write.table(matrix,"coefficient_matrix.txt",sep="\t") #將相關(guān)系數(shù)輸出到電腦上保存
pheatmap(matrix,cluster_rows=F,cluster_cols=F,display_numbers=T) #行列都不聚類栖袋,顯示每個格的值
相關(guān)系數(shù).png
補充
補充.png
數(shù)據(jù)預(yù)處理.png