HISAT2— 基于层次图FM索引的高速精准基因组测序reads比对软件
ixxmu opened this issue · comments
HISAT2— 基于层次图FM索引的高速精准基因组测序reads比对软件 by 生信菜鸟团
工欲善其事必先利其器
1HISAT2
HISAT2是一款是由Daehwan Kim、Christopher Bennett和Steven Salzberg(Johns Hopkins University)等人开发的高效的基因组比对软件,专为高通量测序数据设计,用于比对大规模RNA序列数据到参考基因组。HISAT2是HISAT的升级版,引入了几个关键技术,如使用分层索引(hierarchical indexing)和全局Ferragina-Manzini (FM)索引结合多个局部FM索引,这些技术使得HISAT2能够以极高的速度和较低的内存消耗完成大规模数据集的比对任务。其优势主要包括:
高效性:HISAT2能够在几小时内处理数百个样本的数据,相比其他比对工具如Bowtie2和BWA,它在处理时间和内存使用上更加高效。 低内存消耗:由于其创新的索引策略,HISAT2在运行时的内存需求相对较低,这使得它能够在标准配置的计算机上运行大规模数据集。 灵活性:支持多种测序平台和数据类型,包括单端和双端测序数据。 强大的比对能力:HISAT2特别擅长处理基因组中的变异和间隙,如SNPs(单核苷酸多态性)和小型插入缺失(indels),从而能够提供更精确的比对结果。
官网:https://daehwankimlab.github.io/hisat2/ 多平台:支持Linux和MacOS 编程语言:C++
2发表文章
题目: Graph-based genome alignment and genotyping with HISAT2 and HISAT-genotype
期刊:Nat Biotechnol
日期:2019/8
作者&单位:Daehwan Kim & University of Texas Southwestern Medical Center、Johns Hopkins University, Baltimore
DOI:https://doi.org/10.1038/s41587-019-0201-4
3如何安装
conda 安装
conda create -n RNAseq
conda activate RNAseq
conda install -y hisat2
二进制包安装
除了源码包,官网也提供了Linux和MacOS的二进制版,推荐采用预编译二进制安装,下载解压即可使用。
wget -c https://cloud.biohpc.swmed.edu/index.php/s/oTtGWbWjaxsQ2Ho/download
#修改下载的文件名
mv download hisat2_2.21.zip
# 解压
unzip hisat2_2.21.zip
##测试
cd hisat2-2.2.1/
./hisat2 -h
解压即可使用4最小化使用
比对软件通常分为两步
构建参考基因组索引 比对
参考基因组文件下载见:bowtie2 | 一种快速且节约内存的比对工具
构建索引
HISAT2可以为任意大小的参考基因组构建索引,这是进行高效比对的关键步骤。根据基因组的大小,HISAT2会构建不同类型的索引:
小索引(Small indexes):当参考基因组的长度小于大约40亿核苷酸时, hisat2-build
会构建一个所谓的“小索引”。在这种索引中,各个部分使用32位数字来表示。小索引的文件扩展名为.ht2
。大索引(Large indexes):对于长度超过40亿核苷酸的基因组, hisat2-build
会构建一个“大索引”,在这种索引中使用64位数字。大索引的文件扩展名为.ht2l
。
而这种大小索引的构建,无需用户指定,HISAT2会根据参考基因组的大小自动选择合适的索引类型进行构建和使用
mkdir hisat2_indx
hisat2-build -p 6 ~/reference/human/CRCh38/GRCh38.p14.genome.fa ./GRCh38_genome
-p #线程数
<reference_in> #指定参考基因组位置
<ht2_index_base> #指定输出文件位置及文件前缀名
##生成的索引文件
1000M 2月 19 18:33 GRCh38_genome.1.ht2
747M 2月 19 18:33 GRCh38_genome.2.ht2
18K 2月 19 18:13 GRCh38_genome.3.ht2
747M 2月 19 18:13 GRCh38_genome.4.ht2
1.3G 2月 19 18:36 GRCh38_genome.5.ht2
760M 2月 19 18:36 GRCh38_genome.6.ht2
12 2月 19 18:13 GRCh38_genome.7.ht2
8 2月 19 18:13 GRCh38_genome.8.ht2
## 6个线程耗时23:22 ,内存占用约7G
构建索引这一步除了自己构建索引,Hisat2还提供了人、小鼠、大鼠、果蝇等常见模式生物的已经构建好的索引,可以直接下载使用
#下载已经构建好的参考基因组索引文件
wget -c https://genome-idx.s3.amazonaws.com/hisat/grch38_genome.tar.gz
##提交后台下载
nohup wget -c https://genome-idx.s3.amazonaws.com/hisat/grch38_genome.tar.gz 1>hisat2_index_down.log 2>&1 &
比对
## 单端比对
~/software/test/hisat2-2.2.1/hisat2 -p 2 \
-x ~/reference/human/hisat2_indx/GRCh38_genome \
-U ~/hisat_test/SRR7707754.fastq.gz \
-S ./test_single.sam
## 双端比对
~/software/test/hisat2-2.2.1/hisat2 -p 2 \
-x ~/reference/human/hisat2_indx/GRCh38_genome \
-1 ~/hisat_test/sample_1.fastq.gz \
-2 ~/hisat_test/sample_2.fastq.gz \
-S ./test.sam
##运行耗时:22:58.47
##参数释义
-x <hisat2-idx> #参考基因组索引文件的前缀。
-1 <m1> #双端测序结果的第一个文件。若有多组数据,使用逗号将文件分隔。Reads的长度可以不一致。
-2 <m2> #双端测序结果的第二个文件。若有多组数据,使用逗号将文件分隔,并且文件顺序要和-1参数对应。Reads的长度可以不一致。
-U <r> #单端数据文件。若有多组数据,使用逗号将文件分隔。可以和-1、-2参数同时使用。Reads的长度可以不一致。
–sra-acc <SRA accession number> #输入SRA登录号,比如SRR353653,SRR353654。多组数据之间使用逗号分隔。HISAT将自动下载并识别数据类型,进行比对。
-S <hit> #指定输出为SAM文件,若不指定HISAT2默认会将比对结果输出到标准输出。
由于Sam文件太占服务器空间,通常会和samtools联用将输出结果转为bam文件
## 比对输出为bam文件
~/software/test/hisat2-2.2.1/hisat2 -p 2 \
-x ~/reference/human/hisat2_indx/GRCh38_genome \
-1 ~/hisat_test/sample_1.fastq.gz \
-2 ~/hisat_test/sample_2.fastq.gz | samtools sort -@ 2 -o ./test.sort.bam
##运行耗时24:18.18
输出文件大小对比5输出
比对摘要
对于单端测序数据的比对
20000 reads; of these: #总共处理了20000个读段
20000 (100.00%) were unpaired; of these: #所有读段都是未配对的
1247 (6.24%) aligned 0 times #1247个读段没有任何比对
18739 (93.69%) aligned exactly 1 time #18739个读段精确地比对了一次
14 (0.07%) aligned >1 times #14个读段比对了多次
93.77% overall alignment rate #总体比对率为93.77%
对于双端测试数据的比对
10000 reads; of these: #总共处理了10000读段对(即20000个读段)
10000 (100.00%) were paired; of these: #所有读段都是成对的
650 (6.50%) aligned concordantly 0 times #650个读段对没有任何双端一致的比对【未必对上的】
8823 (88.23%) aligned concordantly exactly 1 time #8823个读段对双端一致地精确比对了一次【精确比对一次的】
527 (5.27%) aligned concordantly >1 times #527个读段对双端一致地比对了多次 【多次比对的】
----
650 pairs aligned concordantly 0 times; of these:
34 (5.23%) aligned discordantly 1 time #650个读段对中,有34对虽然没有双端一致的比对,但是有1次单端的比对
----
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 #对于那些既没有双端一致比对也没有单端比对的616个读段对,它们共有1232个单独读段,其中660个没有任何比对,571个精确比对了一次,1个比对了多次
96.70% overall alignment rate #总体比对率为96.70%
更多用法参见:https://daehwankimlab.github.io/hisat2/manual/
文末友情宣传
强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶: