摘要:隨著基因測序技術(shù)的不斷發(fā)展和完善,基因芯片技術(shù)逐漸成熟,產(chǎn)生了大量可供分析的基因表達(dá)數(shù)據(jù),使得研究和比較大量基因成為了可能。聚類分析能夠檢測出表達(dá)譜相似的基因群,將基因表達(dá)譜相似程度高的基因劃分到同一類中,從而識別出未知功能的基因,是目前研究基因表達(dá)數(shù)據(jù)使用的主要技術(shù)之一。本文在對基因表達(dá)數(shù)據(jù)分析方法的研究基礎(chǔ)上,采用了一種改進的、基于矩陣變換的基因表達(dá)數(shù)據(jù)層次聚類(NHC)方法,用于改善聚類效果。
關(guān)鍵詞:層次聚類;基因芯片;基因表達(dá)數(shù)據(jù)
中圖分類號:Q786 文獻標(biāo)識碼:A 文章編號:1007-9599 (2012) 24-0046-03
1 引言
生物信息學(xué)是20世紀(jì)80年代末興起的新學(xué)科,他是涉及數(shù)學(xué)、生物學(xué)、計算機科學(xué)和工程學(xué)的交叉學(xué)科,是一門理論和實踐相結(jié)合的學(xué)科。
基因芯片技術(shù)為生物信息學(xué)中的一項非常重要的前沿技術(shù),該技術(shù)產(chǎn)生于20世紀(jì)90年代。隨著基因測序技術(shù)的發(fā)展,果蠅、小鼠、線蟲等生物基因測序的完成,以及人類基因組計劃的順利進行,基因序列數(shù)據(jù)正在以前所未有的速度迅速增長。生物信息學(xué)已經(jīng)進入了一個全新的時代,確定每條基因在整個生物體的發(fā)育和活動中所起的調(diào)控功能,揭示成千上萬基因間的相互作用關(guān)系已經(jīng)為人類基因組計劃研究的重點,人類基因組計劃從此進入了后基因時代。此時,需要一種能夠監(jiān)測基因行為變化的技術(shù),使研究者能夠同時監(jiān)測不同發(fā)育階段、不同組織、不同健康狀態(tài)下的基因表達(dá)情況。傳統(tǒng)的實驗技術(shù)此時已經(jīng)無法滿足這種需求了,于是基因芯片技術(shù)應(yīng)運而生,為分析基因功能提供了一個十分理想的技術(shù)平臺。它能同步研究大規(guī)?;蛟诟鞣N不同生理狀態(tài)下的表達(dá)狀況,使得同時研究和比較大量基因的功能和特性成為可能。
近年來,數(shù)據(jù)挖掘作為知識發(fā)現(xiàn)的重要手段已經(jīng)在越來越多的領(lǐng)域得到廣泛地應(yīng)用。在生物信息學(xué)領(lǐng)域,也已有多種數(shù)據(jù)挖掘技術(shù)應(yīng)用于基因表達(dá)數(shù)據(jù)分析。由于聚類分析能夠根據(jù)基因之間的相似程度將基因表達(dá)譜相似程度高的基因劃分到同一子類,識別出表達(dá)譜相似的基因群,從而使研究者可以通過抑制基因或者結(jié)合特征數(shù)據(jù)來對功能未知的基因進行研究,在基因表達(dá)數(shù)據(jù)分析中得到的廣泛應(yīng)用。已經(jīng)成為目前分析研究基因表達(dá)數(shù)據(jù)采用的主要技術(shù)之一。
2 基因表達(dá)數(shù)據(jù)聚類分析
2.1 基因表達(dá)數(shù)據(jù)的表示
基因芯片作為一種先進的、大規(guī)模、高通量的檢測技術(shù),能夠同步對大規(guī)模的基因進行快速檢測,即使是對少量試驗樣品的幾次重復(fù)的小規(guī)模試驗,也能得到成千上萬條基因的表達(dá)數(shù)據(jù)。例如,只包含5個實驗樣品和2次重復(fù)的小規(guī)模實驗就可以得到近10萬個數(shù)據(jù)點。所謂基因表達(dá)數(shù)據(jù),是指通過基因芯片技術(shù)得到的樣本中各種基因的轉(zhuǎn)錄產(chǎn)物mRNA在細(xì)胞中的豐度。這些基因表達(dá)數(shù)據(jù)中蘊含著豐富的基因活動信息,為研究基因之間的相關(guān)性、基因表達(dá)的變化、不同條件對基因活動的影響提供了數(shù)據(jù)基礎(chǔ)。同時,基因表達(dá)數(shù)據(jù)還可以反映細(xì)胞當(dāng)前的活動狀態(tài),藥物對腫瘤細(xì)胞的效果等。這些信息的獲得可以幫助我們深入地認(rèn)識諸如基因功能、發(fā)育、衰老等生物過程的本質(zhì),因此,基因芯片技術(shù)在醫(yī)學(xué)臨床診斷、揭示疾病發(fā)生機制等方面都得到了應(yīng)用。
基因表達(dá)數(shù)據(jù)反映的是基因轉(zhuǎn)錄產(chǎn)物mRNA在細(xì)胞中的豐度,目前基因表達(dá)數(shù)據(jù)主要通過寡核苷酸微陣列(又稱基因芯片)和cDNA微陣列兩種檢測技術(shù)獲得?;蛐酒夹g(shù)主要分為4個步驟:芯片方陣的構(gòu)建、樣品的制備、生物分子反應(yīng)和信號的檢測。(1)芯片制備,先將玻璃片或硅片進行表面處理,然后將待檢測樣本的寡核苷酸片段或DNA片段按順序排列在片芯上形成微陣列。(2)樣品制備,由于生物樣品的復(fù)雜性,一邊樣品不能直接與芯片反應(yīng)??蓪悠愤M行生物處理,并用熒光素標(biāo)記cDNA分子,以提高檢測的靈敏度。(3)生物分子反應(yīng),該步驟是芯片檢測的關(guān)鍵一步,需要選擇合適的反應(yīng)條件使生物分子間反應(yīng)處于最佳狀況中,減少生物分子之間的錯配比率。(4)芯片信號檢測,最后將芯片置入芯片掃描儀中,通過掃描和計算機分析技術(shù)獲得樣品中基因序列的表達(dá)信息。在對基因表達(dá)數(shù)據(jù)進行聚類分析時,所得的數(shù)據(jù)是在m種不同的樣本測得的n個基因的表達(dá)水平,這些基因表達(dá)數(shù)據(jù)以m×n維矩陣表示,矩陣元素aij表示第i個基因在第j個樣本中測得的基因表達(dá)水平。
2.2 基因表達(dá)數(shù)據(jù)的預(yù)處理
由于基因表達(dá)數(shù)據(jù)中含有噪聲和異常值,因此,在對基因表達(dá)數(shù)據(jù)進行聚類分析之前需要對原始的基因表達(dá)數(shù)據(jù)進行預(yù)處理。預(yù)處理需要進行填補丟失數(shù)據(jù)、對不完整數(shù)據(jù)進行清理等工作,同時,需要根據(jù)分析的目從原始數(shù)據(jù)中篩選出符合條件的數(shù)據(jù),并選擇合適的數(shù)據(jù)轉(zhuǎn)換方法,將數(shù)據(jù)轉(zhuǎn)換成滿足分析要求的表示形式。
2.3 聚類分析
目前,聚類分析是基因表達(dá)數(shù)據(jù)分析中最常用的方法之一,常用的基因表達(dá)數(shù)據(jù)聚類分析算法有層次聚類,K-均值聚類,自組織映射。聚類分析通過相似度來衡量基因之間的相似度,并將相似度大的基因劃分到同一個子類,使得同一子類中的基因之間的差異盡可能小,同時使得不同子類的基因之間的差異盡可能大。衡量數(shù)據(jù)間相似程度的方法有很多,比如皮爾遜相關(guān)系數(shù),歐氏距離信息熵等,基因表達(dá)數(shù)據(jù)聚類分析中常采用皮爾遜相關(guān)系數(shù)作為相似度測度。
在基因表達(dá)數(shù)據(jù)分析中,通過對基因表示數(shù)據(jù)進行聚類分析,將具有相同功能的基因劃分到同一個子類中,這些處于同一子類中的基因通常都是表達(dá)模式相似的基因,即為共表達(dá)基因。因此,我們可以通過聚類分析由已知基因的功能來推斷同一子類中未知基因的功能,或者結(jié)合臨床特性數(shù)據(jù)來推斷某一子類中的基因的功能。
3 基于矩陣變換的層次聚類算法
3.1 相似度
聚類分析中,需要一種方法來表示各個體之間的相似度,相似度的定義是聚類分析的基礎(chǔ),本文采用皮爾遜相關(guān)系數(shù)作為相似度測度,若兩個向量完全相同,則相似度為1,若兩個向量沒有相似之處,則為0。
3.2 凝聚度
對基于Pearson相關(guān)系數(shù)度量的簇的凝聚度可用簇內(nèi)相似度均值來度量
(1)
其中,Ck為第k個簇,uij為Ck簇內(nèi)第i個對象和第j個對象的余弦相似度,M= n(n- 1)/2,n為Ck簇內(nèi)對象數(shù)。
3.3 熵
本文采用熵來度量聚類效果,熵值表示同一類對象在聚類簇集中的分散程度,處于同一類中的對象熵值越高越分散,相應(yīng)的聚類質(zhì)量就越差,其公式為
(2)
其中,pij=mij/mi,mi是簇i中對象的個數(shù),mij是簇i中類j的個數(shù),k是類的個數(shù)。簇集合的總熵用每個簇的熵的加權(quán)和表示,即:
(3)
其中,m為數(shù)據(jù)集中對象的總數(shù)。
3.4 算法描述
層次聚類又稱系統(tǒng)聚類, 具有很好的通用性, 使用非常廣泛。層次聚類方法對給定的數(shù)據(jù)集進行層次的分解,直到某種條件滿足為止。具體又可分為聚合式層次聚類,分裂式層次聚類的兩種方案。兩個過程互為逆過程,它們通過一系列合并或者分裂操作來得到聚類結(jié)果。
基于矩陣變換的層次聚類方法通過重排相似度矩陣X的行和列,得到矩陣的劃分點,然后通過劃分點將重排后的相似度矩陣劃分為分塊矩陣,比如矩陣Y.
(4)
為了得到劃分點d,定義如下函數(shù):
(5)
其中,d為劃分點所在的行數(shù)(或列數(shù)),當(dāng)
(6)
達(dá)達(dá)到最大時,d的值即為劃分點所在的行數(shù)(或列數(shù)),然后對子矩陣X11 和X22再進行分解,直到各個子矩陣的凝聚度大于給定值。
本文采用R語言作為算法描述語言,R是一個有著強大統(tǒng)計分析和作圖功能的免費、開源軟件系統(tǒng),在統(tǒng)計分析和數(shù)據(jù)挖掘中有著廣泛的應(yīng)用,在生物信息學(xué)中也得到相應(yīng)的應(yīng)用?;蚓仃囎儞Q的層次聚類的R語言描述如下:
算法:divide
輸入:相似度矩陣X[n][n]
輸出:分塊矩陣X11,X22
divide = function(X){
for(i in 1:(n-1){
#找出A中第i行從第i+1列到第n列元素的最大值所在的列k
k=which.max(X[i,(i+1):n])
swap_row(X,i+1,k)#交換第i+1行和第k行
swap_col(X,i+1,k)#交換第i+1列和第k列
}
Fd = c()
for(d in 1:(n-1)){
#計算: Fd=M( d)(A11)* M( d)(A22)-M( d)(A12)* M( d)(A21)
tmpfd=Md(X,1,1,d)*Md(X,2,2,d)-Md(X,1,2,d)*Md(X,2,1,d)
Fd=c(Fd,tmpfd)
}
d=which.max(Fd) #找出Fd 最大值時d的值
m=dim(X)[1] #X中對象的數(shù)目
list(X11=X[1:d,1:d],X22=X[(d+1):m,(d+1):m])#輸出分塊矩陣X11,X22
}
算法:cluster
輸入:X,Tck(給定值)
輸出:聚類結(jié)果
cluster=function(X,Tck){
if(Tc(X)>Tck){
res=divide(X)
tc11=Tc(res$A11)
tc22=Tc(res$A22)
if(tc11 if(tc22 }else{ output_cluster_result(X) } } 4 算法評估 為了測試基于矩陣變換的層次聚類在基因表達(dá)數(shù)據(jù)聚類分析中的效果 ,我們采用了斯坦福大學(xué)分子生物系網(wǎng)站上的酵母基因片段(Yeast Cell Cycle)數(shù)據(jù)集。該數(shù) (下轉(zhuǎn)第58頁)