HISAT2-ALIGN-S(1)

πŸ‘‘ hisat2-align-s β€” the manual page

okay bestie, welcome to the hisat2-align-s page, section 1 of the User Commands manual ✨ she's the small index binary, and she's here to do HISAT2 graph-based alignment of short nucleotide reads to many genomes. iconic behavior, no notes πŸ’…


🌸 NAME 🌸

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


πŸ’– DESCRIPTION πŸ’–

This is HISAT2 version 2.2.1 by Daehwan Kim (infphilo@gmail.com, www.ccb.jhu.edu/people/infphilo) 🫢

Usage, as literally printed:

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

and here's what every single one of those lil placeholders means, don't skip πŸ‘‡

  • <ht2-idx> β€” the index filename prefix, minus the trailing .X.ht2 (so like, the vibe of the files, not the whole name) πŸŽ€
  • <m1> β€” files with #1 mates, paired with files in <m2>
  • <m2> β€” files with #2 mates, paired with files in <m1>
  • <r> β€” files with unpaired reads
  • <sam> β€” the file for SAM output (default: stdout) πŸ–¨οΈ
πŸ’‘ bestie PSA: <m1>, <m2>, and <r> can be comma-separated lists (no whitespace, do not try it, seriously) and can be specified many times. Example, verbatim: -U file1.fq,file2.fq -U file3.fq.

Options (and yes, the defaults are in the parentheses, exactly as given):

πŸ“ Input πŸ“

  • -q β€” query input files are FASTQ .fq/.fastq (this is the default, she's the moment)
  • --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 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 πŸŽ€

Basically "same as" shortcuts, so you don't have to type the whole thing:

  • --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 int β€” use Bowtie2's dynamic programming alignment algorithm (0). The values, no cap: 0: no dynamic programming, 1: conditional dynamic programming, and 2: unconditional dynamic programming (slowest) 🐒
  • --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 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, she said what she said πŸ™ˆ)
  • --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 β€” okay so this one is the main character of reporting πŸ’… She searches for at most int distinct, primary alignments for each read. "Primary alignments" means 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) πŸ“
  • --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

πŸ› οΈ The build receipts πŸ› οΈ

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 page bestie, you ate it 🫢 this was hisat2-align-s version 2.2.1, dated January 2026, from the HISAT2-ALIGN-S(1) corner of the User Commands manual β€” go forth and align, ily πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from