崔衍,薛源
(南京郵電大學物聯(lián)網(wǎng)學院,南京 210003)
各種生物的生命活動都是由基因調(diào)控的,近年來DNA微陣列技術(shù)憑借其優(yōu)點成為研究基因的主要技術(shù)[1]。DNA微陣列技術(shù)產(chǎn)生的基因表達數(shù)據(jù)是一個矩陣,反映的是基因轉(zhuǎn)錄產(chǎn)物mRNA在細胞中的豐度,通過分析這些數(shù)據(jù)能夠得到當前細胞的生理活動狀態(tài)。該矩陣的行代表的是基因,列代表的是條件(實驗環(huán)境)。對基因表達數(shù)據(jù)進行分析的傳統(tǒng)方法是聚類,但是傳統(tǒng)的聚類只能對基因進行聚類或者對條件進行聚類,這樣得到的是部分基因在所有條件下相似的表達模式或者所有基因在部分條件下相似的表達模式[2],并且得到的聚類元素集合沒有相交,即一個基因或者條件只能在一個聚類里,不能屬于多個聚類[3],這并不能很好的應用于對基因表達數(shù)據(jù)進行分析,因為一部分基因可能在多個條件下調(diào)節(jié)同一生物功能[4]。Cheng和Church[5]在2000年首次將雙聚類應用于基因表達數(shù)據(jù)分析。雙聚類顧名思義,就是同時對行(基因)和列(條件)進行聚類,得到一個具有相似表達模式的子矩陣。雙聚類已經(jīng)被證明是一個NP-hard問題,智能優(yōu)化算法在解決NP-hard問題方面有著獨特的優(yōu)勢,因此將智能優(yōu)化算法應用于雙聚類算法是一個很好的研究方向。
Yang[6]在2010年根據(jù)蝙蝠回聲定位提出了蝙蝠算法(bat algorithm,BA)。BA算法在解決復雜的優(yōu)化問題方面有著很好的性能,引起了學者的極大關(guān)注,現(xiàn)在已經(jīng)應用于多個領(lǐng)域來解決問題。本文提出了一個基于改進蝙蝠算法的雙聚類算法。改進了原始蝙蝠算法的位置和速度更新公式,并引入變異算子來提高局部搜索能力。最后在酵母菌數(shù)據(jù)集上進行實驗,與多個雙聚類算法的實驗結(jié)果進行比較。結(jié)果表明本文提出的基于蝙蝠算法設計雙聚類算法是一個可行的方法,能夠挖掘出更優(yōu)的雙聚類。
Cheng和Church提出CC算法的時候給出了雙聚類的定義[5],定義如下:
定義1設M行N列的基因表達矩陣為A,G為包含M個基因的基因集,C為包含N個條件的條件合,a i j為基因表達矩陣A的一個元素。雙聚類定義為B=(I,J),其中I為G的一個子集,J為C的一個子集,b ij為子矩陣B的元素,子矩陣B的平均平方殘差為:
其中:a iJ、a Ij、a IJ分別為子矩陣B的第i行平均值、子矩陣B的第j列平均值和子矩陣B(I,J)的平均值。存在一個δ≥0,如果子矩陣B(I,J)滿足H(I,J)≤δ,則稱該子矩陣為一個δ-bicluster。
雙聚類的目的就是在基因表達數(shù)據(jù)矩陣中尋找滿足條件的子矩陣,使得子矩陣中基因集在對應的條件集上具有相似的表達模式。
蝙蝠算法是基于蝙蝠的回聲定位行為提出來的[7]。蝙蝠的回聲定位能夠幫助蝙蝠探測到目標的方向和位置,還可以幫助蝙蝠躲避障礙物。蝙蝠算法中將蝙蝠的一些行為理想化,理想化的規(guī)則如下:
(1)所有的蝙蝠都利用回聲定位來感知自身與目標的距離,并且以某種特殊的方式區(qū)別目標與障礙物。
(2)每只蝙蝠都擁有相同的脈沖頻率f、不同的波長λ和不同的響度A,在位置x以速度v隨機飛行。它們根據(jù)目標的接近程度調(diào)整發(fā)射脈沖的波長λ(或頻率f),并調(diào)整脈沖發(fā)射頻率r。
(3)假設響度從最大值A0變化到Amin。
該算法的主要思想是基于以上理想化規(guī)則,改變脈沖發(fā)射頻率、脈沖頻率、聲音響度,來尋找最優(yōu)解[8]。定義蝙蝠的頻率、速度、位置更新公式:
其中f i為第i只蝙蝠的脈沖頻率,fmax和fmin分別為脈沖頻率的最大值和最小值,β是一個服從均勻分布的隨機值且β∈[0,1],和分別是第i只蝙蝠在第t代和t-1代的飛行速度;和分別為第t代和第t-1代的位置;x*為當前群體中蝙蝠的最優(yōu)位置(最優(yōu)解)。
為了改善算法的局部搜索能力,使用如下公式更新進行局部搜索:
其中,At為第t次迭代所有蝙蝠的平均響度,ε∈[-1,1]是一個隨機數(shù)。隨著迭代的進行,響度A i和發(fā)射脈沖率r i都會進行更新,更新公式如下:
其中,α和γ是常數(shù),是第i只蝙蝠的初始脈沖發(fā)射率。
蝙蝠算法的偽代碼如下所示:
算法1原始蝙蝠算法
目標函數(shù):f(x),x=(x1,x2,…,x d)T;
1.初始化蝙蝠種群x i,速度v i,蝙蝠x i的頻率f i,脈沖發(fā)射率r i,響度A0,i=1,2,…,n
2.初始化參數(shù)蝙蝠種群數(shù)n,α,γ和最大迭代數(shù)ge nmax
3.根據(jù)目標函數(shù)找到當前全局最優(yōu)解
4.fori=1 togenmax:
5.根據(jù)公式(4),(5),(6)生成新解
6.ifrand>r i(rand是一個隨機數(shù),且rand∈[0,1])
7.根據(jù)公式(7)生成一個新解
8.end if
9.通過目標函數(shù)評價新解