测序数据比对结果格式(sam, bam, bw)

图片

SAM (Sequence Alignment/Map) 文件是一种用于存储测序数据比对结果的文本格式,广泛用于基因组学分析。它由一个 可选的头部 和 比对数据部分 组成。


1. SAM 文件格式结构

(1) 头部(Header)

头部行以 @ 开头,通常包含比对信息、参考序列信息等,例如:

@HD     VN:1.4  SO:coordinate@SQ     SN:chr1 LN:248956422@SQ     SN:chr2 LN:242193529@PG     ID:bwa  PN:bwa  VN:0.7.17-r1188

  • @HD

    :文件格式信息,VN 代表 SAM 版本,SO 表示排序方式(coordinate 或 unsorted)。

  • @SQ

    :参考序列信息,SN 代表染色体名称,LN 代表该染色体的长度。

  • @PG

    :比对软件信息,如 bwa

(2) 比对数据部分(Alignment Section)

比对数据部分由 11 个必需字段和可选字段组成,每行代表一个比对的序列。例如:​​​​​​​

M01234:56:000000000-A0CDW:1:1101:15098:1734  99   chr1  10027  60  50M  =  10076  99  AGCTTAGCTAGCTACCTATATCTTGGTCTTGGCCGATGCTTTGAC   IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII   NM:i:0  MD:Z:50  AS:i:50  XS:i:25


 


2. SAM 文件每列字段含义

字段编号字段名称说明

1

QNAME

读取序列的名称(如测序 read ID)

2

FLAG

比对标志,表示 read 的方向、单端/双端等

3

RNAME

参考序列名称(染色体号)

4

POS

比对起始位置(1-based)

5

MAPQ

比对质量分值(0-60,越高表示比对可靠性越高)

6

CIGAR

CIGAR 字符串,表示比对操作(如 50M 代表 50 个匹配碱基)

7

RNEXT

配对 read 的参考序列名称(= 表示与当前 read 在同一参考序列上)

8

PNEXT

配对 read 的比对起始位置

9

TLEN

片段长度(配对 read 之间的距离)

10

SEQ

序列本身

11

QUAL

序列的 Phred 质量分数(ASCII 编码)

12+

可选字段

例如 NM:i:0(错配数)、MD:Z:50(比对匹配情况)、AS:i:50(比对得分)等


3. 关键字段解析

(1) FLAG(比对标志)

FLAG 是一个 整数,表示 read 的比对状态。常见 FLAG 含义:

FLAG 值意义

0

单端比对,正向链

16

单端比对,负向链

99

双端比对,read1,正向链

147

双端比对,read2,负向链

4

未比对

2048

次要比对(Secondary Alignment)

示例

99

 = 1 + 2 + 32 + 64(即 0x63),解析如下:

  • 1

    (paired)= 成对比对

  • 2

    (properly paired)= 配对成功

  • 32

    (mate reverse strand)= 配对 read 在反向链

  • 64

    (read1)= 该 read 是 pair1

可以用 samtools flagstat 解析 FLAG 统计信息。

(2) CIGAR(比对信息)

CIGAR 字符串表示 read 如何比对到参考基因组。常见符号:

符号含义
M

匹配(match)

I

插入(insertion)

D

缺失(deletion)

S

软剪切(soft clipping)

H

硬剪切(hard clipping)

N

跨内含子(spliced alignment)

示例

  • 50M

    :表示 read 的 50 个碱基完全匹配参考序列

  • 10M1I10M1D30M

    :表示 10 个匹配碱基,1 个插入,10 个匹配碱基,1 个缺失,30 个匹配碱基

(3) MAPQ(比对质量)
  • 60

    :唯一比对,质量最高

  • 0

    :多重比对,低质量


4. 常见分析工具

  1. samtools(查看、转换、过滤)​​​​​​​
samtools view -h input.sam | less  # 查看 SAM 文件samtools flagstat input.sam        # 统计 FLAG 信息samtools view -bS input.sam > output.bam  # 转换为 BAM 格式

2. awk 提取特定染色体 reads​​​​​​​

awk '$3 == "chr1" {print}' input.sam > chr1_reads.sam
 

3. 提取比对质量高的 reads​​​​​​​

awk '$5 >= 30' input.sam > high_quality.sam


5. 总结

  • SAM 文件包含比对信息,分为头部(@ 开头)和比对数据部分。
  • 比对数据部分由 11 个字段(QNAME、FLAG、RNAME、POS、CIGAR 等)组成。
  • FLAG、CIGAR、MAPQ 是解析比对质量和方式的关键字段。
  • 可以使用 samtools 进行基本操作,如转换、过滤和统计。

SAM 文件是 RNA-Seq、ChIP-Seq 和 WGS 数据分析的重要格式,熟练掌握其结构有助于优化生物信息分析流程! 

BAM 文件格式解析

BAM (Binary Alignment/Map) 文件是 SAM 文件的二进制版本,用于存储高通量测序数据的比对结果。它比 SAM 更紧凑,占用更少存储空间,并且可以更快地进行数据操作。BAM 是二进制格式,需要使用专门的工具(如 samtools)来查看和操作。


1. BAM 文件结构

BAM 文件与 SAM 文件的基本信息相同,主要由两部分组成:

  1. 头部(Header):

     包含比对软件信息、参考基因组信息等。

  2. 比对数据(Alignment Section):

     以二进制格式存储比对结果,每条 reads 占据一行。

由于 BAM 是二进制文件,不能直接用 cat 或 less 查看,需要用 samtools view 进行转换:​​​​​​​

samtools view input.bam | less -S

这会将 BAM 转换为可读的 SAM 格式,便于分析。


2. BAM 文件头部

头部部分包含 @ 开头的元信息,与 SAM 文件相同,例如:​​​​​​​

@HD     VN:1.4  SO:coordinate@SQ     SN:chr1 LN:248956422@SQ     SN:chr2 LN:242193529@PG     ID:bwa  PN:bwa  VN:0.7.17-r1188

  • @HD

    :文件格式信息,如 VN (版本) 和 SO (排序方式)。

  • @SQ

    :参考序列信息,如 SN (染色体名称) 和 LN (长度)。

  • @PG

    :比对工具的信息,如 bwa 版本。

查看 BAM 头部:​​​​​​​

samtools view -H input.bam


3. BAM 比对数据部分

比对数据部分的每一行代表一个比对 read,与 SAM 文件相同,但存储方式为二进制格式。使用 samtools view 解析:​​​​​​​

M01234:56:000000000-A0CDW:1:1101:15098:1734  99   chr1  10027  60  50M  =  10076  99  AGCTTAGCTAGCTACCTATATCTTGGTCTTGGCCGATGCTTTGAC   IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII   NM:i:0  MD:Z:50  AS:i:50  XS:i:25

字段解释:

字段编号字段名称说明

1

QNAME

读取的 read ID

2

FLAG

比对标志,表示 read 的方向、配对情况等

3

RNAME

参考序列名称(染色体号)

4

POS

比对起始位置(1-based)

5

MAPQ

比对质量分值(0-60,越高越可靠)

6

CIGAR

CIGAR 字符串,表示比对情况

7

RNEXT

配对 read 的参考序列名称

8

PNEXT

配对 read 的比对起始位置

9

TLEN

片段长度(配对 read 之间的距离)

10

SEQ

序列本身

11

QUAL

质量值(Phred 质量分数)

12+

可选字段

例如 NM:i:0(错配数)、MD:Z:50(匹配信息)、AS:i:50(比对得分)


4. 重要字段解析

(1) FLAG (比对标志)

FLAG 是一个 整数值,用于表示 read 的比对状态。可以使用 samtools flagstat 统计 FLAG 信息:​​​​​​​

samtools flagstat input.bam

常见 FLAG 值:

FLAG 值含义

0

单端比对,正向链

16

单端比对,负向链

99

双端比对,read1,正向链

147

双端比对,read2,负向链

4

未比对

2048

次要比对(Secondary Alignment)

解析 FLAG:​​​​​​​

samtools view -f 99 input.bam  # 提取 FLAG = 99 的 reads

(2) CIGAR (比对信息)

CIGAR 字符串表示 read 如何比对到参考序列:

符号含义
M

匹配(match)

I

插入(insertion)

D

缺失(deletion)

S

软剪切(soft clipping)

H

硬剪切(hard clipping)

N

跨内含子(spliced alignment)

示例:

  • 50M

    :表示 read 完全匹配 50 个碱基

  • 10M1I10M1D30M

    :表示 10 个匹配碱基,1 个插入,10 个匹配碱基,1 个缺失,30 个匹配碱基

(3) MAPQ(比对质量)

  • 60

    :唯一比对,最高质量

  • 0

    :低质量或多重比对

筛选高质量比对:​​​​​​​

samtools view -q 30 input.bam > high_quality.bam


5. BAM 文件常见操作

(1) 查看 BAM 文件​​​​​​​

samtools view input.bam | less -S

(2) 提取特定染色体 reads​​​​​​​

samtools view -b input.bam "chr1" > chr1_reads.bam

(3) 统计比对质量​​​​​​​

samtools flagstat input.bam

(4) 过滤未比对的 reads​​​​​​​

samtools view -b -F 4 input.bam > mapped.bam

(5) 将 BAM 转换为 SAM​​​​​​​

samtools view -h input.bam > output.sam

(6) 按坐标排序 BAM​​​​​​​

samtools sort input.bam -o sorted.bam

(7) 索引 BAM 文件​​​​​​​

samtools index sorted.bam

生成的 sorted.bam.bai 文件可以加速查询。

(8) 提取特定基因区域​​​​​​​

samtools view -b input.bam "chr1:1000000-2000000" > region.bam


6. 总结

  • BAM 是 SAM 的二进制格式,占用空间小,处理速度快。
  • 头部 (@) 包含参考基因组信息,比对数据存储为二进制。
  • 使用 samtools view 解析 BAM,字段与 SAM 文件相同(QNAME, FLAG, CIGAR, MAPQ 等)。
  • samtools 提供排序、过滤、转换、索引等常见操作,提高分析效率。

BAM 是基因组测序分析的核心格式,熟练掌握 BAM 操作对生物信息学分析至关重要! 

BigWig(BW)文件格式解析

BigWig(.bw) 是高效存储 定量基因组数据(如 测序覆盖度表达水平甲基化水平)的二进制格式。它是 Wig(WIG)格式 的二进制压缩版本,占用空间更小,支持快速随机访问,常用于可视化基因组数据(如 IGV、UCSC Genome Browser)。


1. BigWig 文件特点

  • 二进制格式

    ,压缩存储,文件小,加载快。

  • 可快速查询

     某个基因组区域的数据,适合大规模数据集。

  • 支持可视化

    (UCSC Genome Browser、IGV、DeepTools)。

  • 基于 Wiggle(WIG)格式

    ,但比 WIG 更高效。


2. BigWig 的数据内容

BigWig 主要存储 基因组上每个碱基的定量信号,如:

  • ChIP-seq

     或 ATAC-seq 覆盖度

  • RNA-seq

     转录本表达水平

  • DNA 甲基化水平
  • 核小体定位

BigWig 不能直接打开,需要用 bigWigToBedGraph 或 bigWigSummary 解析。


3. BigWig 文件的生成

BigWig 由 WIG 或 BedGraph 文件转换而来,通常用 UCSC 工具(bedGraphToBigWig 或 DeepTools 生成。

(1) BedGraph 转换为 BigWig​​​​​​​

# 先对基因组构建染色体大小信息cut -f1,2 genome.fa.fai > genome.chrom.sizes
# BedGraph 转 BigWigbedGraphToBigWig input.bedgraph genome.chrom.sizes output.bw

(2) BAM 直接转换为 BigWig

用 DeepTools 计算 BAM 覆盖度并转换:​​​​​​​

bamCoverage -b input.bam -o output.bw --binSize 10 --normalizeUsing CPM

bamCoverage -b input.bam -o output.bw --binSize 10 --normalizeUsing CPM

参数:

  • --binSize 10

    :窗口大小 10bp

  • --normalizeUsing CPM

    :标准化为每百万 reads 计数


4. 解析 BigWig 文件

(1) 转换为 BedGraph​​​​​​​

bigWigToBedGraph input.bw output.bedgraph

(2) 查询特定区域的信号​​​​​​​

bigWigSummary input.bw chr1 1000000 1010000 10

返回 chr1:1000000-1010000 区域,按 10 个 bins 计算的均值信号。

(3) 可视化 BigWig

  • UCSC Genome Browser
  • IGV
  • DeepTools plotProfile​​​​​​​​​​​​​​
computeMatrix reference-point -S input.bw -R genes.bed -o matrix.gzplotProfile -m matrix.gz -out profile.png


5. 总结

  • BigWig 是二进制 Wiggle 格式,占用小,查询快。
  • 适用于基因组覆盖度、表达水平、甲基化等定量数据。
  • 可通过 bedGraphToBigWig 或 bamCoverage 生成。
  • 使用 bigWigToBedGraph 或 bigWigSummary 解析,支持 IGV/UCSC 可视化。

BigWig 是 高效基因组数据存储格式,广泛用于生物信息分析! 

生信大白记第53记,就到这里,关注我!

下一记,持续更新学习生物信息学的内容!

生信大白记邮箱账号:shengxindabaiji@163.com

生信大白记简书账号:生信大白记

生信大白记CSDN账号:生信大白记

生信大白记微信公众号:生信大白记

加入生信大白记交流群938339543

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值