Perl 板


LINE

我有兩個DNA database: database A 有約18 萬條序列,每條約500nt database B 有約5 萬條序列,每條約5000nt 我希望讓這A、B兩個database 互相比對, 以找出A、B兩個database中,共有相同20nt 的兩筆序列。 我先用 "foreach" 將database A 每條序列分開, 再用 "substr" 每20個nt 搜索 (DNA 的正反股都要搜索) 再用 "foreach" 將database B 的序列逐一檢查跟 "substr" 相同者 結果... 我用小一點的database 測試並且估算, 這樣用筆電算完,總共要四千天左右 XD 想請教先進們 是否有節省時間的運算方式? 或是換好一點的電腦會算比較快嗎? 先謝不吝賜教!! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.89.53
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Perl/M.1421656798.A.E10.html
1F:推 herculus6502: 讓我想到cas9啊… 01/19 18:07
2F:推 flu: 對DNA sequencing不熟..只是 用cpan module不會比較方便嗎? 01/19 18:58
3F:推 uper: 用hash 01/19 19:51
4F:推 LiloHuang: 可以考慮在第一層分開後,將 substr 的結果存在 %hash 01/19 20:52
5F:→ LiloHuang: 此時第一層的 %hash 裡頭就會是擺滿著一堆切好的資料 01/19 20:54
6F:→ LiloHuang: 然後把第二層的 foreach 直接提到外面去,別弄成巢狀 01/19 20:54
7F:推 LiloHuang: my %hash; 01/19 21:06
8F:→ LiloHuang: foreach (@DB_a) { 01/19 21:06
9F:→ LiloHuang: # do substr to put items in %hash 01/19 21:06
10F:→ LiloHuang: } 01/19 21:07
11F:→ LiloHuang: foreach (@DB_b) { 01/19 21:07
12F:→ LiloHuang: if (exists $hash{$_}) { 01/19 21:07
13F:→ LiloHuang: # found! 01/19 21:08
14F:→ LiloHuang: } 01/19 21:08
15F:→ LiloHuang: } 01/19 21:08
16F:推 LiloHuang: 從時間複雜度的角度來看,原先的做法至少是 O(n^2) 01/19 21:09
17F:→ LiloHuang: 但是其實找尋重複的資料這件事情,不需要弄成巢狀 01/19 21:10
18F:→ LiloHuang: 假設記憶體夠大,可以使用空間來換時間,就不會跑太久 01/19 21:11
19F:→ LiloHuang: 注意當資料量異常大時,你得使用 64bit 的 Perl 直譯器 01/19 21:11
20F:→ LiloHuang: 附帶一提, put items in %hash 是把資料當作 key 01/19 21:15
21F:→ LiloHuang: 而不是擺到 value 喔 :) 這點要特別提醒一下 01/19 21:16
22F:推 LiloHuang: 如果還嫌太慢要再做更多加速,可再使用平行計算的技巧 01/19 21:17
23F:→ LiloHuang: 如果覺得機器太慢,也可考慮租用Google Compute Engine 01/19 21:19
24F:→ goodday06: 多謝! 我再試看看! 01/20 09:38
25F:→ LiloHuang: 更正,時間複雜度至少會是 O(m*n) 兩層迴圈資料數不同 01/21 21:50







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP