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

minimap2を高速化した mm2-fast






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