Category

Mapping


Usage

hisat2 [options]* -x <hisat2-idx> {-1 <m1> -2 <m2> | -U <r> | --sra-acc <SRA accession number>} [-S <sam>]


Manual

HISAT2, which stands for Hierarchical Indexing for Spliced Alignment of Transcripts 2, is a widely used software tool in bioinformatics and genomics. It is particularly well-suited for aligning RNA-Seq reads to a reference genome because it takes into account the presence of introns and performs spliced alignment. This means it can accurately identify the exon-exon junctions in genes, which is crucial for studying gene expression and alternative splicing. HISAT2 is the successor to HISAT (Hierarchical Indexing for Spliced Alignment of Transcripts), and it was developed to address some of the limitations of its predecessor while offering improved speed and accuracy. Other popular tools for aligning RNA-seq includes STAR and Salmon.

Main arguments

  • -x : Index filename prefix (without the trailing .X.ht2). You may need to run hisat2-build first to generate index. Some precompiled indexes are available here.
  • -1 : Comma-separated list of files containing mate 1s (or read 1s, filename usually includes _1), e.g. -1 flyA_1.fq,flyB_1.fq. Sequences specified with this option must correspond file-for-file and read-for-read with those specified in -2. Reads may be a mix of different lengths. If - is specified, hisat2 will read the mate 1s from the "standard in" or "stdin" filehandle.
  • -2 : Comma-separated list of files containing mate 2s (or read 2s, filename usually includes _2), e.g. -2 flyA_2.fq,flyB_2.fq. Sequences specified with this option must correspond file-for-file and read-for-read with those specified in -1. Reads may be a mix of different lengths. If - is specified, hisat2 will read the mate 2s from the "standard in" or "stdin" filehandle.
  • -U : Comma-separated list of files containing unpaired reads to be aligned, e.g. lane1.fq,lane2.fq,lane3.fq,lane4.fq. Reads may be a mix of different lengths. If - is specified, hisat2 gets the reads from the "standard in" or "stdin" filehandle.
  • --sra-acc : Comma-separated list of SRA accession numbers, e.g. --sra-acc SRR353653,SRR353654.
  • -S : File to write SAM alignments to. By default, alignments are written to the "standard out" or "stdout" filehandle (i.e. the console).

Options

  • Input options
    • -q: query input files are FASTQ .fq/.fastq (default)
    • --qseq: query input files are in Illumina's qseq format
    • -f: query input files are (multi-)FASTA .fa/.mfa
    • -r: query input files are raw one-sequence-per-line
    • -c: Values for -1, -2, -U are sequences themselves, not files
    • -s/--skip : skip the first reads/pairs in the input (none)
    • -u/--upto : stop after first reads/pairs (no limit)
    • -5/--trim5 : trim bases from 5'/left end of reads (0)
    • -3/--trim3 : trim bases from 3'/right end of reads (0)
    • --phred33: qualities are Phred+33 (default)
    • --phred64: qualities are Phred+64
    • --int-quals: qualities encoded as space-delimited integers
  • Presets:
    • --fast: Same as --no-repeat-index
    • --sensitive: Same as --bowtie2-dp 1 -k 30 --score-min L,0,-0.5
    • --very-sensitive: Same as --bowtie2-dp 2 -k 50 --score-min L,0,-1
  • Alignment:
    • --bowtie2-dp : use Bowtie2's dynamic programming alignment algorithm (0) - 0: no dynamic programming, 1: conditional dynamic programming, and 2: unconditional dynamic programming (slowest)
    • --n-ceil : Sets a function governing the maximum number of ambiguous characters (usually Ns and/or .s) allowed in a read as a function of read length. For instance, specifying -L,0,0.15 sets the N-ceiling function f to $f(x) = 0 + 0.15 * x$, where $x$ is the read length. Reads exceeding this ceiling are filtered out. Default: L,0,0.15.
    • --ignore-quals: treat all quality values as 30 on Phred scale (off)
    • --nofw: do not align forward (original) version of read (off)
    • --norc: do not align reverse-complement version of read (off)
    • --no-repeat-index: do not use repeat index
  • Spliced Alignment:
    • --pen-cansplice : penalty for a canonical splice site (0)
    • --pen-noncansplice : penalty for a non-canonical splice site (12)
    • --pen-canintronlen : penalty for long introns (G,-8,1) with canonical splice sites
    • --pen-noncanintronlen : penalty for long introns (G,-8,1) with noncanonical splice sites
    • --min-intronlen : minimum intron length (20)
    • --max-intronlen : maximum intron length (500000)
    • --known-splicesite-infile : provide a list of known splice sites
    • --novel-splicesite-outfile : report a list of splice sites
    • --novel-splicesite-infile : provide a list of novel splice sites
    • --no-temp-splicesite: disable the use of splice sites found
    • --no-spliced-alignment: disable spliced alignment
    • --rna-strandness : specify strand-specific information (unstranded)
    • --tmo: reports only those alignments within known transcriptome
    • --dta: reports alignments tailored for transcript assemblers
    • --dta-cufflinks: reports alignments tailored specifically for cufflinks
    • --avoid-pseudogene: tries to avoid aligning reads to pseudogenes (experimental option)
    • --no-templatelen-adjustment: disables template length adjustment for RNA-seq reads
  • Scoring:
    • --mp MX,MN: max and min penalties for mismatch; lower qual = lower penalty <6,2>
    • --sp MX,MN: max and min penalties for soft-clipping; lower qual = lower penalty <2,1>
    • --no-softclip: no soft-clipping
    • --np int: penalty for non-A/C/G/Ts in read/ref (1)
    • --rdg int1,int2: read gap open, extend penalties (5,3)
    • --rfg int1,int2: reference gap open, extend penalties (5,3)
    • --score-min func min acceptable alignment score w/r/t read length (L,0.0,-0.2)
  • Reporting:
    • -k : It searches for at most distinct, primary alignments for each read. Primary alignments mean alignments whose alignment score is equal to or higher than any other alignments. The search terminates when it cannot find more distinct valid alignments, or when it finds , whichever happens first. The alignment score for a paired-end alignment equals the sum of the alignment scores of the individual mates. Each reported read or pair alignment beyond the first has the SAM ‘secondary’ bit (which equals 256) set in its FLAGS field. For reads that have more than distinct, valid alignments, hisat2 does not guarantee that the alignments reported are the best possible in terms of alignment score. Default: 5 (linear index) or 10 (graph index). Note: HISAT2 is not designed with large values for -k in mind, and when aligning reads to long, repetitive genomes, large -k could make alignment much slower.
    • --max-seeds : HISAT2, like other aligners, uses seed-and-extend approaches. HISAT2 tries to extend seeds to full-length alignments. In HISAT2, --max-seeds is used to control the maximum number of seeds that will be extended. For DNA-read alignment (--no-spliced-alignment), HISAT2 extends up to these many seeds and skips the rest of the seeds. For RNA-read alignment, HISAT2 skips extending seeds and reports no alignments if the number of seeds is larger than the number specified with the option, to be compatible with previous versions of HISAT2. Large values for --max-seeds may improve alignment sensitivity, but HISAT2 is not designed with large values for --max-seeds in mind, and when aligning reads to long, repetitive genomes, large --max-seeds could make alignment much slower. The default value is the maximum of 5 and the value that comes with -k times 2.
    • -a/--all: HISAT2 reports all alignments it can find. Using the option is equivalent to using both --max-seeds and -k with the maximum value that a 64-bit signed integer can represent (9,223,372,036,854,775,807).
    • --repeat: report alignments to repeat sequences directly
  • Paired-end:
    • -I/--minins : minimum fragment length (0), only valid with --no-spliced-alignment
    • -X/--maxins : maximum fragment length (500), only valid with --no-spliced-alignment
    • --fr/--rf/--ff: -1, -2 mates align fw/rev, rev/fw, fw/fw (--fr)
    • --no-mixed: suppress unpaired alignments for paired reads
    • --no-discordant: suppress discordant alignments for paired reads
  • Output:
    • -t/--time: print wall-clock time taken by search phases
    • --un : write unpaired reads that didn't align to
    • --al : write unpaired reads that aligned at least once to
    • --un-conc : write pairs that didn't align concordantly to
    • --al-conc : write pairs that aligned concordantly at least once to (Note: for --un, --al, --un-conc, or --al-conc, add '-gz' to the option name, e.g. --un-gz, to gzip compress output, or add '-bz2' to bzip2 compress output.)
    • --summary-file : print alignment summary to this file.
    • --new-summary: print alignment summary in a new style, which is more machine-friendly.
    • --quiet: print nothing to stderr except serious errors
    • --met-file : send metrics to file at (off)
    • --met-stderr: send metrics to stderr (off)
    • --met : report internal counters & metrics every secs (1)
    • --no-head: suppress header lines, i.e. lines starting with @
    • --no-sq: suppress @SQ header lines
    • --rg-id : set read group id, reflected in @RG line and RG:Z: opt field
    • --rg : add  ("lab:value") to @RG line of SAM header. Note: @RG line only printed when --rg-id is set.
    • --omit-sec-seq: put '*' in SEQ and QUAL fields for secondary alignments.
  • Performance:
    • -o/--offrate : override offrate of index; must be >= index's offrate
    • -p/--threads : number of alignment threads to launch (1)
    • --reorder: force SAM output order to match order of input reads
    • --mm: use memory-mapped I/O for index; many 'hisat2's can share
  • Other:
    • --qc-filter: filter out reads that are bad according to QSEQ filter
    • --seed : seed for random number generator (0)
    • --non-deterministic: seed rand. gen. arbitrarily instead of using read attributes
    • --remove-chrname: remove 'chr' from reference names in alignment
    • --add-chrname: add 'chr' to reference names in alignment
    • --version: print version information and quit
    • -h/--help: print this usage message

Example

hisat2 -x hg38_indexed -1 reads_R1.fastq -2 reads_R2.fastq | samtools view -bSh > aligned.bam

This document is generated based on HISAT2 version 2.2.1.

Protocols using this tool

Transcript-level expression analysis of RNA-seq experiments with HISAT, StringTie
File formats this tool works with
FASTAFASTQ

Share your experience or ask a question