相信每個做生物信息或者生物統計的同學都避免不了要做主成分分析(Principal Component Analysis,PCA),因為生物和環境,生物的基因功能、代謝網絡的關係太複雜了啊!很多同學應該也在頭疼怎麼能又快又好的做好PCA,並且把結果很清晰的展示出來。
首先給大家介紹一下主成分分析(PCA)的定義,PCA是一種通過正交變換將一組可能存在相關性的變量轉換為不相關的變量的統計方法,這些轉換後的變量就被稱為主成分(來自維基百科)。而PCA的主要作用包括但不限於:方便數據可視化、數據降維等等。
對於生物信息和統計的科研工作者而言,生物學領域的數據由於生物與環境、生物之間和生物自身基因、代謝等相互作用的高度複雜,往往具有變量多、樣本數較少的特點,這個時候我們通過主成分分析(PCA)就可以快速發現數據背後隱藏的關係。但是如果你作為剛入門的生物信息和生物統計學的小白,自己要實現PCA的整套流程就有一些困難了。
這裡我們就給大家推薦一個功能強大但簡單好用的在線PCA分析工具——ClustVis
(網址:https://biit.cs.ut.ee/clustvis/)
進入Clustvis網站之後,首頁是對工具的一個簡單介紹,這個工具主要由R代碼構成,原始碼在github上面都可以找到,相信一些大神還可以在原始碼的基礎上加入自定義的功能。首頁上面的六張圖就是Clustvis目前可以製作的兩種圖形,其中就有文獻中常見的heatmap。話不多說,我們進入ClustVis使用的介紹:
Step1:導入數據(data import)
點擊Data import就可以進入這個頁面。在頁面左邊的導航欄可以看到,我們可以選擇用示例數據(load sample data)熟悉功能,也可以上傳數據文件(upload file)或者直接複製粘貼數據(paste data)來分析自己的數據。對基因表達或者代謝通路分析感興趣的同學也可以嘗試ClustVis提供的兩個相應的功能(Import public dataset from ArrayExpress和import prepared gene expression matrix)。Import saved setting則是方便需要多次使用ClustVis的同學能使用自定義的設置。
需要注意的是,數據格式要求樣本的分類信息或者變量的注釋信息都放在最左邊的列或者最上面的行,ClustVis會根據數據類型自動識別為column(row) annotations,這些信息對可視化非常重要。一般來說,數據的每列對應一個樣本,每行對應樣本的一個特徵,如果我們上傳的數據每行對應一個樣本,直接勾選導航欄最下方的transpase matrix就可以將數據矩陣轉置了。這裡我們直接用ClustVis上的第一個實例(NKI breast cancer dataset (PAM50 genes))作為本教程的示例數據。
Step2:
在完成了數據上傳之後,就可以開始預處理(data pre-processing)了,非常簡單,點擊上方的data pre-processing就可以了(數據量比較大的情況下可能需要等待一段時間)!
我們可以看到PCA分析過程實際上已經完成了一部分,上圖中的前三個表格展示了數據的大小和missing value的個數,第四個表格按從大到小的順序給出了每個主成分(PC)對方差的貢獻度。第五個和第六個表格則是PC和每個樣本或者原特徵的關係。
同樣的,我們可以通過左邊導航欄自定義分析的過程,包括了對原始數據求對數的處理(transformation),樣本信息的保留(column annotation groups to keep,這個選項主要影響後面可視化的結果,建議全部保留),樣本的過濾與合併以及PCA分析的方法選擇等。這些都要根據同學們自己的數據情況和分析的需要來設置。
接下來我們就可以進入可視化的步驟了。
Step3:
第三步和前兩步一樣,點擊頁面上方的PCA就可以看到第一個可視化的結果。左邊的導航欄則包括了change data options、change display options、change plot labels三個選項。
change data options:默認的可視化結果是以PC1、PC2為XY軸的點圖,在這個選項下面我們可以選擇以其他的主成分為坐標軸來展示結果,可惜的是網頁版ClustVis還只支持二維點圖。。。這個選項下面的另一個功能是改變X(Y)軸的方向,效果上就是使點圖左右(上下)對稱變換。
Change display options:顧名思義,這個選項下的參數都是可以改變點圖中線條類型(實線或者虛線),顏色灰度、點的大小,圖片的長寬比例和大小等等。比較重要的是下圖中的change coloring options,大家可選擇自己更感興趣的group對樣本點進行分類。
Change plot labels:相信用過ggplot的同學對圖層的概念不會陌生,這個選項在這裡可以幫助大家按照自己的喜歡設置圖例的位置,字體大小等等細節,圖中的add interactivity選項勾選之後圖像上面每個樣本可以點擊,點擊後可以得到單個樣本點的展示圖,如果之前pre-processing的過程中選擇了數據合併的選項,這裡還可以看到小提琴圖和箱線圖(ClustVis的小提琴圖和箱線圖並不美觀,我們完全可以導出數據之後自己動手繪製)。
Step4:
上面三步之後,點擊上方的heatmap,我們可以得到本次分析的heatmap,和PCA選項類似的也有change data options、change display options、change plot labels三個選項,功能也十分類似,大家可以自己嘗試一下。最後的add interactivity功能在數據量比較大的情況下是無法使用的!!!
最後,可視化的PCA,heatmap兩個功能裡面都支持將圖片導出為不同格式的文件,使用起來非常靈活。分析的數據結果在export選項中也支持導出為csv文件,對linux或者windows平臺、R或者python程式語言都非常友好。並且我們還發現ClustVis的R包和本地化方法,可以說非常靈活了。相信這個工具會對大家做PCA分析有很大幫助。
實際上還有一些其他的可以進行降維分析的軟體供大家選擇,其中BioVinci也很好用,包括了PCA、t-SNE(t-distributed stochastic neighbor embedding)等多種生物信息和統計中常用的數據分析和可視化功能,一度也支持在線使用,但唯一的也是最大的缺陷就是收費……,大家如果只是臨時使用,可以考慮BioVinci的15天試用版。
參考文獻:
Metsalu T , Vilo J . ClustVis: a web tool for visualizing clustering of multivariate data using Principal Component Analysis and heatmap[J]. Nucleic Acids Research, 2015, 43(W1):W566-W570.
往期熱文:
科研作圖系列
【科研貓·繪圖】看·箱線圖·如何美麗動人(代碼分享)
【科研貓·繪圖】優雅版·小提琴圖(帶R代碼分享)
【科研貓·繪圖】繽紛版·韋恩圖(帶R代碼分享)
生成分析系列
【科研貓】生存分析的正確姿勢(1)視頻+R代碼分享
【科研貓·出品】TCGA超大批量生存分析教程
GO/KEGG功能富集系列
3分鐘了解GO/KEGG功能富集分析
乾貨預警:3分鐘搞定GO/KEGG功能富集分析(2)
終極篇:3分鐘搞定GO/KEGG功能富集分析-柱狀圖
終極篇:3分鐘搞定GO/KEGG功能富集分析-氣泡圖
TCGA數據挖掘系列
隔壁實驗室的「禿鷲」師兄又發SCI啦--TCGA數據挖掘實戰
TCGA數據挖掘終結者:cBioPortal
生物信息入門系列
大咖聊「生信」—生物信息系列(1)
生物信息系列課程-R語言入門
想要領取
生物信息
R語言
GO/KEGG功能富集分析
等
的喵咪們
趕緊聯繫客服折耳貓小姐姐喲~
更多科研新鮮資訊、文獻精讀和生物信息技能,請關注科研貓公眾號
下方點好看,更多好看。