點擊「科研貓」,尋找志同道合的小夥伴!
t-分布領域嵌入算法(t-distributed stochastic neighbor embedding,tSNE),是一種常用的非線性降維方法,非常適用於高維數據降維到2維或者3維,從而進行可視化。
比如我們在進行轉錄組數據分析的時候,每一個樣本可以檢測到3萬個基因,如果有10個這樣的樣本,我們如何判斷哪些樣本之間的相似性能高。當然,通過層次聚類等方法,可以顯示樣本與樣本之間的關係。
以一篇發表在Nature Genetics (IF = 25.455)上的文章為例,通過對RNA-seq表達譜數據進行tSNE分析,將疾病分為不同的亞型。
本次教程為大家帶來是,是如何根據表達譜數據,通過運用tSNE分析的方法,顯示樣本與樣本之間的差異性。
首先我們加載需要用到的R包,ggpubr和ggthemes包用於作圖,Rtsne包用於計算tSNE。
讀入表達譜數據並顯示文件前6行,每一列為一個樣本,每一行為一個基因。我們使用表達譜樣本一共有10個,其中M1到M5為Case,M6-M10為control。
使用Rtsne包中的Rtsne函數計算tSNE。通過計算結果前六行,可以看出最終的結算結果為一個矩陣,一共有2列10行,每一行為一個樣本,兩列分別為tSNE_1和tSNE_2。
接下來,我們就用這個計算結果,來看Case和Control這兩組樣本之間的差異。
我們建立一個data.frame,將繪圖需要用到的數據都存入進來。
然後,便是繪圖的時刻了~
ggpubr提供了非常多的作圖函數,可以方便大家繪製更美觀的科研做圖。這裡我們使用ggscatter這個函數,x軸為tSNE_1,y軸為tSNE_2。
這樣,我們一張tSNE圖就做完啦~
當然,我們還不能僅僅滿足於現有的成果,作圖是一個細緻的過程,我們需要精雕細琢。比如我們有時候需要直接在圖上顯示樣本名稱,從圖上反映出樣本之間的分布。
以上這些操作都很炫酷,但是都還是需要你對R語言有一定的了解,而且能夠熟練使用R語言的繪圖語法。就單單這一個條件,估計就限制了大多數人對於tSNE的要求,那有沒有其他更好的方法,既簡單,又美觀呢?下面我們搬出終極武器,看看Hiplot平臺的在線tSNE分析工具(https://hiplot.com.cn/shiny/tsne-ellipse/):
從這個縮略圖中,我們可以看到非常多的參數可供選擇。我們要做的就是上傳數據,然後調整繪圖的參數,找到一個自己認為最美觀的圖形就可以了。非常簡單,實用。
使用起來非常便捷,只要上傳數據->調整參數->下載圖形即可,可以對圖形中的顏色、點的大小、配色、透明度、圖形大小、解析度等內容進行詳細的調整,非常好用。
為了給大家做更為深層次的解讀,工具的開發者-苗奔奔大神也非常貼心地給我們錄製了視頻,從tSNE的原理開始解讀,一直到這個tSNE繪圖工具應該如何使用。下面是視頻連結:
tSNE在線分析繪圖
科研繪圖神器—hiplot,全網首個開源繪圖平臺,目前可提供120餘種可視化功能,並在不斷的更新中。
點擊圖片進入Hiplot平臺介紹
免費註冊hiplot帳號(免費名額有限)步驟:
1、註冊網址:https://hiplot.com.cn/signup,填寫信息
2、根據激活郵件中的連結,點擊激活即可。
現在掃碼註冊!
更多科研新鮮資訊、文獻精讀和生物信息技能
請關注科研貓公眾號
未經許可請勿隨意轉載,
版權事宜由易法通律師事務所提供法務支持