bam文件读取_科学网—Pacbio Sequel两种bam文件解析 - 卢锐的博文
pacbio目前有两种主流的测序平台,RSII和Sequel,后者是前者的升级版。
pacbio sequel下机是bam格式的reads文件,它和reads比对到参考基因组上生成的bam文件,内容有差异,但格式一致。
1. pacbio sequel下机的bam格式reads文件header部分如下:
@HD VN:1.5 SO:unknownpb:3.0.3
@RG ID:ceba59d4 PL:PACBIO DS:READTYPE=SUBREAD;Ipd:CodecV1=ip;PulseWidth:CodecV1=pw;BINDINGKIT=100-862-200;SEQUENCINGKIT=100-861-800;BASECALLERVERSION=5.0.0.6236;FRAMERATEHZ=80.000000 PU:m54191_170909_212150 PM:SEQUEL
@PG ID:baz2bam PN:baz2bam VN:5.0.0.6236 CL:/opt/pacbio/ppa-5.0.0/bin/baz2bam/data/pa/m54191_170909_212150.baz -o /data/pa/m54191_170909_212150 --metadata/data/pa/.m54191_170909_212150.metadata.xml -j 12 -b 12 --progress --silent--minSubLength 50 --minSnr 3.750000 --adapters /data/pa/m54191_170909_212150.adapters.fasta
@PG ID:bazFormat PN:bazformat VN:1.3.0
@PG ID:bazwriter PN:bazwriter VN:5.0.0.6236
# @RG中的DS是describe的意思。BINDINGKIT 和SEQUENCINGKIT 在Pacbio RSII和Pacbio Sequel中不同。PU即platform unit, 是Pacbio moive名,一次moive会用到多个零模波导孔(ZMW),每个ZMW通常会有多条Subreads,多条subreads对应1个CCS(如果测序片段短于ZMW一次能测到的长读,则会产生哑铃型结构,循环来测这一段)。
2. body部分如下:
第一列Qname如下:
m54191_170909_212150/4391389/0_5019
#命名规则如下:
{movieName}/{holeNumber}/{qStart}_{qEnd}
注意:
1.这种未比对的bam必须是按第一列排序的。所有来自同一个ZMW hole的subreads放在一起,且按qStart排序,每个ZMW再按数字排序。特别是从subreads bam文件中随机取subreads分析时一定要用samtools sort -n处理一下
2. qStart是从0开始的,qEnd – qStart =第10列的碱基序列长度。
第二列是flag值:
如果是Subreads则全部为4表示read unmapped。在三代长reads比对结果中会出现两种:0或16
第三列是ref值:
如果是Subreads则全部为*
第四列是reads在参考序列上的位置
如果是Subreads则全部为0
第五列比对质量值
如果是Subreads则全部为255。
Mapping qulity的计算方法是:Q=-10log10p,Q是一个非负值,p是这个序列来自这个位点的估计值。
假如说一条序列在某个参考序列上找到了两个位点,但是其中一个位点的Q明显大于另一个位点的Q值,这条序列来源于前一个位点的可能性就比较大。Q值的差距越大,这独特性越高[摘自http://www.bbioo.com/lifesciences/40-113305-1.html]。
第六列是CIGAR字符串
如果是Subreads则全部为*。如果是三代reads比对的结果与二代不同,不再用M字符(在二代的bam中它可以容许错配),三代中采用更为精确的X(它表示与ref不同)和=(它表示与ref相同),如果CIGAR中检测到M字符Pacbio software将会中止运行。D表示deletion,I表示insertion。整个CIGAR字符串首尾的H和S表示硬切和软切(soft-clippedbase)
第七列是mate序列比对到的参考序列的名称
因为三代没有PE,Subreads bam和aligned bam中全部为*
第八列是mate序列比对到参考序列上的位置
同第七列,Subreads bam和aligned bam全部为0
第九列为估计出的插入片段长度,当mate序列位于本序列上游时该值为负值。
同第七列,Subreads bam和aligned bam全部为0
第十列为read序列
第十一列是ASCII码格式的序列质量值
如果是Subreads则每个碱基质量值为!
以下各列格式如下
列名简写(两个小写字母):数据类型:数据值
#数据类型:A:可打印字符,Z:可打印字符串,H: Hex字符,f:单精度浮点数[http://blog.csdn.net/arnoyshell/article/details/9383555]
第十二列是cx列,表示subread local context
LocalContextFlags对应情况如下:
ADAPTER_BEFORE = 1,
ADAPTER_AFTER = 2,
BARCODE_BEFORE = 4,
BARCODE_AFTER = 8,
FORWARD_PASS = 16,
REVERSE_PASS = 32
因为pacbio sequel下机数据已经切除了两边接头,可以不用关心这列
第十三列为ip列使用的是IPD (raw frames or codec V1)转化过的质量值。IPD的转化如下:FramesEncoding
0, 1, ... 630, 1, ... 63
64, 66, ... 19064, 65, ... 127
192, 196, ... 444128, 129, ... 191
448, 456, ... 952192, 193, ... 255
即第一个0-63直接编码,63-2*63每两个值合一,3*63-4*63每三个值合一[http://pacbiofileformats.readthedocs.io/en/3.0/BAM.html]
第十四列为np列表示NumPasses
第十五列为pw列表示PulseWidth
第十六列为qe列,表示query end
第十七列为qs列,表示query start
第十八列为rq列,用[0-1]编码的期望精确度
第十九列为sn列,4个float数依次表示ACGT平均信噪比
第二十列为zm列,表示零模波导孔号
第二十一列为ReadGroup列
另外可选的有
AS:i?匹配的得分
XS:i?第二好的匹配的得分
YS:i? mate序列匹配的得分
XN:i?在参考序列上模糊碱基的个数
XM:i?错配的个数
XO:i? gap open的个数
XG:i? gap延伸的个数
NM:i?经过编辑的序列,read string转换成reference string需要的最少核苷酸:插入/缺失/替换
YF:i?说明为什么这个序列被过滤的字符串
MD:Z?代表序列和参考序列错配的字符串
附加参考材料:
[2] http://pacbiofileformats.readthedocs.io/en/3.0/BAM.html
[3] https://github.com/PacificBiosciences/PacBioFileFormats/blob/3.0/BAM.rst
[4] http://albiorix.bioenv.gu.se:8081/smrtanalysis/doc/bioinformatics-tools/pbsamtools/doc/index.html
转载本文请联系原作者获取授权,同时请注明本文来自卢锐科学网博客。
链接地址:http://blog.sciencenet.cn/blog-2970729-1086176.html
上一篇:Speedseq的安装和使用
下一篇:比对算法的原理及代码实现
bam文件读取_科学网—Pacbio Sequel两种bam文件解析 - 卢锐的博文相关推荐
- 基于python的计算基因组_科学网—python3 计算 基因组测序结果文件 各碱基数目(个人练习) - 靳泽星的博文...
基因组测学回来的结果后,从assembly(组装)里找到序列文件,格式可能是:.fasta..fastq..seq.和.contig.fastq要转化为fasta,转化方法网上一大把哈.我的基因组序列 ...
- cfdpost导出图片_科学网—去除 cfd post 输出eps文件中的莫名其妙的点 - 姚程的博文...
用cfd post 输出eps格式图片时, 会莫名其妙地出现一些点, 比如,原本要输出一条曲线,但是多了下面这个点. 怎么办? 辛亏eps文件可以编辑!!! 先保留上面的那条线,输出test1.eps ...
- endnote文件enl突然没了_科学网—实际操作中的Endnote库文件损坏修复方法 - 尹卓忻的博文...
Endnote是保存文件的神器,将文献的详细信息输入标签之后,插入文献只用点一下.不过就算是神器也有掉链子的时候,有时内力不够,刚打开就跳出以下界面: 按对话框的信息,问题是可以通过重启恢复 , ...
- cie1931 python绘制_科学网—gnuplot与CIE1931 XYZ三刺激值曲线 - 范学良的博文
1.直接生成PNG文件 gunplot script: gnuplot> set term pngcairo Terminal type set to 'pngcairo' Options ar ...
- cie1931 python绘制_科学网-gnuplot与CIE1931 XYZ三刺激值曲线-范学良的博文
1.直接生成PNG文件 gunplot script: gnuplot> set term pngcairo Terminal type set to 'pngcairo' Options ar ...
- matlab2014的m文件画波形,科学网—用MATLAB软件绘制驻波的波形图 - 李金磊的博文...
已知驻波的运动学方程为 y=2Acos(2πx/λ)cos(ωt) 相应的MATLAB程序为 syms lambda omega; y=2*A.*cos(2*pi*x./lambda).*cos(om ...
- mysql 删除数据库的所有表_科学网—mysql删除数据库中的所有表 - 高雪峰的博文...
在工作中使用的一些数据库基本操作,不是经常使用,容易忘记,放到这里做个笔记 -- 从结果集中拷贝--------------------------------------- ------------ ...
- 两组回归系数差异检验_科学网-如何检验两组回归系数之间的差异显著性?-李国强的博文...
在 Li Jingwen 的这篇文章中,图3中显示了两个生育时期的线性回归模型.随后作者比较了两个生育时期线性回归模型的回归系数(斜率)和截距,作者发现两个生育时期回归系 数(斜率)差异不显著,而截距 ...
- 玻尔兹曼分布涨落_科学网—高分子统计物理漫谈-涨落耗散定理-2 - 苗兵的博文...
涨落耗散定理是平衡态统计物理的一个极为重要的结果,该定理将一个统计力学体系的涨落关联与其对外界刺激的响应用一个干净的等式联系了起来.有了该定理,测量响应就可以获得平衡态体系的关联性质,反之亦然.如果取 ...
最新文章
- python 提交form-data之坑
- java字符串转化为数组_Go 语言字符串和数组转化 | 臭大佬
- linux系统中 库分为静态库和,你知道linux 静态库和共享库?
- 如何做到每天写代码?
- 利用计算机测地震是计算机的什么,计算机在气象预报、地震探测、导弹卫星轨迹等方面的应用都属于( )...
- 网易云免费OSS服务用做Markdown图床或博客图片外链
- 从60%的BI和数据仓库项目失败,看出从业者那些不堪的乱象
- linux jar运行监控 mo,linux系统监控利器--monit
- 队列的基础知识及实现方法
- html转换成avi,HTML_视频转换大师WinMPG Video Convert 6.63,支持格式丰富,可快速完成AVI(RM - phpStudy...
- 莫烦nlp-GPT 单向语言模型
- 正方教务系统对服务器的要求,正方软件教务系统功能介绍.docx
- 【考研英语语法】一般将来时练习题
- 拼多多百亿补贴商品详情数据抓取
- 推荐几个高质量图片网站,再也不怕没图装X了 1
- 教你快速将多个TXT文档合并成一个多方法 手工方法无需软件
- qt 获取当前程序运行路径_Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法...
- 我的世界服务器地图文件丢失,我的世界地图被毁了或找不到了 ? 大神手把手教你奇迹恢复...
- python 实现录音pcm格式功能
- cs和bs架构的区别(bs和cs架构的区别和优缺点)
热门文章
- 自己做量化交易软件(9通通量化框架的雏形建立
- PHPWAMP站点管理的“域名模式”和“端口模式”详解、均支持自定义
- 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
- 全国青少年编程等级考试scratch二级真题2021年9月(含题库答题软件账号)
- google机器学习速成教程学习笔记
- android学生成绩查询代码,android学生成绩查询系统.pdf
- 华夏ERP没有找到新增功能
- C语言系列(11)——数组(02)
- 猴子吃桃问题(三种方法解决)
- 测试-APP端常见测试功能点