Hisat2的使用说明

一、比对原理

原文:HISAT: a fast spliced aligner with low memory requirements.

摘要

1、Hisat是一种高效的RNA-seq实验比对工具
2、它使用了基于BWT和Ferragina-manzini (Fm) index 两种算法的索引框架
3、使用了两类索引去比对,一类是全基因组范围的FM索引来锚定每一个比对,另一类是大量的局部索引对这些比对做快速的扩展

背景

1、自2008年起,RNAseq已经成为研究基因表达、转录本结构、长链非编码RNA确定以及融合转录本的重要手段
2、随着测序深度的加深和read读长的延长,给比对工作带来很多困难
3、目前的工具如Tophat2和GSNAP等在对单个转录组实验的比对中耗时几天,而新型的STAR虽然很快,但是会吃掉大量的内存空间,如基于人类基因组的比对需要消耗28G左右,而hisat2是4.3G

Hisat设计原则

优化了索引建立策略

1、hisat应用了基于bowtie2的方法去处理很多低水平的用于构建和查询FM索引的操作
2、但是与其它比对器不同的是,该软件应用了两类不同的索引类型:代表全基因组的全局FM索引和大量的局部小索引,每个索引代表64000bp
3、以人类基因组为例,创建了48000个局部索引,每一个覆盖1024bp,最终可以覆盖这个3 billion 的碱基的基因组。这种存在交叉(overlap)的边界可以轻松的比对那些跨区域的read(可变剪切体)
4、尽管有很多索引,但是hisat会把他们使用合适方法压缩,最终只占4gb左右的内存

采用了新的比对策略

1、RNA-seq产生的reads可能跨长度比较大的内含子,哺乳动物中甚至最长能达到1MB,同时外显子比较短,read也比较短,会有很多read(模拟数据中大概34%)跨两个外显子的情况
2、为了更好的比对,将跨外显子的reads分成了三类:1)长锚定read,至少有16bp在两个外显子的每一个上 2)中间锚定read,有8-15bp在一个外显子上 3)短锚定read,只有1-7bp在一个外显子上
3、所以总的reads可以被划分为五类:1)不跨外显子的read 2)长锚定read 3)中间锚定read 4)短锚定read 5)跨两个外显子以上的read
4、在模拟的数据中,有25%左右的read是长锚定read,这种read在大多数情况下可以被唯一的定位到人的基因组上
5、5%为中间锚定read,对于这类,很多依赖于全局索引的算法就很难执行下去(需要比对很多次),而hisat,可以先将read中的长片段实现唯一比对,之后再使用局部索引对剩下的小片段进行比对(局部索引可以实现快速检索)
6、4.2%为短锚定read,因为这些序列特别短,因此只能通过在hisat比对其它read时发现的剪切位点或者用户自己提供的剪切位点来辅助比对
7、最后还有3%的是跨多个外显子的read,比对策略在hisat的online method中有介绍,文章中没有详解
8、比对过程中,中间锚定read、短锚定read、跨多个外显子read的比对占总比对时长的30%-60%,而且比对错误率很高!


五种read及比例

二、比对方案

说明书:http://ccb.jhu.edu/software/hisat2/manual.shtml
网页版如何转化为pdf:https://jingyan.baidu.com/article/6b97984df464561ca2b0bfb9.html
基本功能

建索引:hisat2-build [options]*  
# :fasta文件 list,如果为list,使用逗号分开
# :索引文件的前缀名,如设为xxx,则生成的索引文件为xxx.1.ht2,xxx.2.ht2,默认的前缀名为NAME
#option:详见说明书
检查索引:hisat2-inspect [options]* 
#输出结果为一个fasta文件,主要用于检查已经构建好的索引所用的构建信息,感觉没啥用
比对:hisat2 [options]* -x  {-1  -2  | -U  | --sra-acc } [-S ]
#参数说明:
#-p :线程数目
#--dta  :注意!!!在下游使用stringtie组装的时候一定要在hisat中设置这个参数!!!
#-x  :参考基因组索引的basename,即前缀名
#{}:其中的内容意思为hisat2可以接受单端测序,双端测序,或者直接提交SRA ID号
#-1  :双端测序的read1 list ,若为list,使用逗号隔开,名字与2要匹配,如-1 flyA_1.fq,flyB_1.fq
#-2  :双端测序的read2 list ,若为list,使用逗号隔开,名字与1要匹配,如-2 flyA_2.fq,flyB_2.fq
#-U :单端测序list,若为list,使用逗号隔开,-U lane1.fq,lane2.fq,lane3.fq,lane4.fq
#--sra-acc  : SRAID list,若为list,使用逗号隔开,--sra-acc SRR353653,SRR353654
#-S  :SAM写入的文件名,默认写入到标准输出中
#options:这里只列出可调节的类别,至于参数调整,详见说明书
#Input options
#Alignment options
#Scoring options
#Spliced alignment options(重要)
#Reporting options
#Paired-end options(重要)
#Output options(重要)
#SAM options
#Performance options
#Other options
report格式
若为单端测序
20000 reads; of these:
  20000 (100.00%) were unpaired; of these:
    1247 (6.24%) aligned 0 times
    18739 (93.69%) aligned exactly 1 time
    14 (0.07%) aligned >1 times
93.77% overall alignment rate
若为双端测序
10000 reads; of these:
  10000 (100.00%) were paired; of these:
    650 (6.50%) aligned concordantly 0 times
    8823 (88.23%) aligned concordantly exactly 1 time
    527 (5.27%) aligned concordantly >1 times
    ----
    650 pairs aligned concordantly 0 times; of these:
      34 (5.23%) aligned discordantly 1 time
    ----
    616 pairs aligned 0 times concordantly or discordantly; of these:
      1232 mates make up the pairs; of these:
        660 (53.57%) aligned 0 times
        571 (46.35%) aligned exactly 1 time
        1 (0.08%) aligned >1 times
96.70% overall alignment rate

三、具体实例

hisat2-build human.fa --snp human.snp human_hg38
#最终会生成以human_hg38为前缀,以.*.ht2为后缀的索引文件
#其中提供了snp信息
单端测序比对
hisat2 -f -x human_hg38 -U reads_1.fa -S eg1.sam
#-f:输入文件为fasta文件
#-q:输入文件为fastq文件
#-x:只写前缀
#最终生成eg1.sam文件
双端测序比对
hisat2 -f -x human_hg38 -1 reads_1.fa -2 reads_2.fa -S eg2.sam
#最后生成eg2.sam
可以使用samtools或者bcftools作为下游
samtools view -bS eg2.sam > eg2.bam
#转化为bam文件
samtools sort eg2.bam -o eg2.sorted.bam
#bam文件转变为sorted bam
samtools mpileup -uf human.fa eg2.sorted.bam | bcftools view -bvcg - > eg2.raw.bcf
#生成bcf文件
bcftools view eg2.raw.bcf
#查看bcf文件
#详见samtools工具的使用

你可能感兴趣的:(Hisat2的使用说明)