在生物信息學(xué)分析中,PCA(主成分分析)是一種常用的降維與可視化方法,能幫助我們從復(fù)雜的基因表達(dá)數(shù)據(jù)中捕捉關(guān)鍵模式,輕松觀察樣本間的差異與聚類(lèi)情況。今天,我們就以真實(shí)數(shù)據(jù)為例,一步步教你如何用R語(yǔ)言完成PCA分析與繪圖!
關(guān)鍵步驟與實(shí)戰(zhàn)要點(diǎn)
1、讀取數(shù)據(jù)
原始數(shù)據(jù)結(jié)構(gòu)如下圖:
第一列為基因ID,?第五列及以后為各個(gè)樣本的表達(dá)量數(shù)據(jù),數(shù)值以FPKM表示。

讀取數(shù)據(jù)命令如下:
rawdata=
read.csv(?‘AllSample.genes_expression.csv’,???header=T)
2、數(shù)據(jù)清洗
原始數(shù)據(jù)中包含一些不參與分析的列,以及某些基因的表達(dá)量在所有樣本中均為零,需要在分析前去除。
操作代碼如下:
#將第一列數(shù)據(jù)作為行名保存
row.names(rawdata)<-rawdata$?Gene_ID
#刪除第一列位置信息和第四列正負(fù)鏈的數(shù)據(jù),并進(jìn)行行列轉(zhuǎn)置?tmp<-t(rawdata[,c(-1,-2,-3,-4)])
#刪除在所有樣本中表達(dá)量均為0的基因?cleandata<-tmp[,colSums(tmp!=0)>0]
這樣我們就得到了一個(gè)“干凈”的樣本×基因表達(dá)矩陣,便于后續(xù)分析。
3、PCA?分析
R語(yǔ)言?xún)?nèi)置的prcomp()函數(shù)可以快速完成PCA計(jì)算,代碼如下:
data.pca<?-prcomp(cleandata,center=T,?scale.=)
#cleandat????為進(jìn)行分析的數(shù)據(jù)集
#center?一個(gè)邏輯值,控制變量是否應(yīng)該移位到零中心
#scale.一個(gè)邏輯值,控制是否對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化
prcomp??函數(shù)的返回值是一個(gè)特殊的對(duì)象,可以利用summary?函數(shù)來(lái)查看分析的結(jié)果。

具體參數(shù):
#Standard???????deviation?標(biāo)準(zhǔn)差,其平方為方差=特征值
#Proportion????of????Variance方差貢獻(xiàn)率
#Cumulative????????Proportion?方差累計(jì)貢獻(xiàn)率
輸出結(jié)果包括各主成分的標(biāo)準(zhǔn)差、方差貢獻(xiàn)率等,幫你判斷應(yīng)該保留多少主成分。
4、數(shù)據(jù)可視化
使用ggplot2包,輕松將PCA結(jié)果轉(zhuǎn)換為直觀的散點(diǎn)圖。
#加載ggplot?軟件包?library(ggplot2)
#根據(jù)PC1?及PC2生成散點(diǎn)圖,由于ggplot在繪圖時(shí)只接收數(shù)據(jù)框格式的數(shù)據(jù)集,因此需要使用as.data.frame函數(shù)來(lái)進(jìn)行轉(zhuǎn)換。
ggplot(?as.data.frame(?data.pcaSx),aes(x=PC1,y=PC2))+?geom_point()
圖片生成:

一張清晰的PCA圖就誕生了!樣本分布、組間差異一目了然。
核心要訣與進(jìn)階之路
PCA圖不僅能展示樣本聚類(lèi),還能通過(guò)顏色、形狀區(qū)分不同實(shí)驗(yàn)組,助力發(fā)現(xiàn)潛在離群樣本或批次效應(yīng),是表達(dá)數(shù)據(jù)分析的必備技能!如想學(xué)習(xí)更多生信分析技能,請(qǐng)登錄百邁客生物云課堂知識(shí)庫(kù),在線(xiàn)學(xué)習(xí)更多生信分析技巧。

京公網(wǎng)安備 11011302003368號(hào)