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/cn.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灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP