如何快速分析樣本之間的相關性(主成分分析):Clustvis

2021-03-02 科研貓

相信每個做生物信息或者生物統計的同學都避免不了要做主成分分析(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功能富集分析

的喵咪們

趕緊聯繫客服折耳貓小姐姐喲~


更多科研新鮮資訊、文獻精讀和生物信息技能,請關注科研貓公眾號

下方點好看,更多好看。

相關焦點

  • 一文看懂PCA主成分分析
    主成分分析簡介主成分分析 (PCA, principal component analysis)是一種數學降維方法, 利用正交變換 (orthogonal
  • 主成分分析簡介與實現
    在信息如此紛繁複雜的時代,我們如何利用模型,進行抽取,分析,模擬,決策呢?主成分分析在許多領域的研究與應用中,往往需要對反映事物的多個變量進行大量的觀測,收集大量數據以便進行分析尋找規律。多變量大樣本無疑會為研究和應用提供了豐富的信息,但也在一定程度上增加了數據採集的工作量,更重要的是在多數情況下,許多變量之間可能存在相關性,從而增加了問題分析的複雜性,同時對分析帶來不便。如果分別對每個指標進行分析,分析往往是孤立的,而不是綜合的。盲目減少指標會損失很多信息,容易產生錯誤的結論。
  • 數據分析之主成分分析,spss主成分分析實例
    一、主成分分析概要主成分分析,在進行有多個指標的綜合評定時,客觀全面的綜合評價結果非常重要,然而往往多個指標之間通常存在信息不統一或者重複等眾多因素,各指標的權重往往很難確認。主成分分析方法能夠解決以上問題,主成分分析法是一種降維的統計方法,是考察多個變量間相關性一種多元統計方法。二、spss主成分分析操作流程導入數據。
  • 一文了解R語言數據分析 ----主成分分析
    如果變量本身之間的相關性很高,並且我們在訓練數據集上獲得了很高的預測能力,那麼我們可能無法實現在測試數據集上相同。2.檢測多重共線性在了解了多重共線性如何影響我們的分析和模型的預測能力之後,學習如何檢測數據中多重共線性的存在非常重要。
  • 因子分析和主成分分析的10大不同
    因子分析(Factor Analysis,FA)基本原理:利用降維的思想,由研究原始變量相關矩陣內部的依賴關係出發,把一些具有錯綜複雜關係的變量表示成少數的公共因子和僅對某一個變量有作用的特殊因子線性組合而成。就是要從數據中提取對變量起解釋作用的少數公共因子(因子分析是主成分的推廣,相對於主成分分析,更傾向於描述原始變量之間的相關關係)。
  • 主成分分析(PCA)統計與MATLAB函數實現
    主成分分析(Principal Component Analysis,PCA), 是一種統計方法。通過正交變換將一組可能存在相關性的變量轉換為一組線性不相關的變量,轉換後的這組變量叫主成分。主成分分析是把各變量之間互相關聯的複雜關係進行簡化的分析方法。
  • 主成分分析和因子分析的區別
    線性表示方向不同主成分分析是將主成分表示為原變量的線性組合,而因子分析模型是將原變量表示為公共因子和特殊因子的線性組合3. 假設條件不同主成分分析:可認為不需要假設因子分析:需要一些假設。正交因子模型需假定:各個公共因子之間不相關,特殊因子之間不相關,且公共因子和特殊因子之間也不相關。4.主成分和公共因子的數量不同主成分分析中主成分的個數和變量個數p相同,它是將一組具有相關性的變量變換為一組不相關的變量。當然在實際使用中,我們會選擇少於p個主成分。
  • 基於R語言的主成分和因子分析
    主成分分析主成分分析,是一種降維的分析方法,其考察多個變量間相關性的一種多元統計方法,研究如何通過少數幾個主成分來揭示多個變量間的內部結構
  • 一文看懂主成分分析(文末推薦視頻教程)
    2.8 step6:主成分得分計算和圖示3 實戰一4 實戰二5 進階的主成分分析-psych包6 推薦一個R包factoextra7.主成分分析的生物信息學應用8.所謂降維,就是把具有相關性的變量數目減少,用較少的變量來取代原先變量。如果原始變量互相正交,即沒有相關性,則主成分分析沒有效果。在生物信息學的實際應用情況中,通常是得到了成百上千個基因的信息,這些基因相互之間會有影響,通過主成分分析後,得到有限的幾個主成分就可以代表它們的基因了。也就是所謂的降維。
  • 一文理清主成分分析思路
    主成分分析是一種濃縮數據信息的方法,可將很多個指標濃縮成綜合指標(主成分),並保證這些綜合指標彼此之間互不相關。可用於簡化數據信息濃縮、計算權重、競爭力評價等。一、研究背景某研究想要了解各地區高等教育發展水平的綜合排名。從中選取30個地區10個評價指標,使用主成分分析進行降維,並計算綜合得分。
  • 聚類分析和主成分分析
    它基於方差分析的思想,同類樣品之間的離差平方和應當較小,不同類之間的離差平方和應當較大> head(mydata)  熱量x1 咖啡因含量x2 鈉含量x3 價格x41  207.2          3.3     15.5    2.82   36.8          5.9     12.9    3.33   72.2
  • 新手如何快速入門數據分析?
    CDA數據分析研究院原創作品, 轉載需授權隨著網際網路迅猛發展,各大公司沉澱了很多的數據,如何找出藏在這些數據背後的規律,利用這些數據來給公司創造價值,作為一個新手面對這些問題的時候,你是不是考慮怎麼快速學習數據分析呢?
  • 主成分分析(PCA)原理精講
    即使這只是一個簡單的一維數據,它也可以展示出mouse4/5/6之間更為相似,mouse1/2/3之間更為相似。如下:如果將2個基因(gene 1和gene 2)展示在2D-plot中。可以發現,mouse4/5/6之間更為相似,表現為gene 1和gene2表達較低;mouse1/2/3之間更為相似,表現為gene 1和gene 2表達較高。如下:
  • 主成分分析(PCA)
    到底如何度量丟失信息的多少?如何根據原始數據決定具體的降維操作步驟?要回答上面的問題,就要對降維問題進行數學化和形式化的討論。而PCA是一種具有嚴格數學基礎並且已被廣泛採用的降維方法。下面我不會直接描述PCA,而是通過逐步分析問題,讓我們一起重新「發明」一遍PCA。向量的表示及基變換既然我們面對的數據被抽象為一組向量,那麼下面有必要研究一些向量的數學性質。
  • R數據分析:主成分分析及可視化
    主成分分析是一個常見的降維,探索性技術,常常在量表編制或者其它變量較多數據集分析的時候會用到,今天給大家寫寫R語言中如何快速高效的進行PCA和可視化。主成分可視化最有意思的就是我們可以很方便地畫出來變量和主成分之間的關係:library(ggbiplot)ggbiplot(mtcars.pca)
  • 聚類分析、判別分析、主成分分析、因子分析的區別與聯繫
    線性表示方向不同: 因子分析是把變量表示成各公因子的線性組合;而主成分分析中則是把主成分表示成各變量的線性組合。3. 假設條件不同:主成分分析中不需要有假設;因子分析的假設包括:各個公共因子之間不相關,特殊因子之間不相關,公共因子和特殊因子之間不相關。4.
  • 原理+代碼|Python基於主成分分析的客戶信貸評級實戰
    能夠理解 PCA 的基本原理並將代碼用於實際的業務案例是本文的目標,本文將詳細介紹如何利用Python實現基於主成分分析的5c信用評級,主要分為兩個部分:詳細原理介紹Python代碼實戰主成分分析是只能針對連續變量來進行壓縮,分類變量則不行。因為分類變量之間可以說是完全獨立的,並沒有正負兩種相關性一說,如性別男和女之間就完全是獨立的。如果一定也要將分類變量壓縮的話,通常會對進行WOE轉換(後續推文會提及),之後就可以愉快的進行壓縮了。所以分類變量是沒辦法進行單獨壓縮的,因為沒有對應的算法。
  • 30分鐘學會PCA主成分分析
    能夠以較低的信息損失(以樣本間分布方差衡量)減少特徵數量。PCA算法可以幫助分析樣本中分布差異最大的成分(主成分),有助於數據可視化(降低到2維或3維後可以用散點圖可視化),有時候還可以起到降低樣本中的噪聲的作用(丟失的信息有部分是噪聲)。
  • SPSS超詳細教程:主成分分析
    針對這種情況,我們可以進行主成分提取,但需要先滿足2項假設:  假設1:觀測變量是連續變量或有序分類變量,如本研究中的測量變量都是有序分類變量。  假設2:變量之間存在線性相關關係。  經分析,本研究數據符合假設1,那麼應該如何檢驗假設2,並進行主成分提取呢?
  • 100天搞定機器學習|Day59 主成分分析(PCA)原理及使用詳解
    PCA原理主成分分析法(Principal Component Analysis)是一種基於變量協方差矩陣對數據進行壓縮降維、去噪的有效方法,它藉助正交變換將一組可能存在相關性的變量轉換為一組線性不相關的變量,轉換後的這組變量叫主成分(PC),主成分是舊特徵的線性組合。