搜索
查看: 2236|回复: 2

Edit Distance编辑距离(NM tag)- sam/bam格式解读进阶

[复制链接]

2

主题

8

帖子

498

积分

信息监察员

人见人爱的

Rank: 9Rank: 9Rank: 9

积分
498
发表于 2016-10-19 18:02:04 | 显示全部楼层 |阅读模式
sam格式很精炼,几乎包含了比对的所有信息,我们平常用到的信息很少,但特殊情况下,我们会用到一些较为生僻的信息,关于这些信息sam官方文档的介绍比较精简,直接看估计很难看懂。
今天要介绍的是如何通过bam文件统计比对的indel和mismatch信息

首先要介绍一个非常重要的概念--编辑距离
定义:从字符串a变到字符串b,所需要的最少的操作步骤(插入,删除,更改)为两个字符串之间的编辑距离
这也是sam文档中对NM这个tag的定义。

编辑距离是对两个字符串相似度的度量(参见文章:Edit Distance
举个栗子:两个字符串“eeba”和“abca”的编辑距离是多少?
根据定义,通过三个步骤:1.将e变为a 2.删除e 3.添加c,我们可以将“eeba”变为“abca”

所以,“eeba”和“abca”之间的编辑距离为3

回到序列比对的问题上
下面是常见的二代比对到ref的结果(bwa):
[AppleScript] 纯文本查看 复制代码
D00360:96:H2YLYBCXX:1:2110:18364:84053    353    seq1_len154_cov5    1    1    92S59M8I17M1D6M1D67M    seq30532_len2134_cov76    1    0    AAAAAAAAAAAAAAAAAAAAAAAACCCTGTCTCTAATAAAATACAAACAATTAGCCGGGCATGGTGGCACGCGCCTTTAGTCCCAGCTACTAGGGAGGCTGAGGCAGGGGAATTGTTTGAACCCGGGAGGTGGAGGTTGCAGTGAGCGGAGTTTTTTTCACTGCACTCCAGCCTGGTGACAAATCAAAAATCCATTTCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACAACAAADDDDDHIIIIIIII<EHHII?EHH0001111111<11<DEH1D1<FH1D<<<C<@GEHD</<11<101<1D<<C<E0D11<<1<D?1F1CC1DE110C0D1011100////0DD<1=@1=FGHCDHH<FG<D0<<<EF?CE<00<<0<D//0;<:D/////;///////;8F.;/.8.8......88.9........-8BBGADHIIHD?>D?HH<,>=HHDD,5CHDCDHD><,,,--8----8-8--    NM:i:25    MD:Z:16A21C16C0A3T15^A6^G1G0T0G3C2T0G1C41A4A2A3    AS:i:49    XS:i:42    SA:Z:seq13646_len513_cov63,125,-,103S125M21S,1,11;    RG:Z:chr22

这是ref序列
[AppleScript] 纯文本查看 复制代码
>seq1_len154_cov5
GGGAGGCTGAGGCAGGAGAATTGTTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCAAGATTGCACTCCAGCCTGGATGACAAGAGTGAAACTCTGTCTCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

cigar字段包含了序列比对的简化信息,M(匹配比对,包含match和mismatch),=(纯match),X(纯mismatch),I(插入),D(删除),还有N、P和S、H。(注:目前只在blasr比对结果中见过=和X)
根据cigar字段可以统计indel信息,但是无法统计mismatch。
这个时候就可以用到NM tag了,mismatch = NM – I - D = 25 – 8 – 1 – 1 = 15
有兴趣的可以对着cigar数一遍,下面是我无聊数着的结果,也是15个



使用python的pysam模块可以很容易的提取出每个比对结果的NM信息
参见之前的帖子:pysam - 多种数据格式读写与处理模块(python)




上一篇:常用数据库ID表示方式
下一篇:数据质量检测工具
回复

使用道具 举报

8

主题

55

帖子

336

积分

版主

Rank: 7Rank: 7Rank: 7

积分
336
发表于 2016-11-30 10:53:45 | 显示全部楼层
有些图显示不出来?

我以前一直把NM直接当成mismatch的,后面有一次找了一个有Indel的reads去看才发现有问题,
赶紧改了过来~
我的微博:dulunar
回复 支持 反对

使用道具 举报

365

主题

512

帖子

1713

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1713
发表于 2016-12-8 11:37:01 | 显示全部楼层
sam文件里面的坑还有很多,一般人都不知道,不只是CIGAR和FLAG,还有各种自定义的tag
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2019-6-19 23:50 , Processed in 0.029294 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.