HISAT2是TopHat2/Bowti2的继任者,使用改进的BWT算法,实现了更快的速度和更少的资源占用,作者推荐TopHat2/Bowti2和HISAT的用户转换到HISAT2。
官网:
https://ccb.jhu.edu/software/hisat2/index.shtml
HISAT2安装
下载HISAT2-2.0.1,并解压:
unzip hisat2-2.0.1-beta-Linux_x86_64.zip
将HISAT2目录添加到环境变量:
vi ~/.bashrc
在文件末位添加:
export PATH=/lustre/home/lcn/chenwen/bin/hisat2-2.0.1-beta:$PATH source ~/.bashrc
建立索引保存退出
建立基因组索引
hisat2-build –p 4 genome.fa genome
建立基因组+转录组+SNP索引:
bowtie2的索引只有基因组序列信息,tophat2比对时,转录组信息通过-G参数指定。HISAT2建立索引时,就应该把转录组信息加进去。
HISAT2提供两个Python脚本将GTF文件转换成hisat2-build能使用的文件:
extract_exons.py Homo_sapiens.GRCh38.83.chr.gtf > genome.exon extract_splice_sites.py Homo_sapiens.GRCh38.83.chr.gtf > genome.ss
此外,HISAT2还支持将SNP信息加入到索引中,这样比对的时候就可以考虑SNP的情况。这仍然需要将SNP文件转换成hisat2-build能使用的文件:
extract_snps.py snp142Common.txt > genome.snp
最后,将基因组、转录组、SNP建立索引:
hisat2-build -p 4 genome.fa --snp genome.snp --ss genome.ss --exon genome.exon genome_snp_tran
官网提供了人和小鼠的索引文件下载,压缩包有make_grch38_tran.sh文件,详细记录了创建索引的过程。
运行HISAT2
hisat2 -p 16 -x ./grch38_tran/genome_tran -1 SRR534293_1.fastq -2 SRR534293_2.fastq –S SRR534293.sam
-x 指定基因组索引
-1 指定第一个fastq文件
-2 指定第二个fastq文件
-S 指定输出的SAM文件
更多参数请查看HISAT2的操作手册:
https://ccb.jhu.edu/software/hisat2/manual.shtml
官方操作手册简要版
用法:
hisat2 [options]* -x <hisat2-idx> {-1 <m1> -2 <m2> | -U <r> | –sra-acc <SRA accession number>} [-S <hit>]
主要参数:
-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文件。
输入选项:
-q
输入文件为FASTQ格式。FASTQ格式为默认参数。
-qseq
输入文件为QSEQ格式。
-f
输入文件为FASTA格式。
-r
输入文件中,每一行代表一条序列,没有序列名和测序质量等。选择此项时,–ignore-quals参数也会被选择。
-c
此参数后是直接比对的序列,而不是包含序列的文件名。序列间用逗号隔开。选择此项时,–ignore-quals参数也会被选择。
-s/–skip <int>
跳过输入文件中前条序列进行比对。
-u/–qupto <int>
只使用输入文件中前条序列进行比对,默认是没有限制。
-5/–trim5 <int>
比对前去除每条序列5’端个碱基
-3/–trim3 <int>
比对前去除每条序列3’端个碱基
–phred33
输入的FASTQ文件碱基质量值编码标准为phred33,phred33为默认参数。
–phred64
输入的FASTQ文件碱基质量值编码标准为phred64。
–solexa-quals
将Solexa的碱基质量值编码标准转换为phred。
–int-quals
输入文件中的碱基质量值为用空格分隔的数值,而不是ASCII码,例如40 30 30 40。