Biostar_handbook||charpter 14. SAM格式及SAMTOOLS操作

Charpter_14 Sequence Alignment Maps(SAM)

SAM文件是由Tab(\t)分割,面向‘行’的文本格式文件,主要包括两部分:

  • Header部分,包括@HD,@SQ,@PG等开头的基本信息。
  • Alignment部分,包括reads比对的所有信息。

sam是最常见的存放mapping数据的格式,各种组学分析只要存在mapping的步骤都会产生SAM格式文件用于后续进一步的下游分析。

比对+samtools sort一个快速示例

REF=ebola.fa
R1=SRR1972739_1.fq
R2=SRR1972739_2.fq

### bwa mem $REF $R1 $R2 > bwa.sam

### bowtie 比对输出直接sort排序产生bam文件
bowtie2 -x $REF -1 $R1 -2 $R2 |samtools sort -@ 10 >bowtie2_output.sorted.bam

SAM header

header部分由@起始,包括有:

  • HD:表示排序情况,unsorted或者已经按coordinate/names排过序
  • SQ:比对的参考序列的染色体信息,姓名/多长。
  • PG:运行命令的具体参数信息。
  • RG:每个read所在的group的信息。通常包含测序平台/测序文库/样本的ID等信息(header里最为重要的一个信息).ID(Read group identifier), LB(library), SM(Sample)

@RG信息:如果原来样本的测序深度比较深,一般会按照不同的lane分开比对,最后再合并到一起。那么这个时候会有多个RG,里面记录了不同的lane,甚至测序文库的信息,唯一不变的是SM的sample信息,这样合并后才能正确处理。

比对信息(Alignment部分)

image

image

Column 1. QNAME(query name):fastq文件里的read ID

Column 2. FLAG信息

  • 记录了许多有关read比对情况的信息,转换成二进制码后发现其包括12位,十进制取值范围就是0~2048,2的12次方。
FLAG 二进制 具体含义
1 000000000001 代表是PE双端测序,0代表SE单端测序
2 000000000010 代表read和参考序列完全匹配。如果是PE测序还代表没有插入确实
4 000000000100 该read未比对到参考序列上
8 000000001000 PE测序的另一端R2未比对到参考序列上
16 000000010000 反向互补后比对到参考序列上,read比对到了反向互补链上
32 000000100000 PE测序的另一条reads(R2)比对到了反向互补链上
64 000001000000 PE测序read1
128 000010000000 PE 测序的read2
256 000100000000 代表二次比对,该read在基因组上比对了多个位置,只有一个是首要比对位置,其它都是次要的,该位置是次要的,通常要过滤掉,但有些场景中是有用的信息
512 001000000000 代表此序列低于测序平台过滤阈值,QC失败无法过滤(不常用)
1024 010000000000 PCR重复序列或光学重复,可被Picard标记过滤掉(来自测序文库构建过程)
2048 100000000000 该read可能存在嵌合,这个比对的部分只是来自其中的一部分序列(supplement alignment)
  • 对于未知的FLAG,可以samtools flags 141
  • 对于FLAG=77时,需要转换为二进制序列:77=000001001101=1+4+8+64即表示:PE read,比对不上参考序列,另一端也未比对上参考序列,它是PE测序read1
  • 常见的FLAGS:
    • 其中一条reads没有map上: 73, 133, 89 121, 165, 181, 101, 117, 153, 185, 59, 137
    • 两条reads都未map上:77,141
    • 比对上了,方向也对,也在插入大小(insert size)内: 99, 147, 83, 163
    • 比对上了,也在插入大小(insert size)内, 但是反向不对:67, 131, 115, 179
    • 单一配对,就是插入大小(insert size)不对: 81, 161, 97, 145, 65, 129, 113, 177

Column 3/4. RNAME(reference name)/POS(position)

  • RNAME:表示参考序列的名字
  • POS:比对上的坐标位置,注意不管是正向还是反向,只记录比对上的最左边的坐标位置,坐标是以1为起始

Column 5/6. MAPQ(mapping quality)和CIGAR(compact idiosyncratic gapped alignment representation)

  • MAPQ: 比对质量值,比对到参考序列上此位置的可靠程度,转化为-10logP。40/10=4 ——> 10^-4=1/10000,即比错的概率小于0.0001。
  • CIGAR:reads比对到参考序列的具体细节情况:
    • M:(完全匹配或SNP单碱基错配)
    • I:序列插入,包含潜在的insertion变异
    • D:序列删除,包含潜在的deletion变异
    • S:软跳过,跳过reads中部分序列,不改变read长度
    • H:硬跳过,切到reads中部分序列
    • N:跳过参考序列(常见于RNA-SEQ)

Column 7/8/9 RNEXT, PNEXT, TLEN(仅PE的数据才有)

  • RNEXT:PE测序的配对read所比对到的染色体,=代表两个比对到相同的染色体
  • PNEXT:配对的read所比对到的位置。
  • TLEN: 插入片段的长度,可根据POS和CIGAR信息得出

Column 10/11 SEQ 和 QUAL:query的序列以及fastq序列所对应的质量值

Column 12 and on

此列开始,不同测比对软件产出的数据会产生一定的差异。基本格式为TAG:TYPE:VALUE


SAM/BAM file Manipulation

  • Select or Filter data from BAM files
### 查看特定的FLAG值
samtools flags 4 ### 0x4 unmap

### 查看所有含有4的比对, -c 计数
samtools view -f 4 bwa.bam
samtools view -f 4 -c bwa.bam

### 过滤所有含有4的比对,反向匹配
samtools view -F 4 bwa.bam

### -f -F参数的输出到新文件
samtools view -b -F 4 bwa.bam > bwa.aligned.bam
samtools index bwa.aligned.bam

  • BAMw文件概况统计
samtools flagstat bwa.bam
samtools idxstats bwa.bam
bamtools stats -in bwa.bam

### 获取最佳比对的序列
samtools flags 2308
# unmap, secondary, supplement

### 此为proper_pair的最佳结果,其对于多次比对的reads只保留一次。
samtools view -f 2 -F 2308 bwa.bam

  • 对于flags信息的运用
### 反链比对上的
samtools view -f 16 -c bwa.bam
# 6347

### 反链比对上的,且是非 未必对上的
samtools view -f 16 -F 4 -c bwa.bam

### 比对到正链上,且是非 未比对上的
samtools view -c -F 20 bwa.bam



  • 过滤低质量比对, 5列MAPQ
    • bwa比对的MAPQ值0代表未多次比对
    • q参数表示保留比对质量值大于等于此q值
samtools view -c -q 1 bwa.bam

###比对质量大于1,且比对到正链上
samtools view -q 1 -F 4 -F 16 -c bwa.bam

  • Secondary alignment 二次比对:序列是多次比对,其中一个最好的比对为PRIMARY align,其余的都是二次比对,FLAG值256
samtools flags SECONDARY
# 0x100 256

samtools view -c -F 4 -f 256 bwa.bam
# 0
  • 获得PRIMARY or Representative 比对
    • only have one primary alignment and other secondary and supplemental alignments.
samtools flags SUPPLEMENT,SECONDARY
# 0x900 2304

samtools view -c -F 4 -F 2304 bwa.bam

处理分析 SAM files

  • 添加@RG分组信息
TAG='@RG\tID:xyz\tSM:Ebola\tLB:patient_100'

## 在比对过程中添加@RG信息tags
bwa mem -R $TAG $REF $R1 $R2 |samtools sort >bwa.bam
samtools index bwa.bam

### 改变分组@RG信息
NEWTAG='@RG\tID:abc\tSM:Ebola\tLB:patient_101'
samtools addreplacerg -m overwrite_all -r $NEWTAG bwa.bam -O BAM > newbam.bam


  • 合并BAM文件
## bwa 比对信息
BWA_TAG='@RG\tID:bwa\tSM:bwa\tLB:bwa'
samtools addreplacerg -m overwrite_all -r $BWA_TAG bwa.bam -O BAM > newbwa.bam

## bowtie2比对信息
BOWTIE_TAG='@RG\tID:bowtie\tSM:bowtie\tLB:bowtie'
samtools addreplacerg -m overwrite_all -r $BOWTIE_TAG bowtie.bam -O BAM > newbowtie.bam

## 合并成all_merge.bam
samtools merge all_merge.bam newbwa.bam newbowtie.bam 

### 去合并之后分组信息为bwa的bam,bowtie.  **参数-l **
samtools view -c -l bwa all_merge.bam
samtools view -c -l bowtie all_merge.bam

  • 指定比对到ref上的某一位置上查看信息
samtools view in.bam chr22:16050103-16050110

  • 快速查看比对情况
    • bam文件比较大,可以截取感兴趣的区段成小的bam文件再查看
    • 直接samtools tview --reference hg38.fa in.bam
###截成小的bam文件
samtools view -h bwa.bam AF086833.2:1000-1100 |samtools view -Sb - >small.bam

### 直接tview 查看
samtools tview --reference ref/ebola.fa bwa.bam

参考文章:

  1. Biostar_handbook
  2. 解螺旋的矿工——从零开始完整学习全基因组测序数据分析:第5节 理解并操作BAM文件
  3. 徐州更——SAM格式及其相关工具
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容