溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣使用Mfuzz進(jìn)行時(shí)間序列表達(dá)模式聚類分析

發(fā)布時(shí)間:2021-11-10 16:53:21 來(lái)源:億速云 閱讀:1184 作者:柒染 欄目:大數(shù)據(jù)

怎樣使用Mfuzz進(jìn)行時(shí)間序列表達(dá)模式聚類分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。


在之前的文章中,我們介紹了STEM軟件,針對(duì)時(shí)間序列的數(shù)據(jù),可以進(jìn)行基因表達(dá)模式聚類分析。這里介紹另外一個(gè)功能相同的R包Mfuzz。這個(gè)R包的地址如下

https://www.bioconductor.org/packages/release/bioc/html/Mfuzz.html

Mfuzz采用了一種新的聚類算法fuzzy c-means algorithm,在文獻(xiàn)中稱這種聚類算法為soft clustering算法,相比K-means等hard clustering算法,一定程度上降低了噪聲對(duì)聚類結(jié)果的干擾,而且這種算法有效的定義了基因和cluster之間的關(guān)系,即基因是否屬于某個(gè)cluster, 對(duì)應(yīng)的值為memebership。

對(duì)于分析而言,我們只需要提供基因表達(dá)量的數(shù)據(jù)就可以了,需要注意的是,Mfuzz默認(rèn)你提供的數(shù)據(jù)是歸一化之后的表達(dá)量,這意味著表達(dá)量必須可以直接在樣本間進(jìn)行比較,對(duì)于FPKM, TPM這兩種定量方式而言,是可以直接在樣本間進(jìn)行比較的,但是對(duì)于count的定量結(jié)果,我們必須先進(jìn)行歸一化,可以使用edgeR或者DESeq先得到歸一化之后的數(shù)據(jù)在進(jìn)行后續(xù)分析。

假設(shè)你已經(jīng)有歸一化之后的表達(dá)量了,通過(guò)以下幾個(gè)步驟就可以得到聚類的結(jié)果

1. 預(yù)處理

預(yù)處理包括讀取數(shù)據(jù),去除表達(dá)量太低或者在不同時(shí)間點(diǎn)間變化太小的基因等步驟,代碼如下

x <- read.table(
"normalisation.count.txt",
row.names = 1,
sep = "\t",
header = T)
count <- data.matrix(x)
eset <- new("ExpressionSet",exprs = count)
# 根據(jù)標(biāo)準(zhǔn)差去除樣本間差異太小的基因
eset <- filter.std(eset,min.std=0)

需要注意的是,Mfuzz聚類時(shí)要求是一個(gè)ExpressionSet類型的對(duì)象,所以需要先用表達(dá)量構(gòu)建這樣一個(gè)對(duì)象。

2. 標(biāo)準(zhǔn)化

聚類時(shí)需要用一個(gè)數(shù)值來(lái)表征不同基因間的距離,Mfuzz中采用的是歐式距離,由于普通歐式距離的定義沒(méi)有考慮不同維度間量綱的不同,所以需要先進(jìn)行標(biāo)準(zhǔn)化,代碼如下

eset <- standardise(eset)
3. 聚類

Mfuzz中的聚類算法需要提供兩個(gè)參數(shù),第一個(gè)參數(shù)為希望最終得到的聚類的個(gè)數(shù),這個(gè)參數(shù)由我們直接指定;第二個(gè)參數(shù)稱之為fuzzifier值,用小寫字母m表示,可以通過(guò)函數(shù)評(píng)估一個(gè)最佳取值,代碼如下

# 聚類個(gè)數(shù)
c <- 6
#  評(píng)估出最佳的m值
m <- mestimate(eSet)
# 聚類
cl <- mfuzz(eSet, c = c, m = m)

cl這個(gè)對(duì)象中就保存了聚類的完整結(jié)果,對(duì)于這個(gè)對(duì)象的常見(jiàn)操作如下

# 查看每個(gè)cluster中的基因個(gè)數(shù)
cl$size
# 提取某個(gè)cluster下的基因
cl$cluster[cl$cluster == 1]
# 查看基因和cluster之間的membership
cl$membership
4. 可視化

代碼如下

mfuzz.plot(
eSet,
cl,
mfrow=c(2,3),
new.window= FALSE)

生成的圖片如下

怎樣使用Mfuzz進(jìn)行時(shí)間序列表達(dá)模式聚類分析
對(duì)于感興趣的表達(dá)模式,可以用上述提到的用法提取出該cluster下的基因列表,通過(guò)GO/KEGG等功能富集分析進(jìn)行深入挖掘。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI