存储大DNA序列的最有效方法?

11 file-format

我想用一个iOS app(大约3,000,000,000个碱基对)打包一个巨大的DNA序列.每个碱基对可以有一个值A,C,TG.将每个碱基对存储在一个字节中会产生3 GB的文件,这太过分了.:)

现在我将每个碱基对存储在两位(每个八位字节四个碱基对)中,这样可以得到750 MB的文件.即使压缩,750 MB仍然太多了.

有没有更好的文件格式可以有效地在磁盘上存储巨型碱基对?在内存中不是一个问题,因为我读了块.

Luk*_*vin 10

我认为你必须使用每个碱基对两位,加上本文所述的实现压缩.

"DNA序列......不是随机的;它们包含重复的部分,回文和其他特征,可以用比二进制拼出完整序列所需的更少的比特来表示......

利用所提出的算法,无论序列中重复或非重复模式的数量如何,序列将被压缩75%.

使用基于哈希的数据结构的DNA压缩,国际信息技术和知识管理期刊2010年7月至12月,第2卷,第2期,第383-386页.

编辑:有一个名为GenCompress的程序声称可以有效地压缩DNA序列:

http://www1.spms.ntu.edu.sg/~chenxin/GenCompress/

编辑:请参阅BioStar上的这个问题.

  • 我阅读了论文(对角线),如果我理解正确,他们只是将4个字母的块编码(散列)为单独的字母.它可以在数据库中有益,因为您可以更好地索引序列.但是在这种情况下,使用2位而不是8位可以获得完全相同的胜利.此外,如果您对此2位令牌序列应用一些基本压缩算法,您应该获得比本文中描述的更好的结果. (2认同)
  • @Timo:来自论文:"DNA序列的压缩被认为是数据压缩领域最具挑战性的任务之一......标准压缩算法无法压缩DNA序列." (2认同)

Eri*_*res 1

碱基对总是配对的,因此您只需存储链的一侧。现在,我怀疑如果 DNA 中存在某些突变(如二硫胺键)导致相反的链与存储的链不完全相反,那么这种方法是否有效。除此之外,我认为除了以某种方式压缩它之外,你没有太多选择。但是,话又说回来,我不是生物信息学专家,所以可能有一些非常复杂的方法可以在一个小空间中存储一堆 DNA。如果是 iOS 应用程序,另一个想法是在设备上放置一个读取器并从 Web 服务读取序列。