HISAT2-ALIGN-S(1)
π NAME π
hisat2-align-s β graph-based alignment of short nucleotide reads to many genomes, wrapper script. yes bestie it's literally the whole personality: short reads, many genomes, one little wrapper script doing the absolute most. π¦
β¨ DESCRIPTION β¨
okay so first things first π
this is HISAT2 version 2.2.1 by Daehwan Kim (infphilo@gmail.com, www.ccb.jhu.edu/people/infphilo). iconic behavior, no cap.
Usage, and yes you're gonna memorize it:
hisat2 [options]* -x <ht2-idx> {-1 <m1> -2 <m2> | -U <r>} [-S <sam>]
now let's decode the lore of every placeholder, because they all matter:
<ht2-idx>β the index filename prefix, minus the trailing.X.ht2. so just the prefix bestie, don't hand it the whole thing.<m1>β files with the #1 mates, paired up with the files in<m2>. these can be gzip'ed (extension:.gz) or bzip2'ed (extension:.bz2). π<m2>β files with the #2 mates, paired up with the files in<m1>. also can be gzip'ed (extension:.gz) or bzip2'ed (extension:.bz2).<r>β files with the unpaired reads. gzip'ed (extension:.gz) or bzip2'ed (extension:.bz2) and it's still valid, slay.<sam>β the file for SAM output (default:stdout).
and here's the trick that makes people lose their minds: <m1>, <m2>, and <r> can be comma-separated lists (no whitespace, bestie, NO whitespace) and you can specify them many times. for example:
-U file1.fq,file2.fq -U file3.fq
periodt. stack them like rings.
π OPTIONS (defaults in parentheses) π
πΈ Input
-qβ query input files are FASTQ.fq/.fastq(default). yes this is the normal one, you're probably fine.--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. yes, the actual sequence, not a filename. wild but true.-s/--skip <int>β skip the first<int>reads/pairs in the input (none).-u/--upto <int>β stop after the first<int>reads/pairs (no limit).-5/--trim5 <int>β trim<int>bases from the 5'/left end of reads (0).-3/--trim3 <int>β trim<int>bases from the 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
these are just shortcuts ok, here's what each one is the same as:
--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.
pick your fighter. π
π¦ Alignment
--bowtie2-dp <int>β use Bowtie2's dynamic programming alignment algorithm (0). the values:0is no dynamic programming,1is conditional dynamic programming, and2is unconditional dynamic programming (slowest). so like, 2 is the thorough one and it takes its time π--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). heads up bestie, it's experimental.--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 equals256) 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) or10(graph index). Note: HISAT2 is not designed with large values for-kin mind, and when aligning reads to long, repetitive genomes, large-kcould make alignment much slower.
β οΈ that last bit is real bestie β big -k on a long, repetitive genome and your alignment gets SO much slower. not the vibe.
--max-seeds <int>β HISAT2, like other aligners, uses seed-and-extend approaches. HISAT2 tries to extend seeds to full-length alignments. In HISAT2,--max-seedsis 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-seedsmay improve alignment sensitivity, but HISAT2 is not designed with large values for--max-seedsin mind, and when aligning reads to long, repetitive genomes, large--max-seedscould make alignment much slower. The default value is the maximum of5and the value that comes with-ktimes2.-a/--allβ HISAT2 reports all alignments it can find. Using the option is equivalent to using both--max-seedsand-kwith the maximum value that a 64-bit signed integer can represent (9,223,372,036,854,775,807). yeah. all of them. all the alignments. ate. π--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,-2mates 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 <path>β write unpaired reads that didn't align to<path>.--al <path>β write unpaired reads that aligned at least once to<path>.--un-conc <path>β write pairs that didn't align concordantly to<path>.--al-conc <path>β write pairs that aligned concordantly at least once to<path>.
Note: for--un,--al,--un-conc, or--al-conc, add-gzto the option name, e.g.--un-gz <path>, to gzip compress output, or add-bz2to bzip2 compress output.
--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@SQheader lines.--rg-id <text>β set read group id, reflected in@RGline andRG:Z:opt field.--rg <text>β add<text>("lab:value") to@RGline of SAM header.
Note:@RGline only printed when--rg-idis set. so don't come crying to me when your--rgdoes nothing, ok π«Ά
--omit-sec-seqβ put'*'inSEQandQUALfields 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.
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 π«Άβ¨ this was hisat2-align-s version 2.2.1, coming at you from January 2026 β go align something iconic. πππ¦
π¦ where this page comes from
- ubuntu resolute: hisat2 2.2.1-5build1 Β· GPL-3.0-or-later
- ubuntu stonking: hisat2 2.2.1-5build1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms