前言:
歡迎關注微信公眾號:生信天團
本文微信連接:R包pheatmap繪制熱圖
此文參考自B站孟浩巍的系列視頻[1]代碼,利用個人測序數(shù)據(jù)繪圖,現(xiàn)學現(xiàn)賣,不足之處,請多指教;
1. pheatmap熱圖解讀:
文件輸入為矩陣,按照矩陣中不同的數(shù)值填充上顏色;
圖中每一行為輸入文件的行名,設置了行名后就是篩選出來的差異基因名稱;
圖中每一列為不同處理數(shù)據(jù);
顏色表示表達量;
z-score,當有多個rep時,行進行normalize
聚類,將行表達量接近的放一起;
2. 差異篩選:
# 載入已篩選出的差異表達的基因文件
> sign.gene <- read.csv("Sugar_A_vs_Yeast_A_diff_exp.csv", header = T, sep = "\t" )
#將Gene_ID列當作行名
rownames(sign.gene) <- sign.gene$Gene_ID
#設置篩選條件
> sign.gene.p_value <- sign.gene$pvalue < 0.05
> sign.gene.fc <- abs(sign.gene$log2FC) > 2
> sign.gene.TPM <- sign.gene$Sugar_A1_TPM > 100 | sign.gene$Sugar_A2_TPM > 100 | sign.gene$Sugar_A3_TPM > 100 | sign.gene$Yeast_A1_TPM > 100 | sign.gene$Yeast_A2_TPM > 100 | sign.gene$Yeast_A3_TPM > 100
#按上述條件選出差異表達所需要的基因
> sign.gene.all <- sign.gene.p_value & sign.gene.fc & sign.gene.TPM
#從表格中提取已篩選的差異基因
> sign.gene.real <- sign.gene[sign.gene.all, ]
篩選條件解讀:
p_value: 統(tǒng)計學顯著性,一般設置為小于0.05;
log2(fold_change) :處理與對照間變化的倍數(shù),變化倍數(shù)設置為1,上調(diào)為正,下調(diào)為負,所以取絕對值,即abs(log2(fold_change) ) > 1;
FPKM:表達量歸一化后的統(tǒng)計量,不同歸一化方法不一樣,也有用TPM等;
舉例說,如果treat=0,09,control=0.01,雖然有統(tǒng)計學差異,但是無生物學差異。
3. 繪制熱圖:
# pheatmap繪制熱圖
#原文檔數(shù)據(jù)值存放在第20-25列中
> pheatmap(sign.gene.real[,c(20:25)])
# 取log2
> pheatmap(log2(sign.gene.real[,c(20:25)]+1))
# 美化后熱圖
> pheatmap(log2(sign.gene.real[,c(20:25)]+1),
main="Sugar_A_vs_Yeast_A_heatmap",
color = colorRampPalette(c("blue","white","red"))(256),
fontsize=6, border_color = "grey60",
treeheight_row=50,treeheight_col = 30,
cellwidth = 30, cellheight = 6,
)
4. pheatmap熱圖展示
- 簡單繪圖:
> pheatmap(log2(sign.gene.real[,c(20:25)]+1))

20181004-3.png
- 簡單美化處理:
> pheatmap(log2(sign.gene.real[,c(20:25)]+1),
main="Sugar_A_vs_Yeast_A_heatmap",
color = colorRampPalette(c("blue","white","red"))(256),
fontsize=6, border_color = "grey60",
treeheight_row=50,treeheight_col = 30,
cellwidth = 30, cellheight = 6,
)

20181004-1.png
-
測序公司圖片:
Sugar_A_vs_Yeast_A_heatmap.png
掃描二維碼關注
生信天團
