參考學(xué)習(xí)資源:
1.生信技能樹(shù)線下培訓(xùn)班視頻StatQuest系列
2.配合云天明讀研學(xué)習(xí)筆記系列
記錄補(bǔ)充一些不熟悉的概念
1 層次聚類,K-means聚類
- 在學(xué)習(xí)轉(zhuǎn)錄組下游數(shù)據(jù)分析中,常用的熱圖我們需要對(duì)表達(dá)數(shù)據(jù)進(jìn)行聚類(clustering)和縮放(scaling)聂薪,然后展示出來(lái)的圖可視化效果更好
- 據(jù)以往的經(jīng)驗(yàn)縮放(scaling)會(huì)影響兩個(gè)結(jié)果冰沙,第一,不同表達(dá)水平基因的顏色,這會(huì)影響你比較不同樣本中的相同基因的表達(dá)水平,第二,影響聚類(clustering)
如何對(duì)數(shù)據(jù)進(jìn)行縮放(scale)
-
無(wú)論對(duì)相同基因在不同樣本中進(jìn)行縮放矿咕,還是對(duì)全局的基因進(jìn)行縮放,最常用的方法就是Z值縮放法(Z-Score Scaling)狼钮,如下所示:
來(lái)自StatQuest -
具體看一下這種方法是如何實(shí)現(xiàn)數(shù)據(jù)的縮放的
image.png -
第一步:計(jì)算其均值(均值為16.5)
image.png -
第二步:每個(gè)樣本的數(shù)值減去均值碳柱,此時(shí),如果這個(gè)數(shù)值大熬芜,就表示此樣本的某基因轉(zhuǎn)錄水平高莲镣;如果數(shù)值小,就表示此樣本的某基因轉(zhuǎn)錄水平低
image.png - 第三步:計(jì)算標(biāo)準(zhǔn)差(標(biāo)準(zhǔn)差為6.28)
-
第四步:將第2步中的數(shù)值除以標(biāo)準(zhǔn)差
image.png
經(jīng)過(guò)上述的處理后涎拉,無(wú)論原始數(shù)據(jù)的變異程度如何瑞侮,這些數(shù)據(jù)的范圍最終會(huì)縮小,之所以這樣處理鼓拧,就是因?yàn)槿绻紨?shù)據(jù)之間差異過(guò)大半火,那么不同基因表達(dá)水平就會(huì)變化程度(more subtle)更高的色度(shade)來(lái)表示,經(jīng)過(guò)這樣的處理季俩,用較小程度的色度(shade)就能表示出基因水平的差異钮糖,方便觀察
-
此時(shí),我們可能會(huì)遇到這樣的一種情況酌住,例如店归,如果數(shù)據(jù)中出現(xiàn)異常值時(shí)阎抒,數(shù)據(jù)會(huì)怎么樣,就像下面的這個(gè)樣子
image.png -
此時(shí)如果進(jìn)行Z轉(zhuǎn)換的話娱节,標(biāo)準(zhǔn)差會(huì)很大挠蛉,也就是Z值的分子會(huì)很大祭示,最終得到的值會(huì)有一部分集中在0附近肄满,只能用很少的色度來(lái)進(jìn)行區(qū)分,如下所示
image.png
這個(gè)時(shí)候就需要進(jìn)行如下一個(gè)處理
#來(lái)自曾老師的代碼
n=t(scale(t(dat[cg,]))) # 'scale'可以對(duì)log-ratio數(shù)值進(jìn)行歸一化
n[n>2]=2
n[n< -2]= -2
如何聚類
-
原始數(shù)據(jù)經(jīng)過(guò)縮放后(scaling)质涛,此時(shí)就可以進(jìn)行聚類了稠歉,聚類有2種方法,分別是層次聚類(hierarchical clustering)和K-均值(K-means)聚類汇陆,先演示講層次聚類(hierarchical clustering)
image.png
層次聚類(hierarchical clustering)
先看一個(gè)簡(jiǎn)單的案例怒炸,在這個(gè)案例中,有3個(gè)樣本毡代,每個(gè)樣本4個(gè)基因阅羹,如下所示:
-
第一步,計(jì)算出哪些基因與基因1最為接近教寂,基因2明顯與基因1表達(dá)模式不同捏鱼,基因3與基因1的表達(dá)形式比較類似,基因4與基因1的表達(dá)模式也比較類似酪耕,但是导梆,在這幾個(gè)基因中,與基因1表達(dá)模式最接近的還是基因3
image.png -
第二步迂烁,計(jì)算出哪些基因的表達(dá)模式與基因2最為接近(然后是基因3看尼,基因4),經(jīng)計(jì)算發(fā)現(xiàn)盟步,基因4與基因2的表達(dá)模式最相似
image.png -
第三步藏斩,我們?cè)谇懊嬲业交?和基因3的表達(dá)模式相似,基因2和基因4的表達(dá)模式相似却盘,但是狰域,基因1和基因3的相似程度要比基因2和基因4的相似程度高,我們把前面的組合(基因1和基因3)放到一個(gè)簇(cluster)中
image.png -
第四步:此時(shí)再回到第一步谷炸,把基因1和基因3構(gòu)成的簇(Cluster # 1)當(dāng)作一個(gè)基因北专,然后再按照第二步,第三步來(lái)計(jì)算旬陡,經(jīng)計(jì)算拓颓,此時(shí),基因2和基因4最相似描孟,把它們?cè)俜诺揭粋€(gè)簇中(Cluster #2)
image.png -
通常情況下驶睦,層次聚類(Hierarchical Clustering)通常會(huì)用一個(gè)樹(shù)形圖(dendrogram)連接起來(lái)砰左,用于表明聚類成員之間的相似性和聚類次序
image.png -
在右側(cè)的樹(shù)形中,我們可以發(fā)現(xiàn)场航,Cluster #1是最先形成的聚類缠导,它們的相似性最高
image.png -
Cluster #2是第二個(gè)形成的聚類,它們的相似性次高
image.png -
而第三個(gè)聚類Cluster #3則包含了所有的基因溉痢,它是最后形成的
image.png
層次聚類的原理
前面我們提到過(guò)僻造,層次聚類的第一步就是計(jì)算兩組基因的相似性,此時(shí)我們?cè)敿?xì)介紹一下如何進(jìn)行計(jì)算孩饼。
-
在計(jì)算相似性方面并沒(méi)有一個(gè)統(tǒng)計(jì)的標(biāo)準(zhǔn)髓削,但有一些常用的手段。第一種計(jì)算相似性的方法就是歐氏距離(Euclidian distance)镀娶,如下所示:
image.png -
為了簡(jiǎn)單地說(shuō)明歐氏距離(Euclidian distance)立膛,我們以最簡(jiǎn)單的例子來(lái)說(shuō)明,在這個(gè)例子中梯码,有2個(gè)樣本宝泵,每個(gè)樣本有2個(gè)基因,然后兩個(gè)樣本的相同基因的差值的平方相加轩娶,并開(kāi)平方儿奶,得到的數(shù)值就是歐氏距離
image.png -
除了歐氏距離可以計(jì)算相似性外,還可以使用曼哈頓距離(Manhattan distance)和坎貝拉距離(Canberra distance)來(lái)計(jì)算相似性罢坝,其中曼哈頓距離只是不同樣本之間相同基因差值的絕對(duì)值之和
image.png -
我們看一下用不同的方法計(jì)算相似性的區(qū)別廓握,下圖的左側(cè)圖使用的歐氏距離(Euclidian distance)來(lái)得到的熱圖,右圖使用的是曼哈頓距離(Manhattan distance)得到的熱圖
image.png 從圖上來(lái)看嘁酿,使用這兩種不同的相似性計(jì)算方法得到的熱圖略有差異隙券,具體要使用哪種方法來(lái)計(jì)算相似性,并沒(méi)有一個(gè)統(tǒng)計(jì)的標(biāo)準(zhǔn)闹司,它們也沒(méi)有什么生物學(xué)意義娱仔。
具體原理就不記錄了,也記不住游桩,需要在返回原筆記查看牲迫,我主要是了解一下這個(gè)是什么怎么用就行。
K-means聚類
什么是K-means
-
先看一個(gè)場(chǎng)景借卧,例如我們手中有這樣的一批數(shù)據(jù)盹憎,把它們繪制到一個(gè)數(shù)軸上,此時(shí)你的目的就是把它們分成3個(gè)簇(cluster)铐刘,這三個(gè)數(shù)據(jù)或許是來(lái)源于三種不同的細(xì)胞或都是三種不同的腫瘤陪每,如下所示:
image.png -
我們僅從肉眼觀察,就知道這一批數(shù)據(jù)明顯可以分成3個(gè)簇,但是檩禾,如果我們不用肉眼來(lái)觀察挂签,用計(jì)算機(jī)來(lái)計(jì)算,如何得到這3個(gè)簇呢盼产?此時(shí)就需要用到一種算法饵婆,即K-means聚類
image.png
K-means的基本思想
-
第一步:選擇你要聚類的個(gè)數(shù),K-means聚類中的這個(gè)K就是你要聚類的數(shù)目的意思戏售,此時(shí)侨核,你們選擇K=3,這也就是說(shuō)蜈项,我們想把這些數(shù)據(jù)取成3個(gè)簇(cluster)芹关,對(duì)這個(gè)K值如何選擇续挟,我們后文會(huì)提到
image.png -
第二步紧卒,隨機(jī)選擇3個(gè)不同的數(shù)據(jù)點(diǎn)當(dāng)成3個(gè)簇
image.png -
第三步:計(jì)算第1個(gè)點(diǎn)到這三個(gè)簇的距離,先計(jì)算第1個(gè)點(diǎn)到藍(lán)簇的距離
image.png -
接著诗祸,計(jì)算第1個(gè)點(diǎn)到綠簇的距離
image.png -
最后跑芳,計(jì)算第1個(gè)點(diǎn)到橘黃簇的距離
image.png -
第四步:將第1個(gè)點(diǎn)歸于離它最近的簇,在這個(gè)案例中直颅,第1個(gè)點(diǎn)就屬于藍(lán)簇
image.png -
接著博个,重復(fù)前面的步驟,只是這次計(jì)算的第2個(gè)點(diǎn)功偿,第2個(gè)點(diǎn)最終的計(jì)算結(jié)果它屬于綠簇
image.png -
再計(jì)算第3個(gè)點(diǎn)盆佣,它屬于橘黃簇
image.png -
經(jīng)過(guò)最終計(jì)算,第3個(gè)點(diǎn)到最后的點(diǎn)都屬于橘黃簇
image.png -
此時(shí)械荷,所有的點(diǎn)都進(jìn)行了聚類
image.png -
第五步:計(jì)算每個(gè)簇的均值
image.png -
此時(shí)共耍,我們還按照前面的方法,計(jì)算每個(gè)點(diǎn)到這三個(gè)簇的均值的距離
image.png -
最終計(jì)算結(jié)果如下所示:
image.png -
經(jīng)過(guò)最終的計(jì)算吨瞎,我們發(fā)現(xiàn)痹兜,這些聚類結(jié)果并沒(méi)有發(fā)生改變,如下所示:
image.png -
也就是說(shuō)颤诀,K-means的聚類結(jié)果似乎比我們?nèi)庋圻M(jìn)行的聚類的結(jié)果還要差
image.png -
此時(shí)字旭,我們需要對(duì)聚類的結(jié)果進(jìn)行評(píng)估,其方法就是計(jì)算每個(gè)簇的變異崖叫,如下所示:
image.png 由于K-means的聚類過(guò)程并不能“看”到最佳的聚類遗淳,只能追蹤這些簇與這些簇的總變異,然后通過(guò)不斷更改起始的數(shù)據(jù)點(diǎn)進(jìn)行迭代心傀。
-
此時(shí)我們回到起點(diǎn)屈暗,再將隨機(jī)選擇3個(gè)初始數(shù)據(jù)點(diǎn)作為初始的簇,按照前面同樣的自救,計(jì)算剩余的點(diǎn)到這三個(gè)簇的距離恐锦,計(jì)算每個(gè)簇的均值往果,然后基于新的均值進(jìn)行聚類,直接這些簇不再改變?yōu)橹挂磺Γ缦滤荆?/p>
image.png -
計(jì)算的結(jié)果如下所示陕贮,此時(shí)這些數(shù)據(jù)已經(jīng)進(jìn)行了聚類,再計(jì)算這三個(gè)簇的變異潘飘,如下所示:
image.png -
這一輪迭代結(jié)束肮之,然后再來(lái)一輪,如下所示:
image.png -
我們把這三次的聚類結(jié)果放一塊兒卜录,我們可以發(fā)現(xiàn)戈擒,第二次的聚類結(jié)果最好,如下所示:
image.png 但是我們并不清楚這個(gè)結(jié)果是不是所有可能的聚類結(jié)果中最好的(總變異最屑瓒尽)筐高,因此我們需要進(jìn)行更多次的聚類,然后才能下結(jié)論丑瞧。
-
此時(shí)我們提出一個(gè)問(wèn)題柑土,K值應(yīng)該如何選?在這個(gè)案例中绊汹,明顯可以知道K值為3稽屏,但是,有的時(shí)候西乖,這個(gè)K值并不像本案例中這么明顯狐榔,如下所示:
image.png -
其中一種確定K值的方法就是不斷地使用不同的K值,如下所示:
image.png -
我們先使用K=1這個(gè)數(shù)值获雕,通過(guò)計(jì)算總的變異程度薄腻,明顯這個(gè)結(jié)果不行,如下所示:
image.png -
再使用K=2典鸡,此時(shí)我們計(jì)算一下總變異被廓,這個(gè)結(jié)果比K=1的時(shí)候要好一些,如下所示:
image.png -
接著萝玷,我們使用K=3嫁乘,通過(guò)計(jì)算它的總變異,我們發(fā)現(xiàn)K=3的結(jié)果要比K=2更好球碉,因?yàn)樗目傋儺惛万迅缦滤荆?/p>
image.png -
再繼續(xù),使K=4睁冬,我們發(fā)現(xiàn)挎春,K=4的總變異比K=3的總變異還要小看疙,如下所示:
image.png -
從前面的這些計(jì)算結(jié)果來(lái)看,我們能總結(jié)出一個(gè)規(guī)律直奋,每當(dāng)我們添加一個(gè)新的簇時(shí)能庆,總變異就會(huì)降低,當(dāng)簇的數(shù)目等于總的數(shù)據(jù)點(diǎn)的數(shù)目時(shí)脚线,總變異就是0搁胆,如下所示:
image.png -
如果我們把K值與變異降低的程度繪制成曲線,那么就能得到下面的這條曲線:
image.png 從這個(gè)曲線上我們可以看到邮绿,當(dāng)K=3時(shí)渠旁,它之后的K值每增加1,總變異的降低幅度就沒(méi)有前面的快船逮,我們把K=3這個(gè)點(diǎn)稱為拐點(diǎn)(elbow plot)顾腊。
K-mean聚類與層次聚類的區(qū)別
-
K-means聚類會(huì)把數(shù)據(jù)聚成你所期望的簇的數(shù)目,而層次聚類則中介告訴你挖胃,哪兩個(gè)數(shù)據(jù)是最相似的杂靶,如下所示:
image.png
二維坐標(biāo)的K-means
如果我們的數(shù)據(jù)無(wú)法繪制到一條數(shù)軸上時(shí),如何進(jìn)行K-means聚類呢冠骄,如下所示:
-
這種情況下伪煤,它的聚類原理跟一維數(shù)軸的原理一樣,第一步就是隨機(jī)找到三個(gè)點(diǎn)(前提是你想聚成3個(gè)簇)凛辣,如下所示:
image.png -
然后,計(jì)算不同的點(diǎn)到這三個(gè)簇的歐氏距離(Euclidean distance)职烧,在二維坐標(biāo)中扁誓,計(jì)算這個(gè)歐氏距離就是采用勾股定理,如下所示
image.png -
接著蚀之,就像前面講的那樣蝗敢,距離最近的就屬于某個(gè)簇,如下所示:
image.png - 第一次的聚類結(jié)果如下所示:
- 再接著足删,我們會(huì)像前面是找到的那樣寿谴,計(jì)算出每個(gè)族的中心點(diǎn)(也就是均值),然后再聚類失受,如下所示:
- 最后讶泰,得到比較滿意的聚類圖,如下所示:
熱圖的K-means
-
為了方便描述拂到,我們就以下面的案例說(shuō)明一下痪署,兩個(gè)樣本(sample 1和sample 2),分別有4個(gè)基因兄旬,現(xiàn)在把這兩個(gè)樣本分別命令為X狼犯,Y,把它們的基因放到二維坐標(biāo)軸上,如下所示:
image.png - 然后像前面那樣進(jìn)行聚類悯森,如下所示:
- 事實(shí)上宋舷,在實(shí)際的計(jì)算過(guò)程中,我們并不需要把數(shù)據(jù)投射到二維坐標(biāo)上瓢姻,只用計(jì)算不同樣本之間的距離即可肥缔,例如歐氏距離,如下所示:
R的kmeans()函數(shù)備注
在R中汹来,進(jìn)行K-menas聚類的函數(shù)是
kmeans()
续膳,它有一些注意事項(xiàng)。- 此函數(shù)會(huì)對(duì)每個(gè)距離加上權(quán)重收班,因此那些大簇(large clusters)的權(quán)重要略高于小簇(small clusters)的權(quán)重坟岔。
- 默認(rèn)情況下,此函數(shù)只有一組原始的簇摔桦,如果你要使用多個(gè)不同的起始數(shù)據(jù)點(diǎn)社付,那么你需要設(shè)定參數(shù)
nclust=25
或者是25左右的數(shù)字,例如(kmans(data, k=3, nclust=25)
)邻耕。
-
- 默認(rèn)情況下,此函數(shù)只有一組原始的簇摔桦,如果你要使用多個(gè)不同的起始數(shù)據(jù)點(diǎn)社付,那么你需要設(shè)定參數(shù)
t-SNE
- t-SNE是一種將復(fù)雜的高維數(shù)據(jù)進(jìn)行降維鸥咖,同時(shí)還保留大量原始數(shù)據(jù)信息的一種方法。
- 現(xiàn)在我們講一下t-SNE是如何實(shí)現(xiàn)降維的兄世,如下所示:
- 第一步啼辣,我們首先獲得原始的二維散點(diǎn)圖,然后把這些點(diǎn)隨機(jī)地投射到一個(gè)數(shù)軸上(就是一維坐標(biāo))御滩,如下所示:
- 第二步鸥拧,從這一步開(kāi)始,t-SNE會(huì)移動(dòng)這些投射到一維坐標(biāo)上的點(diǎn)削解,但一次僅移動(dòng)一個(gè)點(diǎn)富弦,直到這些點(diǎn)聚集起來(lái),如下所示:
- 第三步氛驮,在這一步我們可以看一下t-SNE是如何移動(dòng)第1個(gè)點(diǎn)腕柜,如下所示:
- 由于第1個(gè)點(diǎn)是紅點(diǎn),它是某個(gè)聚類中的一個(gè)成員(就是二維圖中紅色的分類)矫废,因此第1個(gè)點(diǎn)移動(dòng)的話盏缤,它會(huì)移向與它同類的這些點(diǎn)附近,也就是向右移動(dòng)磷脯,如下所示:
- 與此同時(shí)蛾找,第1個(gè)點(diǎn)右邊的2個(gè)黃點(diǎn)和1個(gè)藍(lán)點(diǎn)(其實(shí)就是第1個(gè)紅點(diǎn)與第2個(gè)紅點(diǎn)之間的這3個(gè)點(diǎn))在二維圖中離得比較遠(yuǎn),因此它們會(huì)被推回去赵誓,如下所示:
- 因此打毛,在第一次移動(dòng)的時(shí)候柿赊,第1個(gè)紅點(diǎn)移向右邊的那三個(gè)紅點(diǎn),第1個(gè)紅點(diǎn)右側(cè)的兩個(gè)黃點(diǎn)與一個(gè)藍(lán)色移到左邊幻枉,如下所示:
- 在這個(gè)案例中碰声,第1個(gè)紅點(diǎn)被右側(cè)的3個(gè)紅點(diǎn)吸引,它的吸引力最強(qiáng)熬甫,因此移向右側(cè)(我的理解就是胰挑,只看紅點(diǎn),如果把它們聚集起來(lái)椿肩,必定要移動(dòng)瞻颂,我們首先移動(dòng)的是第1個(gè)紅點(diǎn),第2個(gè)紅點(diǎn)右邊是3個(gè)紅點(diǎn)郑象,因此第1個(gè)紅點(diǎn)受到的吸引最大)贡这,如下所示:
- 紅點(diǎn)移動(dòng)后就是下面的這個(gè)樣子(一次移動(dòng)一個(gè)位置):
- 移動(dòng)后,第1個(gè)點(diǎn)就變成了黃點(diǎn)厂榛,如果再次移動(dòng)的話盖矫,黃點(diǎn)的移動(dòng)就跟前面的紅點(diǎn)移動(dòng)過(guò)程一樣了,它受到右邊三個(gè)黃點(diǎn)的吸引击奶,就會(huì)移動(dòng)過(guò)去辈双,移動(dòng)后,紅點(diǎn)就又被推了回去柜砾,跟前面的原理是一樣的湃望,如下所示:
- 此時(shí),黃點(diǎn)移向右側(cè)局义,與那三個(gè)黃點(diǎn)更加接近喜爷,如下所示:
- 移動(dòng)后筹淫,就成了這個(gè)樣子(部分疊加起來(lái)了)晋控,如下所示:
- 然后不斷地重復(fù)上述過(guò)程巩检,這些不同類型的點(diǎn)就會(huì)一點(diǎn)一點(diǎn)聚集起來(lái),如下所示:
先是這樣:
然后是這樣:
再然后是這樣:
最終就成了這個(gè)樣子:
上面的整個(gè)動(dòng)態(tài)過(guò)程建議看原視頻另萤,講得很透徹。
t-SNE使用t分布來(lái)計(jì)算相似分?jǐn)?shù)诅挑,因?yàn)槿绻皇褂胻分布四敞,這些聚類就會(huì)擠成一堆,很難觀察這些聚類的效果
這個(gè)是降維聚類拔妥,可視化后跟前面的二維坐標(biāo)的K-means有些類似
- 第44講的是多維尺度變換(multidimensional scaling忿危,MDS)與主坐標(biāo)分析(principal coordinate analysis,PCoA)。第45節(jié)講的是用R來(lái)計(jì)算MDS和PCoA没龙。
MDS與PCA非常相似铺厨,都是一種降維的方法缎玫。MDS分為度量MDS(Metric Multidimensional scaling)和非度量MDS(Non-metric Multidimensional scaling),其中非度量MDS也稱為經(jīng)典(Classical)MDS解滓,也叫做主坐標(biāo)分析(principal coordinate analysis,PCoA)赃磨,如下所示:
MDS的基本思想
為了更方便地理解MDS,我們還是像介紹PCA那些洼裤,先講一個(gè)比較簡(jiǎn)單的例子邻辉,例如,我們?cè)谙旅娴膱D形中腮鞍,我們先看一群綠色的點(diǎn)值骇,把它們當(dāng)成是一群正常的細(xì)胞(當(dāng)然了,如果你不是做生物的移国,你也可以把它們視為一群人吱瘩,或一批汽車,或者城市等)桥狡,如下所示:
雖然這群細(xì)胞看起來(lái)比較像搅裙,但實(shí)際上,它們有可能不同裹芝,如下所示:
當(dāng)然了部逮,還有可能像這個(gè)樣子,如下所示:
但問(wèn)題就在于嫂易,僅從直觀的角度來(lái)看兄朋,我們不太容易區(qū)分它們,但我們可以通過(guò)類似RNA-Seq這樣的手段來(lái)發(fā)現(xiàn)這些細(xì)胞有哪些基因是活躍的怜械,這樣就可以理解這些細(xì)胞的具體功能颅和,如果這是一群人,我們可以測(cè)量他們的血壓缕允,身高等數(shù)據(jù)峡扩,如下所示:
我們就當(dāng)它們是細(xì)胞,這是測(cè)完RNA-seq的一些數(shù)據(jù)障本,如下所示:
其中教届,第1行表示的是樣本,第1列是基因名驾霜,其余的部分是不同樣本某個(gè)基因的表達(dá)水平案训,此時(shí),如果根據(jù)我們前面介紹的PCA法對(duì)這些數(shù)據(jù)進(jìn)行分析粪糙,那么我們就能把不同樣本之間的相互關(guān)系轉(zhuǎn)換到一個(gè)二維的坐標(biāo)圖上强霎,如下所示:
那些高度相關(guān)的樣本就會(huì)聚集成一塊,如下所示:
此時(shí)蓉冈,我們?cè)倩氐組DS和PCoA上來(lái)城舞,這兩種方法非常像PCA轩触,只是它們不是把樣本之間的相互關(guān)系轉(zhuǎn)換成二維坐標(biāo),而是把不同樣本之間的距離轉(zhuǎn)換成二維坐標(biāo)椿争,如下所示:
為了進(jìn)行MDS和PCoA分析怕膛,我們可以計(jì)算兩兩樣本之間的距離,就像下面的這個(gè)樣子秦踪,如下所示:
為了方便理解褐捻,我們此時(shí)就只計(jì)算一下Cell1和Cell2的距離,如下所示:
歐氏距離
一種常見(jiàn)的計(jì)算兩個(gè)樣本之間距離的方法是歐氏距離(Euclidean Distance) 計(jì)算法椅邓,如下所示:
如果此時(shí)我們只有兩個(gè)基因柠逞,就像下面的這個(gè)樣子,如下所示:
為了計(jì)算這兩個(gè)樣本之間的歐氏距離景馁,我們可以用線段來(lái)表示它們基因之間的距離板壮,如下所示:
然后通過(guò)勾股定理,計(jì)算出歐氏距離合住,如下所示:
如果我們有更多的基因绰精,那么就按照這種方法,求出兩個(gè)樣本中透葛,相同基因的差值笨使,再求其平方和的平方根,像下面的這個(gè)樣子:
一旦我們計(jì)算好了不同樣本之間的歐氏距離僚害,那么我們就可以把這些樣本繪制到一個(gè)二維坐標(biāo)圖上硫椰,如下所示:
利用歐氏距離(Euclidean Distance)來(lái)進(jìn)行的MDS和PCoA分析的一個(gè)局限就是,最終生成的二維坐標(biāo)軸基本上與PCA生成的二維坐標(biāo)圖是一樣的萨蚕,如下所示:
換句話講靶草,這種基于最小線性距離的聚類(clustering)與最大化線性相關(guān)是一樣的,如下所示:
不過(guò)岳遥,計(jì)算兩兩樣本之間的距離并非只有歐氏距離(Euclidean Distance)一種方法奕翔,如下所示:
其他距離方法
例如,另外一種計(jì)算兩兩樣本之間的距離方法就是計(jì)算基因間差值的log轉(zhuǎn)換的平均值浩蓉,例如在下面的案例中糠悯,對(duì)于Cell1和Cell2的Gene1,它經(jīng)過(guò)log轉(zhuǎn)換后的數(shù)值就是log(3/0.25)
妻往,同理,Gene2和Gene 8的計(jì)算也同樣如此试和,如下所示:
經(jīng)過(guò)計(jì)算讯泣,再取它們的絕對(duì)值,最終我們計(jì)算出這些數(shù)值的平均值阅悍,如下所示:
最終我們看一下分別使用了歐氏距離的MDS圖(左側(cè))和使用了差異倍數(shù)log轉(zhuǎn)換的MDS圖的坐標(biāo)軸(右側(cè))好渠,如下所示:
不過(guò)昨稼,在生物學(xué)家眼中,通常會(huì)選擇表達(dá)差異倍數(shù)的log轉(zhuǎn)換值來(lái)計(jì)算兩兩樣本之間的距離拳锚,因?yàn)樗麄冄芯康幕蛲ǔJ浅杀蹲兓募偎ǎ@樣用表達(dá)差異倍數(shù)的log轉(zhuǎn)換會(huì)比較合適,如下所示:
我們常見(jiàn)的計(jì)算樣本間距離的方法有:曼哈頓距離(Manhattan Distance)霍掺、漢明距離(Hamming Distance)匾荆、大圓距離(Great Circle Distance)等,如下所示:
總結(jié)
PCA構(gòu)建二維坐標(biāo)圖的方法基礎(chǔ)是不同樣本之間的相關(guān)性杆烁,而MDS和PCoA構(gòu)建二維坐標(biāo)圖的方法基礎(chǔ)則是基于不同樣本之間的距離牙丽,如下所示:
PCA的計(jì)算流程為:計(jì)算樣本間的相關(guān)性 -> 復(fù)雜數(shù)學(xué)運(yùn)算(主要是特征值分解) -> 繪圖、主成分變異兔魂,Loading Scores烤芦。
而MDS和PCoA的計(jì)算流程與PCA的計(jì)算流程的不同之處就在于,第一步是計(jì)算樣本間的距離析校,其余的部分與PCA的計(jì)算差異不大构罗。