1. 程式人生 > >計算相關性系數

計算相關性系數

AI idt 相關性 XP 電腦 heatmap IE 兩位小數 AC

轉自:http://www.omicshare.com/forum/thread-741-1-1.html

範例文件(txt)是一個20個樣本,30個基因的表達量表格矩陣。每一行是1個基因,每一列對應1個樣本。
技術分享圖片
這是一個典型的數據框文件。現在我要計算兩兩樣本間的表達量的相關系數,並且對相關系數的結果繪制熱圖,該怎麽做呢?只要兩步:
(1)計算相關系數;
在R語言裏面,相關系數的命令是 cor。這個命令是可以計算兩個向量的相關系數。但你如果輸入數據是數據框的,而且cor命令自動計算所有列(向量)的兩兩相關系數(範例文件列方向正好是樣本)。
(2)繪制熱圖
繪制熱圖可以使用pheatmap這個命令。


代碼如下:
############
library(pheatmap) #加載pheatmap 包;
data=read.table("exp_top30.original.txt",header=T,row.names=1,sep="\t")
matrix=cor(data) #計算相關系數;
write.table(matrix,"coefficient_matrix.txt",sep="\t") #將相關系數計算結果輸出存儲到你的電腦裏,存儲為1個txt文件;
pheatmap(matrix,cluster_rows=F,cluster_cols=F,display_numbers=T) # 行和列都不聚類,並且在熱圖中顯示數值;
#####################

效果圖:
技術分享圖片



如果要計算每一行的相關系數(這裏行方向是基因,即行間相關系數就是基因間的相關系數),則需要對矩陣做個轉置,即行列對調,使用t()命令即可,
代碼如下:
###################
library(pheatmap) #加載pheatmap 包;
data=read.table("exp_top30.original.txt",header=T,row.names=1,sep="\t")
data=t(data) # 對數據做轉置;
matrix=cor(data) #計算相關系數;
write.table(matrix,"coefficient_matrix.txt",sep="\t") #將相關系數計算結果輸出存儲到你的電腦裏,存儲為1個txt文件;
pheatmap(matrix,cluster_rows=F,cluster_cols=F,display_numbers=T,fontsize_number=4,number_format = "%.2f"
) # 註意,由於格子比較多,所以用fontsize_number定義了格子中數字的字體大小, number_format 可以控制有效小數的位數,這裏是保留兩位小數;
#################################

效果圖如下:
技術分享圖片


計算相關性系數