本片笔记主要记录Hisat2的用法,以及比较四个常用的比对参考基因组的软件。
1. 建立参考基因组索引
在进行clean data与参考基因组比对之前,我们需要先建立参考基因组索引。进入下载好参考基因组的文件目录下,运行命令:
$ hisat2-build Arabidopsis_thaliana.dna.genome.fa genome
-p # 以几个线程运行,与电脑核数或者分配虚拟机的核数有关
genome # 命名的索引文件名,可以改成自己能找到的
就可以在当前目录建立参考基因组索引文件,hisat2固定会生成8个以.ht2做后缀名的索引文件,如下所示:
需要注意的一点,比对软件除了hiasat2以外,还有subjunk、bwa、bowtie2等等,各个比对软件生成的索引文件是不同的,不能相互混用,命名的时候注意区分各种比对工具。
2. clean data与参考基因组比对
比对的意思是将每一个read与参考基因组序列进行对比,目的是得到每一个read在参考基因组上的位置信息,有了这个基础的位置信息才可以进行后续基因或者转录本的定量,最终由定量结果做差异表达矩阵,分析上调或者下调的基因数量。
新建一个shell脚本输入下面的代码
1 | !/bin/bash |
参数解释:
-p # 同样是配置线程数
-x # 指定索引文件,需要定义索引文件名称,不能加后缀,不能只定义到索引文件所在目录
-1 # 第一端测序数据文件
-2 # 第二端测序数据文件
-S # 指定输出目录和文件,不指定会刷屏,注意是大写的S
输出到屏幕的结果如下,我们选取其中一个进行解读:
共有6166091对测序数据,都是双侧测序数据,其中:
read1 和 read2 没有合理比对上参考基因组序列的有65259对,占1.06%
read1 和 read2 只有一条比对上参考基因组序列的有5698903对,占92.42%,这部分reads数需要占测序reads的绝大多数才正常
read1 和 read2 可以同时比对到多个地方的有401929对,占6.52%
65259对没有合理比对上的序列中,55871对可以不合理地比对上一次
最后一块是对两条链拆开比对的结果,这个一般用不到,本来测序的两条reads就应该比对到同一个染色体同一个基因附近,拆开比对到不同染色体没有意义。我们要看的是最后一句话,总比对率为99.97%,通常比对率大于90%说明比对情况较好,与参考基因组基本吻合。
3. sam文件解读
比对结果除了有屏幕上输出的总体报告外,还有记录详细比对结果的sam文件。双端测序的比对会将两个测序文件进行整合和比较,最后只生成一个sam文件,因此这个sam文件非常大,hisat2比对生成的sam文件可以直接打开。我们可以选取一部分进行解读。
@HD VN:1.0 SO:unsorted (排序类型)
VN是格式版本;SO表示比对排序的类型,有unknown,unsorted,queryname和coordinate几种。samtools软件在进行行排序后不能自动更新sam文件的SO值。
@SQ SN:1 LN:30427671 (序列ID及长度)
参考序列名,这些参考序列决定了比对结果sort的顺序,SN是参考序列名;LN是参考序列长度;每个参考序列为一行。这里表示拟南芥有5条染色体,对应长度都在后面,Mt是线粒体基因,Pt是叶绿体基因。
@PG ID:hisat2 PN:hisat2 VN:2.2.1 (比对所使用的软件及版本)
这里包括了路径,方法,以及我质控后的序列长度(50-100)等详细信息。
接下来每行都是一长串,显示的是比对结果部分,11个字段(列)
第一列:QNAME:测序出来的reads序列数据名,ERR1698194.2
第二列:FLAG:表明比对类型:paring,strand,mate strand等
第三列:RNAME:参考基因组的染色体名,我这里是第1条染色体
第四列:POS:比对到这个染色的具体位置,4969
第五列:MAPQ:比对质量,是一个衡量比对好坏的打分结果,60最好
第六列:CIGAR:简要比对信息表达式,1S100M是第1个碱基切除,100个匹配
第七列:RNEXT:另一个序列比对上的参考序列编号,没有另外的片段是*,同一个片段=
第八列:MPOS:另一个序列匹配的染色体具体位置,这里一样也是4969
第九列:TLEN:配对片段长度,最左边的为正,最右边的为负
第十列:SEQ:和参考序列在同一个链上比对的序列
第十一列:QUAL:比对序列的质量和reads碱基质量值
后面提供额外的信息,一般不重要,了解一下就行。因为sam文件太大(往往有10G以上),也不适合电脑进行后续处理,所以我们会用到samtools,将sam文件转化为更适合电脑处理的二进制bam文件。这个后面会讲。
4. 其他比对软件
以下4种软件均用于序列比对,用法稍有不同,做个记录
$ hisat2 -p 4 -x 索引目录 -1 单端测序数据文件 -2 另一端测序数据文件 -S 输出文件
$ subjunk -T 4 -i 索引目录 -r 单端测序数据文件 -R 另一端测序数据文件 -o 输出文件
$ bowtie2 -p 4 -x 索引目录 -1 单端测序数据文件 -2 另一端测序数据文件 -S 输出文件
$ bwa mem -t 4 -M 索引目录 单端测序数据文件 另一端测序数据文件 > 输出文件