• 沒有找到結果。

PIFP (Progress Iterative Frequent Pattern-tree)演算法

第三章 --研究方法

3.4 PIFP (Progress Iterative Frequent Pattern-tree)演算法

入遞迴式的搜尋(Bergmann S et al. 2003)和刪除過於頻繁的項目(Kloster M, et al. 2005), 應用在生物資訊的探勘上面後 ,可以大幅提昇最後的輸出結果 ,加 強FP-Tree的探勘功能。 根據研究結果顯示 ,在相同測試條件下,可比FP-tree 演算法多增加100%~300%的輸出結果 , 並提高準確度。詳細評分過程和步驟 , 在第四章會介紹。因此,將PIFP應用在生物資訊的探勘上確實可以進一步找出潛 藏的基因模組,使輸出結果大幅提昇 ,並作為一個新的雙分群演算法。底下將介 紹我們異於原本的FP演算法之處 ,並配合一些人造資料, 作進一步說明。

PIFP異於原本的FP-tree演算法之處:

z FP-tree的缺點: 根據FP-tree 建立頻繁集項目,並建立出完整的『樹』, 可以很容易地看出頻繁、出現次數多的字串,都集中在根節點(root)附近;

而越靠近葉節點(leaf node)的部分,則相對地出現次數越少。 也就是說, 當FP-tree要找出頻繁字串集合時 ,會選擇靠近樹根的字串,而非靠近樹葉 的字串! 然而,這樣的作法卻很有可能忽略由多組靠近樹葉的非頻繁項目, 所組成的頻繁項目。底下透過人造資料來說明FP 與 PIFP彼此間的差異。

此組資料包含 A~F共六個基因 , C1 ~ C6 共六個實驗狀態。而圖10中的數 值 , 為我們假設經過離散化處理的基因表現資料,『0』代表無基因表現。

33

在此設定我們的 Minimum condition=2 、 Minimum gene=2 , 也就是說我們預 期找出的基因群組為至少包含兩個基因和兩個實驗狀態:

z 使用FP-tree所建立出的樹: ( (C5,1):5 代表在C5的狀態下,value=1共出 現5次)

z 使用FP-tree所找出的基因群組,以方匡表示:

圖 10 共找出三組基因群組, 分別為 ( B,C ) 、( B,C,D )、( D,E,F )

z PIFP 使用『遞迴式的搜尋 & 刪除過於頻繁的項目』,所建立的樹:

z 使用PIFP所找出的基因群組, 以方匡表示:

35

以上範例說明, 藉由PIFP演算法 ,可以找出微弱的基因群組 (A ,B )。原因在於 其他出現次數過多的值 EX: (C5,1):5 , (C3,3):4, 會使得微弱的觀察值分散於 多處樹節點。藉由遮蓋掉這些過於頻繁的項目 ,並重建FP-tree , 可以讓微弱的 觀察值合併 ,且有可能符合 Minimum condition=2 、 Minimum gene=2 ,挖掘出 新的群組。

3.4.1 PIFP系統流程圖

在此介紹系統的詳細流程, 底下將會逐步解釋各步驟之間的運作細節。

圖 12 『PIFP 系統』流程圖

流程圖步驟說明:

Expression Data: 從使用者指定的資料庫- DB_Yeast ,讀取資料 ,存入 PIFP 系統中。之後將在記憶體中進行底下運算步驟。

Normalization: 將輸入資料進行正規化動作。(參考 3.3.1)

Discretization: 將正規化之後的資料 ,進行離散化動作(參考 3.3.4)。並將離 散化之後的資料 ,存入資料庫 DB_Token 中,方便之後的建造 FP 樹和字串查詢動 作。

FP-Growth: 從 FP-Tree 中 ,取出可能的頻繁字串集合。 將候選的頻繁字串,與 與我們設定的兩個門檻值: 出現次數和字串長度來作比較, 看是否滿足。 每個 符合參數的字串 , 在此將會形成會包含多個基因的基因群組 ,且同時包含正向 和負向調控關係 , 並記錄其參與基因表現的實驗狀態名稱。

Filtering: 用來過濾所找到的所有基因群組 。在此使用貪婪法(greedy method), 只挑選出雙分群大小(Gene_count * Condition_Count) 相對大者且雙 分群之間彼此覆蓋(overlap)程度小於 0.75 者; 如此可以避免過多重複的答案

Masking : 將這回合挑選出來的基因群組 ,執行 Mask(遮蓋)的動作。透過此步 驟可以凸顯較微弱的基因群組 ,方便下回合作搜尋。

Any item left: 根據目前遮蓋(mask)掉的基因表現個數,判斷是否還可能存在基

37

3.4.2 PIFP 輸出結果

為了與其他程式比較 ,PIFP 實作了兩種輸出格式 ,但其表達內容其實相同。

格式一:包含(1)群組編號 (2)正向的調控基因 (3)負向的調控基因(4)符合的實 驗狀態 (5) 符合的實驗狀態和基因個數

以酵母菌為測試資料的『基因群組 19』為例 , 可看出以下的資訊內容:

1. 調控模組彼此以線條分開

2. 該群組所符合的實驗狀態個數 = 3 ,及所屬的實驗狀態名稱為{TAF17 , alpha84 , SWI2}

3. 彼此為正向調控的基因個數 =3 ,分別是{YAL009W ,YAL037W,YAR053W}

4. 反向調控的基因個數 =1 ,為{YAR009C}

5. 可明顯看出此基因群組由 4 個基因所組成 , { YAL009W ,YAL037W,YAR053W , YAR009C } , 在 Condition {TAF17 , alpha84 , SWI2} 下 ,彼此可能有調 控關係

圖 13系統測試後以『格式一』的部分輸出結果

格式二:與 Bimax Toolbox(Prelic A.et .al 2006)相同 ,包含:

(1)基因與狀態個數(第一行) (2)基因集合(第二行)(3)狀態集合(第三行)

為了與Bimax Toolbox的輸出格式相容,我們也遵從學者們的輸出格式,可以方便

日後與其他程式作結果分析。底下是實際包含內容:

採用此輸出格式之後 ,可與 OPSM (Ben-Dor et al. 2002)、 ISA (Ihmels et al.2004) 、CC (Cheng and Church ,2000)、xMotif(Murali and Kasif ,2003)、

Bimax(Prelic A et al. 2006) 等近年來發表的 Biclustering Algorithms ,在 相同的測試資料下,作合理且公平的分析、比較。在章節 4.2 、4.3 ,會提出與 多種方法的測試結果和比較。

圖 14 PIFP系統測試後,以『格式二』輸出的部分結果

39

3.4.3 PIFP 特色之處

接下來是本系統的主要核心— PIFP 的一些特色 :

1. 可根據使用者需求 ,找出龐大資料中的重要的頻繁字串。 只需調整 2 個參 數—出現次數和字串長度 , 即可找出符合的基因模組 ; 而此二參數可以 用%來做設定, 會根據資料庫大小作自動調整 ,也避免操作上的不便。

2. 如同雙分群的演算法一樣 , 可以搜尋間隔 (gap)的字串 ; 字串符合彈性 更大。也允許基因群組之間彼此有重疊 ; 即一個基因可以重複存在多個基 因群組中; 可以確實反映出實際的生化反應。

3. 演算法的實際運作相當快速 。如同前面所敘述 ,只要掃瞄兩次即可 ,複雜 程度相當低。使用 Pentium4 3.0 GHZ 和 512 Ram ,測試資料庫(6325*300) (Hughes TR et al.2000) ,約可在 15~30 分鐘內跑完,並輸出完整評分結果。

(時間差異為參數所造成)

4. 在相同條件下 ,使用 PIFP 和 FP 的差異 ,主要在於最後輸出的基因群組數 目 ; 使用 PIFP 演算法可找出數倍於傳統 FP 演算法的基因群組總數。可徹 底找出應該存在的調控關係。關於實驗的部分會在下個章節介紹。

相關文件