与此问题非常相关: Most efficient way to store a big DNA sequence? 还有这个: Declaring a new data type for DNA
我想找到一种有效存储长字符ACTG的方法,而不会浪费每个值的整个字节,而它只需要2位。 但是,我没有看到关于如何在C ++,Java或任何语言中存储2位数据的响应中的任何描述,尽管我认为C ++应该是它的理想语言。
所以我的问题是,正确创建一个方便可用的2位数据类型的语法是什么?我假设需要某种结构来填充字节大小(lol)的数据块,但我不确定。
我非常有兴趣知道其他语言是否也可以使用这些东西,例如Javascript或Perl,但主要是如何用C ++进行。
非常感谢示例代码,谢谢。
答案 0 :(得分:2)
我建议您在std::bitset
中对数据进行编码,并将位集存储在std::vector
中。您可以在bitset中编码DNA对,并在向量中每个元素浪费4位,或者您可以在每个位集中编码2个DNA对,然后就可以获得完美的存储空间。