BAM文件数据结构详解

发布时间:2024年01月06日

BAM文件(Binary Alignment/Map格式)是用于存储大规模测序数据的二进制文件格式,特别是用于存储序列与参考基因组的比对结果。它是SAM(Sequence Alignment/Map)文件的压缩版本,设计用于更有效的存储和快速的数据访问。以下是BAM文件数据结构的详细介绍,以及一个简单的例子来说明其结构:

数据结构

  1. 文件头(Header):
  • 包含关于BAM文件本身、参考序列和比对程序的信息。
  • 包括的字段可能有:文件格式版本、参考序列的名称和大小、排序方式、比对程序的信息等。

  1. 对齐段(Alignment Blocks):
  • 每个对齐段代表一个读段(read)的比对信息。
  • 包括的字段有:
    • QNAME:读段的名字。
    • FLAG:一组标志,表示读段的特定属性(例如,是否配对、是否比对到参考序列等)。
    • RNAME:参考序列的名字。
    • POS:读段比对到参考序列的起始位置。
    • MAPQ:比对质量分数。
    • CIGAR:一种编码方式,描述如何将读段与参考序列对齐。
    • SEQ:原始读段的核苷酸序列。
    • QUAL:读段序列的质量分数。

  1. 附加数据:
  • 可以包括一些可选的标签,如读段的比对分数、配对信息等。

例子

假设我们有一个简单的BAM文件,它包含了两个读段的比对信息。这里是一个抽象的、简化的表示:

  1. 文件头:
  • 版本:1.5
  • 参考序列:chr1,长度249250621

  1. 对齐段:
  • 读段1:
    • QNAME: read0001
    • FLAG: 0
    • RNAME: chr1
    • POS: 123456
    • MAPQ: 60
    • CIGAR: 76M
    • SEQ: ATCGATCGATCG...
    • QUAL: *(表示没有质量信息)

    • 读段2:
      • QNAME: read0002
      • FLAG: 16 (表示读段比对到参考序列的反向互补链)
      • RNAME: chr1
      • POS: 123501
      • MAPQ: 60
      • CIGAR: 76M
      • SEQ: GCTAGCTAGCTA...
      • QUAL: *(表示没有质量信息)

在这个例子中,我们看到了BAM文件的两个主要部分:文件头和对齐段。每个对齐段都详细描述了一个单独的读段如何比对到参考序列。例如,读段1(read0001)比对到了参考序列chr1的位置123456,而读段2(read0002)则比对到了位置123501,并且是在参考序列的反向互补链上。

文章来源:https://blog.csdn.net/m0_71218711/article/details/135418788
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。