SAM/BAM相关的进阶知识
1. samtools和picard的排序问题
samtools和picard都有对SAM/BAM文件进行排序的功能,一般都是基于坐标排序(还提供了-n选项来设定用reads名进行排序),先是对chromosome或contig进行排序,再在chromosome/contig内部基于start site从小到大排序,对start site排序很好理解,可是对chromosome/contig排序的时候是基于什么标准呢?
基于你提供的ref.fa文件中的chromosome/contig的顺序。当你使用比对工具将fastq文件中的reads比对上参考基因组后会生成SAM文件,SAM文件包含头信息,其中有以@SQ开头的头信息记录,reference中有多少条chromosome/contig就会有多少条这样的记录,而且它们的顺序与ref.fa是一致的。
当使用samtools或picard对SAM/BAM文件进行排序时,这些工具就会读取头信息,按照头信息指定的顺序来排chromosome/contig。所以进行排序时需要提供包含头信息的SAM/BAM文件。
@HD:表示参考基因组的排列情况
@SQ:参考序列说明;LN:长度,这里的长度与ucsc.hg19.fasta.fai中的长度是一样的。
@PG:使用的比对程序说明,可以看到使用的参考基因组:hg19还是hg38
@RG:比对上的序列(read)说明
第二部分:联配必要信息,每一行有12行,通过Tab键分割。
第一列:rname(Qname)即为fq对应的read ID。这一列代表read的名字(比对片段的编号)
第二列:FLAG 比对信息位。
想要读懂他的一个关键点是将flag值转换为一串由0,1组成的二进制码,这一串二进制数中的每一个
位(bit)都代表一个特定的信息,他一共有12位,所以一般会用一个16位的整数来代表,这个整数的
值就是由12个0或1组合计算得出的。因此他的数值范围在0~2^12(2048)
举一个例子,FLAG=77=000001001101(左边补5个0)=1+4+8+64
FLAG包含信息:PE reads、read比对不上参考序列,它的配对read也比对不上,它是read1
第三、四列:position 分别是RNAME(参考序列染色体名)和POS(比对位置,从对应染色体的第1位开始往后计算)
第五列:MAPQ(mapping quality) 比对质量值
这个值告诉我们这个read比对到参考序列上这个位置的可靠程度。相当于Q
第六列:CIGAR 比对信息(雪茄字符串)
它用数字和几个字符的组合形式记录了read比对到参考序列上的细节信息,读起来比FLAG直观友好很多,只是
记录的信息不同。例子:33S117M,意思是在比对的时候这条read开头的33bp被跳过了(s),紧接其后的117bp
则比对上参考序列(M)。这里的S意思都是soft clip。
CIGAR的标记字符有:MIDNSHP=XB
第七、八、九列:Mate information
RNEXT:配对read所比对到的染色体(pe才有)
=号代表比对到了相同的染色体上。
PNEXT:配对read所比对到的位置(pe才有)
TLEN:插入片段的长度:如果所有段都映射到相同的参考序列,则TLEN的绝对值等于模板的映射末端与模板的映射起始点之间的距离,包括端值(即end-start + 1)。当多段模板的第一个或最后一个段未映射时,或者当两个映射到不同的参考序列时,它将设置为0。
第十、十一列:
SEQ:read序列
QUAL:read质量值
这两列相当于fastq的二四行
第十二列:metadata 元信息
SAM/BAM相关的进阶知识相关推荐
- Edit Distance编辑距离(NM tag)- sam/bam格式解读进阶
sam格式很精炼,几乎包含了比对的所有信息,我们平常用到的信息很少,但特殊情况下,我们会用到一些较为生僻的信息,关于这些信息sam官方文档的介绍比较精简,直接看估计很难看懂. 今天要介绍的是如何通过b ...
- linux bam文件格式,pysam - 多种格式基因组数据(sam/bam/vcf/bcf/cram/…)读写与处理模块(python)...
在开发基因组相关流程或工具时,经常需要读取.处理和创建bam.vcf.bcf文件.目前已经有一些主流的处理此类格式文件的工具,如samtools.picard.vcftools.bcftools,但此 ...
- sam格式的结构和意义_BAM/SAM文件格式的一些小知识
BAM/SAM文件的一些小知识 前言 如果不是在陈老师这读博,然后开始折腾BAM/SAM文件,我估计这辈子都不会了解到这么多东西吧 SAM/BAM简介 Sequence Alignment Map ( ...
- pysam - 多种格式基因组数据(sam/bam/vcf/bcf/cram/…)读写与处理模块(python)--转载...
pysam 模块介绍!!!! http://pysam.readthedocs.io/en/latest/index.html 在开发基因组相关流程或工具时,经常需要读取.处理和创建bam.vcf.b ...
- Android进阶知识:绘制流程(上)
1.前言 之前写过一篇Android进阶知识:事件分发与滑动冲突,主要研究的是关于Android中View事件分发与响应的流程.关于View除了事件传递流程还有一个很重要的就是View的绘制流程.一个 ...
- 认识Panda3D引擎bam相关命令
看一下Panda自带命令,其中有bam相关的,来了解一下: 输入一个命令看一下,提示需要输入一个bam文件名: 查一下,查到一个介绍一种bam文件的资料如下, SAM (Sequence Alignm ...
- MariaDB/Mysql数据库进阶知识
这一篇章主要说一下关于MariaDB/Mysql的一些进阶知识,希望可以加深自己的理解 MariaDB的特性 插件式存储引擎:也称为"表类型",存储管理器有多种实现版本,功能和特性 ...
- JavaScript 进阶知识 - Ajax篇
Ajax 前言 前面我们已经学习了js基础知识和一些简单的特效,基本上已经能够写出一个带有特效的静态页面了,为什么还要称之为静态页面呢?因为网页里的数据都是写死的,真正的工作中,我们是要通过Ajax技 ...
- NGS数据分析实践:03. 涉及的常用数据格式[2] - sam/bam格式
NGS数据分析实践:03. 涉及的常用数据格式[2] - sam/bam格式 2. sam和bam格式 系列文章: 二代测序方法:DNA测序之靶向重测序 NGS数据分析实践:00. 变异识别的基本流程 ...
最新文章
- ORA-01031:insufficient privileges问题解决
- openstack创建实例报错Exceeded maximum number of retries
- AI:人工智能概念之机器学习中常用算法的思维导图集合(非常经典、建议收藏)之详细攻略
- system 函数被废除的替代方法
- CRM_PRICING_MERGE_FROM_BUPA_OW
- 深度学习之卷积神经网络(10)CIFAR10与VGG13实战
- 最全的正则表达式大全
- html拖放数据库字段,HTML5 拖放(Drag 和 Drop)
- mit数据集_DriveSeg:动态驾驶场景分割数据集
- 浪潮业务稳定连续性获Global Data唯一“Leader”评级 蝉联数据中心整体能力“Very Strong”评级
- python读取raw图片文件_python读取raw binary图片并提取统计信息的实例
- 计算机网络之物理层:6、传输介质
- JavaScript逻辑运算符“”和“||”短路原则的应用
- Data Lake Analytics,大数据的ETL神器!
- 在自动驾驶技术上,一向自信满满的马斯克也承认了特斯拉的不足
- 企业微信应用权限签名api记录
- 哈理工OJ 1924 分数表达式(暴力枚举)
- php操作剪贴板内容代码,查看剪贴板内容的方法
- 科目一知识点分类记忆
- 获取Throwable里头的错误信息
热门文章
- [k8s]如何处理dockerfile无expose情况下在k8s里暴漏访问
- 如何在 Mac 中隐藏文件或文件夹?
- php正则表达式后向引用和贪婪模式
- 将数字字符转换成整型数字
- PHPWAMP站点管理的“域名模式”和“端口模式”详解、均支持自定义
- 百度收购快钱?消息人士说不大可能
- Scratch编程初体验-小猫跳舞
- java小时钟实验报告_JAVA实验报告(运用JavaFx实现时钟动画).doc
- 数据库之order by
- 为什么打开edge浏览器,就出来qq导航,hao123页面等等!