ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Bam文件

2022-07-14 15:04:57  阅读:199  来源: 互联网

标签:文件 samtools BAM read reads 序列 Bam Ref


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
  • 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有