【直播】我的基因组 33:用samstat软件对sam文件做统计

在此之前,我不止一次强调过QC的重要性,对全基因组测序等以找variation为主的分析流程来说,不仅仅是对测序数据的QC,还有比对之后的sam/bam文件也需要QC,最后找出的variation文件也需要QC。在我们生信技能树的论坛上面有详细的说明,见:要充分了解你的测序数据--论QC的重要性 (http://www.biotrainee.com/thread-324-1-1.html) 。之前曾耗费了10讲来解析sam格式,就是基于我个人的知识背景来对比对结果进行QC,而事实上,有很多成熟的软件就可以完成全套流程,当然,所谓的全套也只是基于软件作者的知识背景。我这里讲挑出两个读者来信咨询的最多的软件来简单讲解一下吧!

samstat

这个软件对大的bam文件运行经常会报错,就是程序界最出名的segment fault,应该是内存不够。正好,我们把这个大的bam文件根据染色体拆分成了小的bam,可以批量运行一下samstat,对比对文件进行一些统计。我在博客里面写过这个软件的教程,请点击阅读原文查看,或者复制链接(http://www.bio-info-trainee.com/751.html )到浏览器查看SAMStat软件使用说明书。

这是一个C源码程序,所以安装的时候需要./configure,make,make install 三步曲即可,如果没有root权限就指定一个环境变量来编译这个源码,具体参照博客,如果报错自己学会解决!

用法非常简单,因为这个软件做得事情不多,也就是跟我们之前耗费了10讲来解析sam格式的比对文件差不多!

命令如下:

samstat P_jmzeng.final.REF_*bam

默认对每一个输入的bam文件,都是会输出一个网页版的统计QC报告的,上面的命令会把所有染色体的bam文件都输入,但事实上这个软件对某几条染色体还是有限制,可以换成是

ls P_jmzeng.final.REF_*bam |xargs samstat

来运行,避免某些染色体报错,后面的都不能运行了。

但事实上,这个代码仍然会因为某个染色体的bam文件太大而中断,不知道shell里面有没有try这个类似功能的函数。

我简单Google了一下,shell的确没有这个功能,但是有程序猿给出了模拟的解决方案,我测试了一下:

ls P_jmzeng.final.REF_*bam |while read id do { # try samstat $id } || { # catch # save log for exception echo "This bam file is too big : $id " } done

还不错,可以把所有文件该跑出来的结果都跑出来了,结果没什么好解读的,这个软件其实很烂的,我一般都不用了。

samtools stats

而且samtools更新的版本本身就包括了一系列的统计和绘图功能!

现在比较好的就是:

samtools stats test.bam >test.stats

plot-bamstats -p test test.stats

因为我安装samtools的时候把它添加到了环境变量,所以我不需要用全路径来使用该程序,直接调用即可,plot-bamstats就是安装samtools软件时候附带的一个功能。

有时候,觉得生信工程师真心不容易,什么都得学一点什么都得会一点,但是最重要的,是要有解决问题的勇气和感觉。(现在划重点,本讲最重要的不是samstat软件怎么用,因为实在是太烂了这个软件,也不是samtools的stats功能怎么用,虽然出图很漂亮,统计的也很清晰。)

下一讲我们来重点谈谈Qualimap这个软件。

文:Jimmy、阿尔的太阳

图文编辑:吃瓜群众

原文发布于微信公众号 - 生信技能树(biotrainee)

原文发表时间:2016-12-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

520特别版Python实战:教你用微信每天给TA说晚安

导读:今天就是520,不知你是否已经准备好要表白的话语。为了助力你撩妹成功,大数据今天也提前备了点干货——教你用Python每天给妹纸发晚安。

871
来自专栏杨建荣的学习笔记

脚本改进的一点体会(r12笔记第60天)

一直以来我们想要推进内部的自动化系统,但是总是会遇到各种各样具体的问题,有时候我们准备好了,但是总是会有一些因素的干扰,再加上工作时间的安排,有些事情就一...

3329
来自专栏知晓程序

国内最好的小程序商店,是怎样炼成的?

1172
来自专栏华章科技

520特别版Python实战:教你用微信每天给TA说晚安

from __future__ import unicode_literals from threading import Timer from wxpy i...

701
来自专栏*坤的Blog

DingTalk代码库机器人尝试

1985
来自专栏微信音视频小程序

腾讯云独家详解小程序多人视频通话

在微信小程序中搜索 腾讯视频云 可以加载到我们的演示用小程序,其中 多人音视频 功能可用于体验和测试多人音视频通话功能。出于 UI 美观和画面大小的考虑,Dem...

4.5K14
来自专栏安智客

《移动终端安全环境安全评估内容和方法》关键点

不管是GP TEE安全认证,还是泰尔实验室安全认证,还是CC认证,都是按照CC标准规范的评估方法和原则来进行的。 比如泰尔终端实验室制定了一些规范: 《移动终...

17910
来自专栏北京马哥教育

小白用Python | Python scrapy抓取学院新闻报告

? 任务 抓取四川大学公共管理学院官网(http://ggglxy.scu.edu.cn)所有的新闻咨询. 实验流程 1.确定抓取目标. 2.制定抓取规则. ...

2575
来自专栏华章科技

爬虫小工具合集|不会编程也能爬数据

首先教大家一个用Excel爬取数据的方法,这里用的Microsoft Excel 2013版本,下面手把手开始教学~

712
来自专栏WOLFRAM

Mma粉丝疑问【为啥不用个列表写短点呢?】

1684

扫描关注云+社区