ixxmu / mp_duty

抓取网络文章到github issues保存

Home Page:https://archives.duty-machine.now.sh/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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能够以极高的速度和较低的内存消耗完成大规模数据集的比对任务。其优势主要包括:

  1. 高效性:HISAT2能够在几小时内处理数百个样本的数据,相比其他比对工具如Bowtie2和BWA,它在处理时间和内存使用上更加高效。
  2. 低内存消耗:由于其创新的索引策略,HISAT2在运行时的内存需求相对较低,这使得它能够在标准配置的计算机上运行大规模数据集。
  3. 灵活性:支持多种测序平台和数据类型,包括单端和双端测序数据。
  4. 强大的比对能力: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会构建不同类型的索引:

  1. 小索引(Small indexes):当参考基因组的长度小于大约40亿核苷酸时,hisat2-build会构建一个所谓的“小索引”。在这种索引中,各个部分使用32位数字来表示。小索引的文件扩展名为.ht2
  2. 大索引(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,多一点数据认知,让他们的科研上一个台阶: