认真的,当我一搜RSeQC时,出来的中文第一条就是这个的时候,我的心漏了一拍。还是非常的激动的。这都是健明大神的积累,造福了我们一批一批的小菜鸟。感谢。
作者为什么要开发RSeQC?
动机:RNA-seq已经被广泛地用于转录组研究。质量控制(Quality Control,QC)对于保证RNA-seq高质量且适合随后分析是至关重要的。然而,由于RNA-seq数据的巨大尺寸和多种性质,QC是一项耗时且复杂的任务。因此,特别需要一种方便且全面的QC工具以评估RNA-seq质量。结果:我们开发了RSeQC程序包以全面地评估RNA-seq实验的不同方面,例如序列质量、GC偏倚、PCR偏倚、核苷酸组成偏倚、序列深度、链特异性、覆盖均一性,和基因组结构上的片段分布。RSeQC使用能够用大部分RNA-seq比对工具生成的SAM和BAM文件,以及广泛用于基因模型的BED文件作为输入。RSeQC中的大部分模块利用了R脚本进行可视化,并且它们在处理包含数以亿计比对的大型BAM/SAM文件中是特别高效的。可用性和实现:RSeQC是用Python和C编写的。源码和一个全面的用户手册可以在http://code.google.com/p/rseqc/免费获得。
一:下载安装该软件
wget http://sourceforge.net/projects/rseqc/files/RSeQC-2.5.tar.gz/download
tar zxvf RSeQC.tar.gz
cd RSeQC-2.5/
进入目录查看文件内容如下,看到了setup.py,所以知道这个是一个python的包,需要安装到python的库下面。
我没有root权限,所以需要把这个软件安装到自己的目录下,同时会新建一个python的库路径,需要添加到python的库搜索路径
python setup.py install --root=/home/jmzeng/my-bin
安装完毕后,这个python模块在/home/jmzeng/my-bin/usr/local/lib/python2.7/dist-packages/里面
安装完毕后,/home/jmzeng/my-bin/usr/local/bin 这个目录下面会多一堆的程序,就是我们这个 RSeQC软件包的东西啦
但是这个目录并不在我的PATH里面,需要添加
而且这样安装后面会报错,因为很多模块都不在路径里面~!~~~~当然把我自己的安装的python库添加到系统python的环境变量里面
所以python setup.py install --user 这样才是正确的
安装好后,所有这个包带有的python程序都在/home/jmzeng/.local/bin这个目录里面~!!!
二:准备数据
准备数据
该软件有提供一些测试数据,但是存放在drive.google.com里面,国内访问不是很容易,我们就根据要求自己创造一些吧,BED文件个SAM文件还有参考基因组的染色体长度信息文件和原始的reads的fasta格式文件。我这里是取的一个RNA-seq的测序fastq格式文件用tophat比对后的bam文件来做示范。
三:运行命令 && 四:输出文件解读
因为这是一个**python软件套装,里面至少含有十几个工具,我这里简单介绍几个常用的,其余的待有需要再去看看。**
1)bam_stat.py
比对片段检查(QC 失败、unique mapped、splice mapped、mapped 到合适对的 reads 等)
**例子:
bam_stat.py -i Pairend_nonStrandSpecific_36mer_Human_hg19.bam**
我的命令
python /home/jmzeng/my-bin/usr/local/bin/bam_stat.py -i accepted_hits.bam这是一个很变态的bug,ImportError: No module named qcmodule。是python这个垃圾语言造成的,因为我没有服务器root权限,所以我的python包只能安装到自己的目录,但是我调用了服务器的python命令,它却不识别我的python库,变态!
查了一些资料,原来需要把我自己的安装的python库添加到系统python的环境变量里面
export PYTHONPATH=/home/jmzeng/my-bin/usr/local/lib/python2.7/dist-packages/:$PYTHONPATH然后几分钟就出结果啦
因为我这个是单端测序,所以没有reads1和2的区别。
2)clipping_profile.py
This program is used to estimate clipping profile of RNA-seq reads from BAM or SAM file.Note that to use this funciton, CIGAR strings within SAM/BAM file should have ‘S’ operation(This means your reads aligner should support clipped mapping).
例子 : clipping_profile.py -i Pairend_StrandSpecific_51mer_Human_hg19.bam -o output
我的命令:
python /home/jmzeng/my-bin/usr/local/bin/clipping_profile.py -i accepted_hits.bam -o output**然后就等了几分钟
Load BAM file ... Done
No clipped reads found!
程序报错很奇怪,输出了一个xls的表格,但是里面只有表头没有数据,所以我认为应该是数据出了什么问题吧
理论上是应该要出一个如下所示的图的
3**)mismatch_profile.py**
Calculate the distributions of the mismatches across reads. Note that the “MD” tag must exist in the BAM file.
理论上也是应该出一个图
4**)insertion_profile.py**
Calculate the distributions of (short) insertions across reads.
5**)read_quality.py**
这个就是fastqc的质量检测啦,**这个看起来挺有用的,我也画了一个图**
python /home/jmzeng/my-bin/usr/local/bin/read_quality.py -i accepted_hits.bam -o output输出两个pdf图片文件
6)bam2wig.py
这是一个格式转换工具,把BAM文件转为wiggle格式的文件
还可以把我们转好的wiggle格式文件通过UCSC wigToBigWig** 这个工具转为[bigwig](http://www.bio-info-trainee.com/113.html#format6.1) format **
为了使用这个脚本,我们的bam文件必须是排序好了的,并且还有索引。# sort and index BAM files
samtools sort -m 1000000000 input.bam input.sorted.bam
samtools index input.sorted.bam
7)bam2fq.py
也是一个格式转换工具,可以把bam转为fastq格式,没啥子意思,一大堆的软件都附带这个工具。
这里面的程序太多了,每个都可以出图,懒得一个个试用并且翻译了,自己看吧http://rseqc.sourceforge.net