我是靠谱客的博主 机智手套,最近开发中收集的这篇文章主要介绍SAM得到完美匹配(perfect match),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

主要针对bwa生成的sam文件中,如何找到完美匹配的比对结果。

完美匹配(perfect match)是指:一条序列能够在不允许编辑距离(edit distance),碱基错配(mismatch), GAP opens/extentions时能够比对到参考基因组上。

BWA比对的结果最终为sam(Sequence Alignment/Map)格式,内容如下:

ColFieldDescription
1QNAMEQuery (pair) NAME
2FLAGbitwise FLAG
3RNAMEReference sequence NAME
4POS1-based leftmost POSition/coordinate of clipped sequence
5MAPQMAPping Quality (Phred-scaled)
6CIAGRextended CIGAR string
7MRNMMate Reference sequence NaMe (‘=’ if same as RNAME)
8MPOS1-based Mate POSistion
9ISIZEInferred insert SIZE
10SEQquery SEQuence on the same strand as the reference
11QUALquery QUALity (ASCII-33 gives the Phred base quality)
12OPTvariable OPTional fields in the format TAG:VTYPE:VALUE

CIGAR值能够指示部分比对情况,但是但从CIGAR值来判断比对详细情况是不够的,所以,比如一条序列长度为36bp,比对到基因组上,CIGAR值为“36M”,单凭这个值是不能判断是否为完美匹配的。

我们需要根据bwa结果中的OPT列,即tag值来进行进一步的判断。bwa中提供的tag值如下:

TagMeaning
NMEdit distance
MDMismatching positions/bases
ASAlignment score
BCBarcode sequence
X0Number of best hits
X1Number of suboptimal hits found by BWA
XNNumber of ambiguous bases in the referenece
XMNumber of mismatches in the alignment
XONumber of gap opens
XGNumber of gap extentions
XTType: Unique/Repeat/N/Mate-sw
XAAlternative hits; format: (chr,pos,CIGAR,NM;)*
XSSuboptimal alignment score
XFSupport from forward/reverse alignment
XENumber of supporting seeds

在使用tag信息挑选perfect match时,设置NM(编辑距离)为0,XM(错配个数)为0,X0(最佳匹配个数)为1。之所以设置最佳匹配数,是因为一条序列有可能有多个完美匹配,这种序列在后续分析中不会用到,这个参数是可选的。

使用Perl语言设置的过滤条件如下:

next if $line !~ /NM:i:0/;
next if $line !~ /XM:i:0/;
next if $line !~ /X0:i:1s+/;

(完)

最后

以上就是机智手套为你收集整理的SAM得到完美匹配(perfect match)的全部内容,希望文章能够帮你解决SAM得到完美匹配(perfect match)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部