Bam文件
作者:互联网
Bam文件
2022-07-14
在处理NGS下机数据时,通常会涉及到比对结果的查看,这需要对比对后的文件比较熟悉,下流的分析模块也需要用到比对输出的结果文件。通常存储为Bam格式的文件,Bam格式是一种二进制存储文件,转化为文本格式后对应于Sam文件。Sam文件记录了reads比对后的结果信息。具体的格式可以查看官方文档,这里只1记录一下经常用到的一些信息,后期如有需要会继续补充。
Sam文件官方文档:http://http://samtools.github.io/hts-specs/SAMv1.pdf
Heng Li, Bob Handsaker, Alec Wysoker, Tim Fennell, Jue Ruan, Nils Homer, Gabor Marth, Goncalo Abecasis, Richard Durbin, 1000 Genome Project Data Processing Subgroup, The Sequence Alignment/Map format and SAMtools, Bioinformatics, Volume 25, Issue 16, 15 August 2009, Pages 2078–2079, https://doi.org/10.1093/bioinformatics/btp352
HEAD部分
Bam文件的head部分以"@"开头的行,包含有"@HD"、"@SQ"、"@RG"、"@PG" 等。
@HD行表示整个文件信息,VN表示格式版本,SO表示排序信息,支持queryname、coordinate、unknown、unsorted。
@SQ行记录了参考序列的信息,一般三列,分别是@SQ、RNAME、Sequence_length。
@RG记录了样本名,测序平台等信息,内容与bwa生成bam文件时的-R参数后更的内容一致。
序列部分
除了上述HEAD部分时序列部分,每行记录一条reads的比对情况。如下所示:
A00168:434:H3N5CDSXY:1:1101:2383:1078 83 chrM 232 60 93M = 151 -174 ATAATAATAACAATTGAATGTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAAAATTTCCACCAAACCCCCCCCTCCCCCCGCTTCTG PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP NM:i:0 MD:Z:93 MC:Z:93M AS:i:93 XS:i:0 RG:Z:lib0145 BD:Z:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFN BI:Z:DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDN MI:Z:AGTTC-CATTA-77 RX:Z:AGTTC-CATTA XR:Z:AGTTC-CATTA-0 XZ:Z:3,0
# 该条read比对到chrM:232,mate比对到chrM:151,并且是reverse。序列长度93bp,insert size为174
基础信息
每一条序列比对后都会包含以下几列信息。
列数 | 列名 | 解释 |
---|---|---|
1 | QNAME | 该条reads的ID |
2 | FLAG | 比对信息,具体见下文 |
3 | RNAME | 比对到的Ref的ID |
4 | POS | 比对到Ref的位置,1-base |
5 | MQ | 比对质量 |
6 | CIGAR | CIGAR标签 |
7 | RNEXT | mate比对到Ref的ID |
8 | PNEXT | mate比对到Ref的位置 |
9 | TLEN | 模板链的长度,insert size |
10 | SEQ | reads的序列 |
11 | QUAL | 每一个碱基的质量ASCII编码 |
Flag信息
Flag是一个十进制的数值,由多个12位2进制的数加和而来,其中每个数只有1位为1,其余均为0,每一位都表示了比对可能出现的情况,具体如下:
flag值 | 十六进制 | 解释 |
---|---|---|
1 | 0x1 | pair reads中的一条 |
2 | 0x2 | pair reads都比对到Ref |
4 | 0x4 | 该条read未比对到Ref |
8 | 0x8 | mate read未比对到Ref |
16 | 0x10 | 该条reads是reverse,即与Ref反向互补 |
32 | 0x20 | mate read是reverse |
64 | 0x40 | first read |
128 | 0x80 | second read |
256 | 0x100 | secondary alignment |
512 | 0x200 | read fails platform/vendor quality checks |
1024 | 0x400 | PCR or optical duplicate |
2048 | 0x800 | supplementary alignment |
推荐一个在线的Flag解析工具:https://broadinstitute.github.io/picard/explain-flags.html
CIGAR标签
CIGAR表示reads序列与比对到的Ref序列的情况。
值 | 解释 | |
---|---|---|
0 | M | 比对match(序列不一定完全一致) |
1 | I | insertion |
2 | D | deletion |
3 | N | skipped region from the reference |
4 | S | soft clipping |
5 | H | hard clipping |
6 | P | padding (silent deletion from padded reference) |
7 | = | 序列match |
8 | X | 序列mismatch |
*hard clip只能出现在reads的开头或者末尾
*softclip只能出现在hardclip里边或者在read末尾
*M/I/S/=/X之和等于SEQ的长度
常见TAG信息
除了上边11列信息,在后边通常还会由其他的TAG记录了不同的数据信息,其格式为TAG:VALUE,下面列举了常见的TAG,更多的TAG可见官方的文档。
MI:Z: 分子标识符
RX:Z: UMI序列
NM:i: 序列和Ref之间的差异(mismatch+insertion+deletion),一般认为是编辑距离。match只考虑A、T、C、G四种碱基。insertion和deletion每个碱基算一个mismatch。
官方TAG文档:SAMtags.pdf (samtools.github.io)
samtools
Samtools是一套用于与高通量测序数据交互的程序。这里只列举最基本的用法,其余的具体可看官方手册。
Samtools:http://www.htslib.org/
Samtools手册:samtools manual page
- samtools view
- samtools sort
- samtools index
samtools view -h ${bam}
samtools sort ${bam} -o sorted.bam
samtools index ${fasta}
点击查看代码
samtools --help
Program: samtools (Tools for alignments in the SAM format)
Version: 1.5 (using htslib 1.5)
Usage: samtools <command> [options]
Commands:
-- Indexing
dict create a sequence dictionary file
faidx index/extract FASTA
index index alignment
-- Editing
calmd recalculate MD/NM tags and '=' bases
fixmate fix mate information
reheader replace BAM header
rmdup remove PCR duplicates
targetcut cut fosmid regions (for fosmid pool only)
addreplacerg adds or replaces RG tags
-- File operations
collate shuffle and group alignments by name
cat concatenate BAMs
merge merge sorted alignments
mpileup multi-way pileup
sort sort alignment file
split splits a file by read group
quickcheck quickly check if SAM/BAM/CRAM file appears intact
fastq converts a BAM to a FASTQ
fasta converts a BAM to a FASTA
-- Statistics
bedcov read depth per BED region
depth compute the depth
flagstat simple stats
idxstats BAM index stats
phase phase heterozygotes
stats generate stats (former bamcheck)
-- Viewing
flags explain BAM flags
tview text alignment viewer
view SAM<->BAM<->CRAM conversion
depad convert padded BAM to unpadded BAM
标签:文件,samtools,BAM,read,reads,序列,Bam,Ref 来源: https://www.cnblogs.com/Sunny-King/p/Bioinformatics-Bam.html