HISAT2-ALIGN-L(1)

πŸ’– HISAT2-ALIGN-L(1) πŸ’– (User Commands)

okay bestie, welcome to hisat2-align-l(1) β€” the large-index binary of the HISAT2 fam, living its best life in the User Commands section of your manual. grab a snack, we're going through everything. πŸ’…


✨ NAME ✨

hisat2-align-l β€” HISAT2 graph-based alignment of short nucleotide reads to many genomes, large index binary πŸ§¬πŸ¦‹


🌸 DESCRIPTION 🌸

So. This is HISAT2 version 2.2.1, made by Daehwan Kim (infphilo@gmail.com, www.ccb.jhu.edu/people/infphilo). Here's the usage, no cap:

hisat2-align [options]* -x <ht2-idx> {-1 <m1> -2 <m2> | -U <r>}
[-S <sam>]

And here's what all those little placeholders actually mean, bestie:

  • <ht2-idx> β€” the index filename prefix, and yes, that's minus the trailing .X.ht2l. don't include it. πŸ™ˆ
  • <m1> β€” files with the #1 mates, paired up with whatever's in <m2>.
  • <m2> β€” files with the #2 mates, paired up with whatever's in <m1>.
  • <r> β€” files with unpaired reads.
  • <sam> β€” the file for SAM output (default: stdout).
ngl, the cute part: <m1>, <m2> and <r> can be comma-separated lists (no whitespace), and you can hand them over as many times as you want. Like, for real: -U file1.fq,file2.fq -U file3.fq. slay. ✨

Options (defaults are in parentheses, so you always know what you're getting):


🌈 OPTIONS 🌈

πŸŽ€ Input

  • -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 β€” <m1>, <m2>, <r> are the sequences themselves, not files
  • -s/--skip <int> β€” skip the first <int> reads/pairs in the input (none)
  • -u/--upto <int> β€” stop after first <int> reads/pairs (no limit)
  • -5/--trim5 <int> β€” trim <int> bases from 5'/left end of reads (0)
  • -3/--trim3 <int> β€” trim <int> 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

Same as:

  • --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

πŸ”₯ Alignment

  • --bowtie2-dp <int> β€” use Bowtie2's dynamic programming alignment algorithm (0) β€” 0: no dynamic programming, 1: conditional dynamic programming, and 2: unconditional dynamic programming (slowest, she's thorough πŸ’€)
  • --n-ceil <func> β€” func for max # non-A/C/G/Ts permitted in aln (L,0,0.15)
  • --ignore-quals β€” treat all quality values as 30 on the 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 <int> β€” penalty for a canonical splice site (0)
  • --pen-noncansplice <int> β€” penalty for a non-canonical splice site (12)
  • --pen-canintronlen <func> β€” penalty for long introns (G,-8,1) with canonical splice sites
  • --pen-noncanintronlen <func> β€” penalty for long introns (G,-8,1) with noncanonical splice sites
  • --min-intronlen <int> β€” minimum intron length (20)
  • --max-intronlen <int> β€” maximum intron length (500000)
  • --known-splicesite-infile <path> β€” provide a list of known splice sites
  • --novel-splicesite-outfile <path> β€” report a list of splice sites
  • --novel-splicesite-infile <path> β€” 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 <string> β€” 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, iykyk)
  • --no-templatelen-adjustment β€” disables template length adjustment for RNA-seq reads

πŸ’œ Scoring

  • --mp <int>,<int> β€” max and min penalties for mismatch; lower qual = lower penalty <6,2>
  • --sp <int>,<int> β€” 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 <int>,<int> β€” read gap open, extend penalties (5,3)
  • --rfg <int>,<int> β€” 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 <int> β€” It searches for at most <int> 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 <int>, 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 <int> distinct, valid alignments, hisat2 does not guarantee that the <int> 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 <int> β€” 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). that number is literally giving main character energy ✨
  • --repeat β€” report alignments to repeat sequences directly

πŸ’ž Paired-end

  • -I/--minins <int> β€” minimum fragment length (0), only valid with --no-spliced-alignment
  • -X/--maxins <int> β€” 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
  • --summary-file <path> β€” 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 <path> β€” send metrics to file at <path> (off)
  • --met-stderr β€” send metrics to stderr (off)
  • --met <int> β€” report internal counters & metrics every <int> secs (1)
  • --no-head β€” suppress header lines, i.e. lines starting with @
  • --no-sq β€” suppress @SQ header lines
  • --rg-id <text> β€” set read group id, reflected in @RG line and RG:Z: opt field
  • --rg <text> β€” add <text> ("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 <int> β€” override offrate of index; must be >= index's offrate
  • -p/--threads <int> β€” 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 <int> β€” 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

🧁 Build deets (yes, she's a 64-bit girlie)

64-bit Built on Debian 21 January 2026 Compiler: gcc version 15.2.0
(Ubuntu 15.2.0-11ubuntu1) Options: -O3   -funroll-loops -g3 -Wdate-time
-D_FORTIFY_SOURCE=3 -std=c++11 Sizeof {int, long, long long, void*,
size_t, off_t}: {4, 8, 8, 8, 8, 8}

And that's the whole thing, bestie! 🌈 This was hisat2-align-l version 2.2.1, dated January 2026 β€” go align something iconic. periodt. πŸ’…πŸ’–πŸŽ€

πŸ“¦ where this page comes from