HTS (NGS) 関連のインフォマティクス情報についてまとめています。

minimap2を高速化した mm2-fast

2022/06/14 ツイート追加








mm2-fast は minimap2 を最新の CPU 上で加速して実装したものです。mm2-fast は minimap2 の 3 つの主要なモジュール、(a) seeding, (b) chaining, (c) pairwise alignment をすべて加速し、minimap2-v2.18に比べて最大 3.5 倍のスピードアップを実現します。現在のバージョンでは、すべてのモジュールがAVX-512ベクトル化によって最適化されています。ベンチマークの詳細な結果は、我々のプレプリントに掲載されています。




  • Operating System: Linux
  • mm2-fast was tested using g++ (GCC) 9.2.0 and icpc version
  • Architecture: x86_64 CPUs with AVX512
  • Memory requirement: ~30GB for human genome


git clone --recursive -b fast-contrib mm2-fast 
cd mm2-fast/

## Enable optimized seeding and AVX2 based alignment for AVX2 systems
make clean && make -j

> ./minimap2 

$ ./minimap2

Using default hash lookup.

Using default chaining.

Using default SSE-vectorized alignment.

Usage: minimap2 [options] <target.fa>|<target.idx> [query.fa] [...]



-H use homopolymer-compressed k-mer (preferrable for PacBio)

-k INT k-mer size (no larger than 28) [15]

-w INT minimizer window size [10]

-I NUM split index for every ~NUM input bases [4G]

-d FILE dump index to FILE


-f FLOAT filter out top FLOAT fraction of repetitive minimizers [0.0002]

-g NUM stop chain enlongation if there are no minimizers in INT-bp [5000]

-G NUM max intron length (effective with -xsplice; changing -r) [200k]

-F NUM max fragment length (effective with -xsr or in the fragment mode) [800]

-r NUM bandwidth used in chaining and DP-based alignment [500]

-n INT minimal number of minimizers on a chain [3]

-m INT minimal chaining score (matching bases minus log gap penalty) [40]

-X skip self and dual mappings (for the all-vs-all mode)

-p FLOAT min secondary-to-primary score ratio [0.8]

-N INT retain at most INT secondary alignments [5]


-A INT matching score [2]

-B INT mismatch penalty [4]

-O INT[,INT] gap open penalty [4,24]

-E INT[,INT] gap extension penalty; a k-long gap costs min{O1+k*E1,O2+k*E2} [2,1]

-z INT[,INT] Z-drop score and inversion Z-drop score [400,200]

-s INT minimal peak DP alignment score [80]

-u CHAR how to find GT-AG. f:transcript strand, b:both strands, n:don't match GT-AG [n]


-a output in the SAM format (PAF by default)

-o FILE output alignments to FILE [stdout]

-L write CIGAR with >65535 ops at the CG tag

-R STR SAM read group line in a format like '@RG\tID:foo\tSM:bar'

-c output CIGAR in PAF

--cs[=STR] output the cs tag; STR is 'short' (if absent) or 'long' [none]

--MD output the MD tag

--eqx write =/X CIGAR operators

-Y use soft clipping for supplementary alignments

-t INT number of threads [3]

-K NUM minibatch size for mapping [500M]

--version show version number


-x STR preset (always applied before other options; see minimap2.1 for details) []

- map-pb/map-ont - PacBio/Nanopore vs reference mapping

- ava-pb/ava-ont - PacBio/Nanopore read overlap

- asm5/asm10/asm20 - asm-to-ref mapping, for ~0.1/1/5% sequence divergence

- splice/splice:hq - long-read/Pacbio-CCS spliced alignment

- sr - genomic short-read mapping


See `man ./minimap2.1' for detailed description of these and other advanced command-line options.




./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa --max-chain-skip=1000000 > minimap2_output




Accelerating long-read analysis on modern CPUs
Saurabh Kalikar, Chirag Jain, Vasimuddin Md, Sanchit Misra

bioRxiv, Posted July 23, 2021


Accelerating minimap2 for long-read sequencing applications on modern CPUs
Saurabh Kalikar, Chirag Jain, Md Vasimuddin & Sanchit Misra 
Nature Computational Science volume 2, pages78–83 (2022)