查看原文
其他

SAM 文件 flag 研究 (续)

JunJunLab 老俊俊的生信笔记 2022-08-17


你的病,也和我一样,风月难扯,离合不骚

1引言

上一篇文章见 Sam 文件 flag 研究。为什么要写这个续文呢?因为后面我发现了一些比较有意思的东西。在前面那篇文章发表后也有粉丝在群里提出疑问:

后面我下载了一篇 单端测序 的数据分析,貌似发现了其中的原因。

2研究

我用同样的代码去分析,却跑不出上次的结果了,仔细想想脚本的算法和原理应该没有问题,应该是出在其他地方。于是我把这个单端的数据的比对结果同样的把 flag 0flag 16 的 reads 提取处理,转为 bigwig 文件在 igv 中进行可视化,结果就发现了有意思的现象。

基于上篇文章的原理:

  • flag0: 单端测序,且该 reads 与序列相同。
  • flag16: 与参考序列反向互补。
  • flag4: 未比对上的 reads。

上篇文章得出的结论是 flag0 的 reads 属于负链基因上, flag16 的 reads 属于正链基因上面,文中也有 igv 结果验证。


我们再来看看这次单端数据的结果:

这三张图说明的问题是:

flag0 的 reads 属于正链基因上, flag16 的 reads 属于负链基因上面。

这似乎与原理是一样的,也比较合理, 那么我第一篇推文的结论难道是错误的吗?

后来想了一下发现我上篇推文的数据是 双端数据,公司给了 read1read2,因为是 小片段测序, 其实 两端插入片段是完全互补 的,只需要拿其中一端来分析即可。但巧的是我恰好拿的是 read1 的测序数据进行比对的,所以得到了第一篇推文的结果。

由此可知,那么如果我拿 read2 的测序数据进行分析应该就和我后面下载的单端测序数据结果应该是一样的了。

总的来说:

  • 单端测序的比对结果中的 flag0 的 reads 属于正链基因上, flag16 的 reads 属于负链基因上面
  • 双端测序的比对结果,如果拿两端分别进行比对的话,那么比对结果中的 flag 值对应的链也是相反的。

比如 read1 中的 flag0 是对应的负链基因,而 read2 的比对结果的 flag0 则是对应的正链基因, 因为双端测序它们本身序列就是反向互补的,所以结论理应如此。

3结尾

到这里就可以解释上面微信群里同学的疑问了。欢迎大家自己去尝试探索,从而了解其中的原理。




  老俊俊生信交流群 ,QQ,


老俊俊微信:


知识星球:



今天的分享就到这里了,敬请期待下一篇!

最后欢迎大家分享转发,您的点赞是对我的鼓励肯定

如果觉得对您帮助很大,赏杯快乐水喝喝吧!



  





将 UMI 添加到 read 名称里并去除 UMI 序列

FASTX 处理 fasta 和 fastq 文件

如何计算 read 的 covergae

RiboChat 一键分析 Ribo-seq 数据

Julia 处理 bigWig 文件

Julia 笔记之元组

GFF3 处理 GFF 注释文件

Sam 文件 flag 研究

Ribo-seq 质控之 reads 分布特征

Julia 笔记之字典

◀...

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存