其他分享
首页 > 其他分享> > Bam文件

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参数后更的内容一致。

image

序列部分

除了上述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是一套用于与高通量测序数据交互的程序。这里只列举最基本的用法,其余的具体可看官方手册。

Samtoolshttp://www.htslib.org/

Samtools手册samtools manual page

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