CRAM
CRAM(Compressed Reference-oriented Alignment Map,压缩参考导向比对图)是新一代的高通量测序数据存储格式,由 EBI(欧洲生物信息学研究所)和 Sanger Institute 开发,现由 GA4GH 维护。
旨在取代体积庞大的 BAM 格式,CRAM 采用了创新的“基于参考序列的压缩”(Reference-based Compression)策略。它不直接存储测序 Reads 的完整序列,而是只记录 Reads 与参考基因组(Reference Genome)之间的差异(如变异、测序错误)。
通过这种“做减法”的方式,CRAM 在无损模式下可比 BAM 节省 30% - 50% 的存储空间;若启用有损压缩(如对质量值进行分箱),压缩率可达 BAM 的 10 倍以上,大大降低了基因组大数据的存储成本。
核心原理:差量编码 (Delta Encoding)
BAM 像是在抄书,把每个字母都抄下来;而 CRAM 像是在做“改错题”,只记录哪里与标准答案(参考基因组)不一样。
无损 vs. 有损:质量值的取舍
测序仪产生的质量值(Quality Score)占据了 BAM 文件 50% 以上的体积。CRAM 提供了灵活的策略来处理这些数据。
| 模式 | 处理方式 | 适用场景 |
|---|---|---|
| 无损压缩 (Lossless) |
完整保留每个碱基的 Phred 分数。 | 临床诊断、需要最高精度的变异检测。 |
| 质量值分箱 (Binning) |
将相似的分数归为一类(如 Q33, Q34 -> Q30)。减少信息熵,大幅提高压缩率。 | 大规模人群队列研究(如 1000 Genomes),此时细微的质量差异对统计结果影响不大。 |
| 完全丢弃 (No Qual) |
不存储质量值(或全设为默认值)。 | 长期归档存储(Archiving),仅保留序列信息。 |
关键相关概念 [Key Concepts]
1. Reference Cache (参考序列缓存): 为了避免每次都手动指定参考基因组路径,Samtools 和 CRAM 使用一个环境变量(REF_PATH)或 EBI 的在线服务,自动下载并缓存所需的参考序列片段。
2. .crai Index: CRAM 的索引文件。类似于 BAM 的 .bai,它也是压缩的(gzipped),支持随机访问。通过它,IGV 可以快速跳转到 CRAM 文件的任意染色体位置。
3. GA4GH (Global Alliance for Genomics and Health): 全球基因组学与健康联盟。CRAM 格式的官方维护者。他们推动 CRAM 成为基因组数据的国际交换标准,以应对 EB/PB 级的数据海啸。
学术参考文献 [Academic Review]
[1] Fritz MH, Leinonen R, Silverton T, et al. (2011). Efficient storage of high-throughput DNA sequencing data using reference-based compression. Genome Res.
[点评]:CRAM 概念的开创性论文。首次提出了利用参考基因组进行差量压缩的理论框架。
[2] Bonfield JK, et al. (2021). The SAM/BAM/CRAM format specifications. GitHub / HTS-Specs.
[点评]:官方技术规范。详细定义了 CRAM v3.0 的编码细节,是软件开发者(如 GATK 团队)必须遵循的标准。