存储人类基因组需要多少存储空间?
Posted
技术标签:
【中文标题】存储人类基因组需要多少存储空间?【英文标题】:How much storage would be required to store a human genome? 【发布时间】:2012-02-15 19:05:20 【问题描述】:我正在寻找存储单个人类基因组所需的字节存储量(MB、GB、TB 等)。我在 Wikipedia 上阅读了几篇关于 DNA、染色体、碱基对、基因的文章,并做了一些粗略的猜测,但在披露任何内容之前,我想看看其他人会如何处理这个问题。
另一个问题是人类 DNA 中有多少原子,但这与本网站无关。
我知道这将是一个近似值,因此我正在寻找能够存储任何人类 DNA 的最小值。
【问题讨论】:
至于原子的数量,这取决于组成。 A 和 T 是比 G 和 C 更小的分子。但是,分子的结构是牛肉,而不是它的原子组成,所以这并不是一个非常有用的计算。 (对于它的价值,例如 A 分子又名 deoxyadenosine 是 C10H13N5O3 所以 31 个原子。) 另见biostars.org/p/5514 除了用户 slayton、Paul Amstrong 和 rauchen 之外,所有其他给出的答案在本质上都是错误的或远未完成。在答案中,用户(未能)提到了压缩方法,或者解释得不好。请参阅我的答案,以阐明许多答案中所见的 4 倍基因组缩小。 我投票决定将此问题作为题外话结束,因为它在这里是题外话,应该在bioinformatics.stackexchange.com 投票重新开放,因为这绝对不是基于意见的 【参考方案1】:如果你相信这些东西,这是 Wikipedia 声称的(来自http://en.wikipedia.org/wiki/Human_genome#Information_content):
单倍体人类基因组的 29 亿个碱基对对应于 最多约 725 兆字节的数据,因为每个碱基对都可以 由 2 位编码。由于个体基因组的差异小于 1% 彼此之间,它们可以被无损压缩到大约 4 兆字节。
【讨论】:
只是补充一些生物学评论,这里的“单倍体”意味着每条染色体只有一个拷贝。人类参考组装是单倍体(和多人的马赛克)。一个实际的个体基因组将是二倍体(每个染色体有 2 个拷贝,X 和 Y 除外),但同样只是在一小部分位点的两个拷贝之间发生变异。 想了一天,然后意识到:如果您存储了一些基本情况下的人类 DNA,那么任何后续人类的 DNA 只需存储为它与基本情况之间的差异即可。对于同性示例,DNA 99.9% 相同。跨性别这一比例为 98.5%。 另外值得记住的是,并非所有编码在 DNA 碱基对中的信息也有epigenetic 信息。 这是有道理的。碱基对基本上是四元的。一个 4 进制数是 2 位,所以大小加倍。所以这是 5.8 GB 或 5.8/8 GB,即 0.725 GB 或 725 MB。之所以可以进行“压缩”,是因为您可以针对映射的基因组存储差异,而不是存储整个基因组。 @cowlinator 这些定义……不好。在这种情况下,“可遗传”是指在分裂的母细胞和子细胞之间“可遗传”,在多细胞生物及其后代之间不可遗传(这将是跨代表观遗传,即存在但非常罕见,并且大多数声称的案例都是基于糟糕的科学,通常不被专家接受)。但是写这句话的人可能并不完全清楚他们的意思,因为这句话的措辞不好是没有借口的。查看***文章的“讨论”页面。【参考方案2】:您不会将所有 DNA 存储在一个数据流中,而是大部分时间通过染色体存储。
一条大染色体大约需要 300 MB,一条小染色体大约需要 50 MB。
编辑:
我认为它没有以每个碱基对保存 2 位的第一个原因是它会导致处理数据的障碍。大多数人不知道如何转换它。而且即使给出了转换程序,很多大公司或研究机构的人都不允许/需要询问或不知道如何安装程序......
1GB 存储没有任何成本,即使下载 3GB 的速度为 100 Mbitsps,也只需 4 分钟,而且大多数公司的速度更快。
还有一点是,数据并不像您所说的那么简单。
例如Craig_Venter发明的测序方法是一个很大的突破,但也有不足之处。它无法分离相同碱基对的长链,因此并不总是 100% 清楚是否有 8 个 A 或 9 个 A。以后需要注意的事情...
另一个示例是DNA methylation,因为您不能以 2 位表示形式存储此信息。
【讨论】:
+1 来自我。但是,我不知道“大”或“小”染色体是什么意思? 这些数字与***所说的不符(见en.wikipedia.org/wiki/Human_genome#Information_content的表格);我不是说你错了,但你能解释一下差异吗? 看起来他是在引用 Mbp(数百万个碱基对,每个碱基对是基因组中的一个位置)而不是 MB,因为 MB 可以假设每个位置都有 2 位编码跨度> 基因组的某些 DNA 甲基化会在生物体的整个生命周期中发生变化。包括人类基因组的 DNA 甲基化数据将更像是一个人在特定时刻的详细快照,而不是对个人的一般描述。虽然,OP 没有具体说明他们想要什么。 为什么要为每个人存储整个内容?人类之间 99% 的 DNA 是相同的,因此您只需存储每个人与平均值的偏差。【参考方案3】:基本上,每个碱基对占用 2 位(您可以将 00、01、10、11 用于 T、G、C 和 A)。由于人类基因组中有大约 29 亿个碱基对,(2 * 29 亿)位 ~= 691 兆字节。
我不是专家,但是,***上的 Human Genome 页面声明如下:
原始 MB:
男性 (XY):770MB 女性 (XX):756MB我不确定他们的差异来自哪里,但我相信你可以弄清楚。
【讨论】:
实际上,需要超过 2 位,因为序列信息中存储了其他碱基(例如,N
,其中数据不可映射因此未知)。 IUPAC 核苷酸代码比标准的四个多,这会增加存储开销。 ebi.ac.uk/2can/tutorials/aa.html
@AlexReynolds 链接断开:/
@AlexReynolds @o0' bioinformatics.org/sms2/iupac.html 是这些 IUPAC 代码的更好链接。 AIUI,由于不精确,特定基因组“扫描”需要超过 2 位,因此 R
用于 A 或 G,N
用于任何碱基,.
用于间隙等。如果我们可以完美地读取基因组,每个基数只有 2 位。
女性的 X 染色体是单一的。男性有额外的 Y 铬。进行编码,众所周知,这与 X crhom 不同。
这还取决于您如何定义Megabyte:二进制 2^20 或公制 10^6 字节。你使用二进制,所以你的数字更低。【参考方案4】:
是的,整个人类 DNA 所需的最小 RAM 约为 770 MB。 但是,2 位表示是不切实际的。很难搜索或对其进行一些计算。因此,一些数学家设计了更有效的方法来存储这些碱基序列......并将它们用于搜索和比较算法,例如 GARLI (www.bio.utexas.edu/faculty/antisense/garli/garli.html)。 这个应用程序现在在我的电脑上运行,所以我可以告诉你......它实际上存储的 DNA 大约是:1 563 MB。
【讨论】:
【参考方案5】:刚刚也这样做了。原始序列约为 700 MB。如果使用固定存储序列或固定序列存储算法 - 并且更改为 1% 的事实,我使用 perchromosome-sequenceoffset-statedelta 存储计算出约 120 MB。就是这样的存储。
【讨论】:
【参考方案6】:有 4 个核苷酸碱基构成我们的 DNA,它们是 A、C、G、T,因此 DNA 中的每个碱基占用 2 位。大约有 29 亿个基数,即大约 700 兆字节。奇怪的是,它会填满一张普通的数据光盘!巧合?!?
【讨论】:
【参考方案7】:除了用户slayton,rauchen,Paul Amstrong之外的大多数答案如果是关于没有压缩技术的纯一对一存储,则完全错误。
具有 3Gb 核苷酸的人类基因组对应于 3Gb 字节,而不是 ~750MB。根据 NCBI 构建的“单倍体”基因组目前大小为 3436687kb 或 3.436687 Gb。自己检查here。
单倍体 = 染色体的单拷贝。 二倍体 = 两个版本的单倍体。 人类有 22 条独特的染色体 x 2 = 44。 男性第 23 条染色体是 X、Y,共 46 条。 女性第 23 铬。是 X,X 总共是 46。
对于男性来说,在 HDD 上的数据存储中是 23 + 1 条染色体,而对于女性来说,则是 23 条染色体,这解释了答案中不时提到的微小差异。 X铬。来自男性的等于 X 铬。来自女性。
因此,将基因组 (23 + 1) 加载到内存中是通过 BLAST 使用来自 fasta 文件的构建数据库部分完成的。无论压缩版本与否,核苷酸都很难被压缩。早在早期,使用的技巧之一就是替换串联重复(GACGACGAC 具有较短的编码,例如“3GAC”;9 字节到 4 字节)。原因是为了节省硬盘空间(具有 7.200 rpm 和 SCSI 连接器的 500bm-2GB HDDD 盘片的区域)。对于序列搜索,这也是通过查询完成的。
如果 “编码核苷酸” 存储空间是每个字母 2 位,那么您将获得一个字节:
A = 00 C = 01 G = 10 T = 11
只有这样,您才能从位置 1、2、3、4、5、6、7 和 8 中充分获利 1 字节编码。例如,组合 00.01.10.11(作为字节 00011011
)将对应于“ACTG”(并在文本文件中显示为无法识别的字符)。正如我们在其他答案中看到的那样,仅此一项就可以将文件大小减少四倍。因此 3.4Gb 将缩小到 0.85917175 Gb...~860MB,包括当时所需的转换程序 (23kb-4mb)。
但是...在生物学中,您希望能够阅读某些内容,因此压缩 gzip 就绰绰有余了。解压后依然可以阅读。如果使用此字节填充,则读取数据变得更加困难。这就是为什么 fasta 文件实际上是纯文本文件的原因。
【讨论】:
您也可以将其存储为图片或音频记录,甚至是视频 - 存储需要数兆字节。但这不是要求的必需和最小。 @il--ya...我错过了您试图提出的观点...(我猜您喜欢移动大约 250 公里的 TDK 磁带。重达 600 公斤,需要三个小时才能倒带)? 重点是,4 个碱基对中有 1 个是用 2 位信息编码的。这就是 需要 多少数据来编码它 - 你不能用更少的数据来编码。但是您可以选择以不同的方式对其进行编码:您可以使用一个完整的字节,或者绘制一张占用几 kB 的图片,或者进行录音。所有这些仍然允许存储所需的信息,但这不是必需的或最小的编码。您任意强加了可读性标准(使用标准文本编辑器),这不是原始问题中所要求的。 不幸的是,它在生物学中不是这样运作的。科学家之间的交流方式可以是口头、纸质或文本文件格式,可以很容易地从屏幕上读取。如果你有一个碱基对,用零或一填充一个字节就足够了。但是,有 4 个碱基(2 对)。在一个字节中,您有 4 个碱基对位置和 4 个指示碱基对类型的位置。数据压缩有效,但人类需要可读性。 RGB 代码中的单个像素(3 个值和一个强度值)使用 32 字节。一个字母只有 8 位。因此,没有必要让它成为蒙娜丽莎,对吧? ZF007,你错过了我关于极简主义的观点。问题是:“存储人类 DNA 需要需要多少内存?更多细节“...我正在寻找能够存储任何人类 DNA 的 最小 值。”您是trying to answer a different question,即“将人类DNA以生物学家用来交流基因组数据的可读形式存储需要多少内存?”如果您使用良好的压缩算法压缩可读文本数据,则其大小将远低于每个碱基对 2 位。【参考方案8】:人类基因组包含超过 30 亿个碱基对。因此,如果您将每个碱基对表示为两位,那么它将占用 6.15 × 10⁹ 位或大约 770 MB。
【讨论】:
位 ~= 字节。 29 亿位约为 350 MB @SDGuero,碱基对是碱基 4 而不是碱基 2,因此您至少需要 2 位来表示碱基对。 BS on the bit lingo...每个核苷酸碱基是 1 个字符,因此是 1 个字节,无论使用何种字符转换表(AscII、UTF-8 等);不包括 2 字节亚洲编码。 @zf007 碱基对由 a、c、g 和 t 的 TOKENS 表示。令牌与字符不同。没有理由 a 不能编码为 00,c 编码为 01,g 编码为 10,t 编码为 11 存在差异;您声称需要一个人类可读的文件,而该文件不在原始帖子中。【参考方案9】:所有答案都忽略了这样一个事实,即 nuDNA 并不是定义人类基因组的唯一 DNA。 mtDNA 也是遗传的,它为人类基因组贡献了额外的 16,500 个碱基对,使其更符合***的猜测,即男性为 770MB,女性为 756MB。
这并不意味着人类基因组可以轻松存储在 4GB 的 U 盘上。比特本身并不代表信息,代表信息的是比特的组合。因此,在 nuDNA 和 mtDNA 的情况下,比特被编码(不要与压缩相混淆)来表示蛋白质和酶,它们本身需要许多 MB 的原始数据来表示,尤其是在功能方面。
深思:人类基因组的 80% 被称为“非编码”DNA,那么您真的相信整个人体和大脑可以用 151 到 154MB 的原始数据来表示吗?
【讨论】:
【参考方案10】:一个base——T、C、A、G(在base-4数字系统中:0、1、2、3)——被编码为两位 strong>(不是一个),所以一个碱基对由四位编码。
【讨论】:
除了一对碱基互补,所以不要添加任何信息。所以碱基和碱基对都可以用两位编码。 如果你有一个“A”,你会用什么来补充它? “AC”“AG”“AT”都是有效的。同样,如果你有“T”,“TG”“TC”“TA”都是有效的,那你怎么办? @RogerJohansson 不,只有“AT”碱基对在 DNA 中有效。对于“TA”、“CG”和“GC”也是如此。不存在其他碱基对组合。 @KonradRudolph 至少有九个嘌呤 (en.wikipedia.org/wiki/Purine)。它们都可以用来代替A或G。这将使OP的问题的解决方案更加复杂。我同意保持简单并坚持 A、G、T 和 C。 @ZF007 它们存在,但在人类基因组中并不稳定,因此与基因组存储无关。它们的生物学相关性仅在突变(并且只是暂时的)和 RNA 修饰的情况下才重要。特别是(在此答案的上下文中),基因组数据不存储为“碱基对”,而是存储为单个碱基序列,并且每个位置都可以用两位编码。这不是理论上的,这是它实际完成的方式(除了对于大多数应用程序,遗传数据存储在(gzipped)ASCII中,而不是位压缩)。【参考方案11】:碱基对只有2种,胞嘧啶只能与鸟嘌呤结合,腺嘌呤只能与胸腺嘧啶结合, 所以每个碱基对可以被认为是一个位。 这意味着大约 30 亿“比特”的整个人类 DNA 链大约是 350 兆字节。
【讨论】:
您有 2 种类型的对,它们可以在两个方向 - 所以每对需要两个位。这就是为什么上面的大多数帖子都写了 ~700MB,而不是 350MB。以上是关于存储人类基因组需要多少存储空间?的主要内容,如果未能解决你的问题,请参考以下文章