01 背景
概述
HISAT2 是一种快速且灵敏的比对程序,可用于将下一代测序读段(全基因组、转录组和外显子组测序数据)比对到人类基因组群体(也可比对到单一参考基因组)。基于对图的 BWT 扩展[1],我们设计并实现了图 FM 索引(GFM),这是一种原创方法,并据我们所知首次实现。除了使用一个代表总体的全局 GFM 索引外,HISAT2 还使用了一大组覆盖整个基因组的小 GFM 索引(每个索引代表一个 56 Kbp 的基因组区域,共需 55,000 个索引来覆盖人类群体)。这些小索引(称为局部索引)结合多种比对策略,可以有效地进行测序读段的比对。这种新的索引方案被称为分层图 FM 索引(HGFM)。我们基于 HISAT [2] 和 Bowtie 2 [3] 的实现开发了 HISAT2。更多信息请参见 HISAT2 网站。
同样的软件
minimap2安装与使用(v 2.28)生物信息学工具26
LASTZ v1.04.22安装与使用-Bioinformatics工具-028
bwa安装及使用(生物信息学工具-018)
Bowtie2安装与使用-bowtie2-2.5.2(bioinfomatics tools-011)
Blast安装及使用-Blast+2.14.0(bioinfomatics tools-001)
02 参考
https://daehwankimlab.github.io/hisat2/download/ #官网 #version-hisat2-221https://cloud.biohpc.swmed.edu/index.php/s/oTtGWbWjaxsQ2Ho/download #win直接下载
03 安装
git clone https://github.com/DaehwanKimLab/hisat2.git
cd hisat2
makewget -c https://github.com/DaehwanKimLab/hisat2/archive/refs/tags/v2.2.1.tar.gz
#conda install bioconda::hisat2
04 使用
HISAT2 版本 2.2.1 由 Daehwan Kim 开发 (infphilo@gmail.com, www.ccb.jhu.edu/people/infphilo)****使用方法:** hisat2 [选项]* -x <ht2-idx> {-1 <m1> -2 <m2> | -U <r> | --sra-acc <SRA 访问编号>} [-S <sam>]- `<ht2-idx>`: 索引文件名前缀(不包括 .X.ht2 后缀)。
- `<m1>`: 与 `<m2>` 中文件配对的 #1 mates 文件,可为 gzip 压缩 (.gz) 或 bzip2 压缩 (.bz2)。
- `<m2>`: 与 `<m1>` 中文件配对的 #2 mates 文件,可为 gzip 压缩 (.gz) 或 bzip2 压缩 (.bz2)。
- `<r>`: 未配对的读段文件,可为 gzip 压缩 (.gz) 或 bzip2 压缩 (.bz2)。
- `<SRA accession number>`: SRA 访问编号的逗号分隔列表,例如 `--sra-acc SRR353653,SRR353654`。
- `<sam>`: SAM 输出文件(默认:标准输出)。`<m1>`、`<m2>`、`<r>` 可以是无空格的逗号分隔列表,且可以多次指定,例如 `-U file1.fq,file2.fq -U file3.fq`。**选项(默认值在括号中):****输入:**
- `-q` 输入文件为 FASTQ 格式 .fq/.fastq(默认)
- `--qseq` 输入文件为 Illumina 的 qseq 格式
- `-f` 输入文件为(多重)FASTA 格式 .fa/.mfa
- `-r` 输入文件为原始单序列每行的格式
- `-c` `<m1>`、`<m2>`、`<r>` 为序列本身,而不是文件
- `-s/--skip <int>` 跳过输入中的前 `<int>` 个读段/配对(无)
- `-u/--upto <int>` 处理前 `<int>` 个读段/配对后停止(无上限)
- `-5/--trim5 <int>` 从读段的 5'/左端修剪 `<int>` 个碱基(0)
- `-3/--trim3 <int>` 从读段的 3'/右端修剪 `<int>` 个碱基(0)
- `--phred33` 质量值为 Phred+33(默认)
- `--phred64` 质量值为 Phred+64
- `--int-quals` 质量值为空格分隔的整数
- `--sra-acc` SRA 访问 ID**预设:** 与以下选项相同:
- `--fast` `--no-repeat-index`
- `--sensitive` `--bowtie2-dp 1 -k 30 --score-min L,0,-0.5`
- `--very-sensitive` `--bowtie2-dp 2 -k 50 --score-min L,0,-1`**比对:**
- `--bowtie2-dp <int>` 使用 Bowtie2 的动态规划比对算法 (0) - 0: 无动态规划, 1: 有条件动态规划, 2: 无条件动态规划(最慢)
- `--n-ceil <func>` 函数用于限制比对中允许的非 A/C/G/T 数量 (L,0,0.15)
- `--ignore-quals` 将所有质量值视为 Phred 量表上的 30(关闭)
- `--nofw` 不比对读段的正向(原始)版本(关闭)
- `--norc` 不比对读段的反向互补版本(关闭)
- `--no-repeat-index` 不使用重复索引**拼接比对:**
- `--pen-cansplice <int>` 规范剪接位点的惩罚 (0)
- `--pen-noncansplice <int>` 非规范剪接位点的惩罚 (12)
- `--pen-canintronlen <func>` 对具有规范剪接位点的长内含子的惩罚 (G,-8,1)
- `--pen-noncanintronlen <func>` 对具有非规范剪接位点的长内含子的惩罚 (G,-8,1)
- `--min-intronlen <int>` 最小内含子长度 (20)
- `--max-intronlen <int>` 最大内含子长度 (500000)
- `--known-splicesite-infile <path>` 提供已知剪接位点列表
- `--novel-splicesite-outfile <path>` 报告剪接位点列表
- `--novel-splicesite-infile <path>` 提供新发现的剪接位点列表
- `--no-temp-splicesite` 禁用发现的剪接位点
- `--no-spliced-alignment` 禁用拼接比对
- `--rna-strandness <string>` 指定链特异性信息(无特异性)
- `--tmo` 仅报告已知转录组内的比对
- `--dta` 报告适合转录组装配程序的比对
- `--dta-cufflinks` 报告特别适合 cufflinks 的比对
- `--avoid-pseudogene` 尝试避免将读段比对到假基因(实验选项)
- `--no-templatelen-adjustment` 禁用 RNA-seq 读段的模板长度调整**得分:**
- `--mp <int>,<int>` 错配的最大和最小惩罚;质量越低,惩罚越低 <6,2>
- `--sp <int>,<int>` 软剪切的最大和最小惩罚;质量越低,惩罚越低 <2,1>
- `--no-softclip` 禁用软剪切
- `--np <int>` 读段/参考中的非 A/C/G/T 惩罚 (1)
- `--rdg <int>,<int>` 读段间隙的开启和延伸惩罚 (5,3)
- `--rfg <int>,<int>` 参考间隙的开启和延伸惩罚 (5,3)
- `--score-min <func>` 最小可接受的比对得分与读段长度有关 (L,0.0,-0.2)**报告:**
- `-k <int>` 搜索每个读段的最多 `<int>` 个不同的主要比对。主要比对指得分等于或高于其他比对的比对。
- `--max-seeds <int>` 控制将延伸的最大种子数量。
- `-a/--all` 报告所有可以找到的比对。
- `--repeat` 直接报告与重复序列的比对。**双端:**
- `-I/--minins <int>` 最小片段长度 (0),仅在 `--no-spliced-alignment` 时有效
- `-X/--maxins <int>` 最大片段长度 (500),仅在 `--no-spliced-alignment` 时有效
- `--fr/--rf/--ff` -1, -2 mates 分别比对于正/反,反/正,正/正(默认 `--fr`)
- `--no-mixed` 抑制成对读段的非配对比对
- `--no-discordant` 抑制成对读段的不同步比对**输出:**
- `-t/--time` 打印搜索阶段所花费的时间
- `--un <path>` 将未比对的单端读段写入 `<path>`
- `--al <path>` 将至少比对一次的单端读段写入 `<path>`
- `--un-conc <path>` 将未协调比对的双端读段写入 `<path>`
- `--al-conc <path>` 将至少协调比对一次的双端读段写入 `<path>`
- `--summary-file <path>` 打印比对总结到该文件。
- `--quiet` 除严重错误外,不打印任何内容到 stderr
- `--new-summary` 以新格式打印比对总结,格式更易于机器读取。**性能:**
- `-o/--offrate <int>` 覆盖索引的 offrate,必须 >= 索引的 offrate
- `-p/--threads <int>` 启动的比对线程数量 (1)
- `--reorder` 强制 SAM 输出顺序与输入读段顺序匹配
- `--mm` 为索引使用内存映射 I/O,多次 'hisat2' 可共享**其他:**
- `--qc-filter` 过滤掉根据 QSEQ 过滤器为不良的读段
- `--seed <int>` 随机数生成器的种子 (0)
- `--non-deterministic` 任意种子随机生成器,而不是使用读段属性
- `--remove-chrname` 在比对中删除参考名称中的 'chr'
- `--add-chrname` 在比对中将 'chr' 添加到参考名称中
- `--version` 打印版本信息并退出
- `-h/--help` 打印此使用说明
他遇到fq.gz文件会报错,解压即可
解压zip、tar、gz文件--linux003
05 常用命令行
构建索引`hisat2-build` 用于从一组 DNA 序列中构建 HISAT2 索引。`hisat2-build` 会输出一组具有后缀 `.1.ht2`、`.2.ht2`、`.3.ht2`、`.4.ht2`、`.5.ht2`、`.6.ht2`、`.7.ht2` 和 `.8.ht2` 的文件。在大索引的情况下,这些后缀会以 `ht2l` 结尾。这些文件共同构成索引,是将读段比对到参考序列所需的全部内容。一旦索引建立,HISAT2 不再使用原始的序列 FASTA 文件。ISAT2 索引构建示例:hisat2-build genome.fa genome使用 HISAT2 进行比对HISAT2 比对的示例:1. **单端 FASTA 读段 DNA 比对:**```bashhisat2 -f -x genome -U reads.fa -S output.sam --no-spliced-alignment```2. **双端 FASTQ 读段比对:**```bashhisat2 -x genome -1 reads_1.fq -2 reads_2.fq -S output.sam```
06 参考文献
[1] Sirén J, Välimäki N, Mäkinen V (2014) Indexing graphs for path queries with applications in genome research. IEEE/ACM Transactions on Computational Biology and Bioinformatics 11: 375–388. doi: 10.1109/tcbb.2013.2297101
[2] Kim D, Langmead B, and Salzberg SL HISAT: a fast spliced aligner with low memory requirements, Nature methods, 2015
[3] Langmead B, Salzberg SL: Fast gapped-read alignment with Bowtie 2. Nat Methods 2012, 9:357-359
Kim, D., Paggi, J.M., Park, C. et al. Graph-based genome alignment and genotyping with HISAT2 and HISAT-genotype. Nat Biotechnol 37, 907–915 (2019). Graph-based genome alignment and genotyping with HISAT2 and HISAT-genotype | Nature Biotechnology