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 字符串,表示比对操作(如 |
7 | RNEXT | 配对 read 的参考序列名称( |
8 | PNEXT | 配对 read 的比对起始位置 |
9 | TLEN | 片段长度(配对 read 之间的距离) |
10 | SEQ | 序列本身 |
11 | QUAL | 序列的 Phred 质量分数(ASCII 编码) |
12+ | 可选字段 | 例如 |
3. 关键字段解析
(1) FLAG(比对标志)
FLAG 是一个 整数,表示 read 的比对状态。常见 FLAG 含义:
FLAG 值 | 意义 |
---|---|
0 | 单端比对,正向链 |
16 | 单端比对,负向链 |
99 | 双端比对,read1,正向链 |
147 | 双端比对,read2,负向链 |
4 | 未比对 |
2048 | 次要比对(Secondary Alignment) |
示例 : | |
99 = |
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. 常见分析工具
- 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 文件的基本信息相同,主要由两部分组成:
- 头部(Header):
包含比对软件信息、参考基因组信息等。
- 比对数据(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+ | 可选字段 | 例如 |
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 转 BigWig
bedGraphToBigWig 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.gz
plotProfile -m matrix.gz -out profile.png
5. 总结
- BigWig 是二进制 Wiggle 格式,占用小,查询快。
- 适用于基因组覆盖度、表达水平、甲基化等定量数据。
- 可通过
bedGraphToBigWig
或bamCoverage
生成。 - 使用
bigWigToBedGraph
或bigWigSummary
解析,支持 IGV/UCSC 可视化。
BigWig 是 高效基因组数据存储格式,广泛用于生物信息分析!
生信大白记第53记,就到这里,关注我!
下一记,持续更新学习生物信息学的内容!
生信大白记邮箱账号:shengxindabaiji@163.com
生信大白记简书账号:生信大白记
生信大白记CSDN账号:生信大白记
生信大白记微信公众号:生信大白记
加入生信大白记交流群938339543