做生物信息,你需要多少内存?
原创 基因学苑
做生物信息,需要多少内存,经常有人问我分析的内存消耗情况,比如拼接基因组需要多少内存,转录组需要多少内存,宏基因组需要多少内存,纳米孔拼接需要多少内存,今天我们就来讨论一下,与内存有关的二三事。
内存是数据分析的瓶颈
内存是CPU和硬盘之间数据交流的媒介,计算机需要将存储在硬盘上的数据读取到内存中,CPU才能用来计算,而CPU不能直接读取硬盘上的数据,必须通过内存这个缓冲区。如果说CPU是计算机的 大脑,硬盘是计算机的五脏六腑,那么内存则是计算机的脖子,也恰恰是数据分析中的“瓶颈”。
计算机的工作原理是从硬盘读取数据,存入内存,CPU从内存中读取数据进行处理,处理完成之后在写入磁盘。如果你理解了这个原理,那么就知道了内存的重要性。CPU处理速度是很快的,但是磁盘的读写速度比较慢,就需要内存这个临时缓存,内存越大,可以缓存的数据越多,CPU就可以更好的发挥作用。这就是为什么,内存会影响计算机的运行速度 。
image机械硬盘,固态硬盘,内存读写速度比拼
那么机械硬盘,固态硬盘,内存的读写速度都是多少呢,根据公开的资料查询,得到以下数据,不过注意,这里只是一个平均值,不同品牌,不同型号茶品之间会有较大差别。
1、5400转的笔记本硬盘:50-90MB每秒。
2、7200转的台式机硬盘:90-190MB每秒。
3、固态硬盘的读写速度可以达到500MB/s。
4、双通道DDR4 2400MHz的读写速度理论极限是2400MHz*128bit/8=38400MB/s。
image所以,更换固态磁盘,计算机运行速度会有巨大提升,目前固态硬盘还无法替换内存的作用,后面加个降低了,希望有一天CPU可以直接读写磁盘上的数据。
你需要多少内存
因为影响数据分析内存大小的因素非常多,比如数据量大小,具体算法,分析内容等等,所以,很难计算出具体需要消耗多少内存,你问我拼接基因组需要多少内存?细菌,真菌,人,动植物?二代测序,三代测序,测序深度,错误率分布?使用哪个软件?每个条件都会有差别。即使你把所有条件都告诉我,我也没法立刻建模给你估算出来。
image(曾几何时,内存条也是硬通货,炫富神器)
但是如果你理解了内存的工作原理,那么就也能大致推算一下。假设一个人的全基因组测序数据,采用二代测序的方法,人的基因组3G,10倍数据就是30G,那么这30G的碱基,在切成更小的kmer,假设数据增加到了100G,还不算存储序列的一些其他信息,序列拼接的时候必须一次将所有数据同时存入内存,这就要消耗100多G的内存。实际过程中可能还需要存储一些额外信息,内存就更大了。如果内存达不到100G,拼接根本无法完成。
如果是与参考序列比对,软件只需要将参考序列存储到内存中,然后依次读取测序数据,这样的话就不需要占用太大内存。
具体需要多少,还需要进行实际运算,top或者htop命令监控资源消耗情况。
image
网友评论