minimap(1)

πŸ’– minimap(1) β€” bioinformatics tools, but make it a vibe πŸ’–

okay bestie, so you know how we're always like "how do I find where these long DNA reads go"?? yeah. this is the girl. she's minimap, she lives in the Bioinformatics tools section of your manual, and she's about to become your whole personality. 🧬✨


🌸 NAME 🌸

minimap β€” fast mapping between long DNA sequences. that's it, that's the whole job, and she ATE. πŸ’…


✨ SYNOPSIS ✨

minimap [-lSOV] [-k kmer] [-w winSize] [-I batchSize] [-d dumpFile] [-f occThres] [-r bandWidth] [-m minShared] [-c minCount] [-L minMatch] [-g maxGap] [-T dustThres] [-t nThreads] [-x preset] target.fa query.fa > output.paf

like, you hand her target.fa and query.fa and she just… gives you output.paf. no notes. 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

So minimap is the tool for efficiently finding multiple approximate mapping positions between two sets of long sequences. We're talking reads vs. reference genomes, genomes vs. genomes, long noisy reads vs. each other β€” the whole squad. 🌈

She runs in two phases, and honestly both are iconic:

  1. the indexing phase β€” she collects all the minimizers of a big batch of target sequences into a hash table. yeah. a hash table. she's organized like that. πŸ‘‘
  2. the mapping phase β€” she spots the good clusters of colinear minimizer hits. πŸ”₯
IMPORTANT bestie: minimap does NOT generate detailed alignments between the target and the query sequences. she only outputs the approximate start and end coordinates of those clusters. that's the whole assignment. don't come for her about it. 😭

πŸ’œ OPTIONS πŸ’œ

πŸŽ€ Indexing options πŸŽ€

  • -k INT β€” minimizer k-mer length. default is 15. 🧚
  • -w INT β€” minimizer window size. default is 2/3 of k-mer length. a minimizer is literally just the smallest k-mer in a window of w consecutive k-mers. small but mighty. πŸ’«
  • -I NUM β€” load at most NUM target bases into RAM for indexing. default is 4G. if target.fa has more than NUM bases in it, minimap has to read query.fa multiple times to map it against each batch of target sequences. 😭 NUM may end with k/K/m/M/g/G.
  • -d FILE β€” dump the minimizer index to FILE. default is no dump. πŸ“
  • -l β€” tells her that target.fa is actually a minimizer index generated by option -d, not a FASTA or FASTQ file. plot twist! πŸ™ˆ

πŸ“ Mapping options πŸ“

  • -f FLOAT β€” ignore the top FLOAT fraction of most occurring minimizers. default 0.001. bye girl, you're too popular. πŸ’€
  • -r INT β€” approximate bandwidth for initial minimizer hits clustering. default 500. ok so: a minimizer hit is a minimizer present in both the target and query sequences. a minimizer hit cluster is a group of potentially colinear minimizer hits between a target and a query sequence. now you know. iykyk. πŸ’…
  • -m FLOAT β€” merge initial minimizer hit clusters if FLOAT or higher fraction of minimizers are shared between the clusters. default 0.5. sharing is caring fr fr. 🫢
  • -c INT β€” retain a minimizer hit cluster only if it contains INT or more minimizer hits. default 4. πŸ‘‘
  • -L INT β€” discard a minimizer hit cluster if, after colinearization, the number of matching bases is below INT. default 40. this one mainly just shrinks the output β€” it has little effect on speed or peak memory. lowkey just here to declutter. ✨
  • -g INT β€” split a minimizer hit cluster at a gap of INT bp or longer that doesn't contain any minimizer hits. default 10000. πŸ’₯
  • -T INT β€” mask regions on query sequences with SDUST score threshold INT; 0 to disable. default 0. SDUST is an algorithm to identify low-complexity subsequences, and heads up, it's not enabled by default. if you're into SDUST, a value between 20 and 25 is recommended. a higher threshold masks less sequences. 🌸
  • -S β€” perform all-vs-all mapping. in this mode: if the query sequence name is lexicographically larger than the target sequence name, the hits between them get suppressed; and if the query sequence name is the same as the target name, diagonal minimizer hits also get suppressed. 🚫
  • -O β€” drop a minimizer hit if it's far away from other hits. this one is EXPERIMENTAL (so, y'know, be chill about it). it's useful for mapping long chromosomes from two diverged species. πŸ§ͺ
  • -x STR β€” change a whole bunch of settings based on STR. default is not set. it's recommended to apply this option before the other options, so the following options can override the settings this one modifies. order matters, bestie. ⭐
    • ava10k β€” for PacBio or Oxford Nanopore all-vs-all read mapping: -Sw5 -L100 -m0.

🧚 Input/output options 🧚

  • -t INT β€” number of threads. default 3. minimap uses at most three threads when collecting minimizers on target sequences, and uses up to INT+1 threads when mapping β€” that extra thread is for I/O, which is frequently idle and takes little CPU time. she's not slacking, she's waiting. 😌
  • -V β€” print the version number to stdout. πŸ“’

🌈 OUTPUT FORMAT 🌈

minimap outputs mapping positions in the Pairwise mApping Format (PAF). PAF is a TAB-delimited text format where each line has at least 12 fields, and here's the rundown, column by column:

  1. Col 1 β€” type string β€” query sequence name.
  2. Col 2 β€” type int β€” query sequence length.
  3. Col 3 β€” type int β€” query start coordinate (0-based).
  4. Col 4 β€” type int β€” query end coordinate (0-based).
  5. Col 5 β€” type char β€” '+' if query and target are on the same strand; '-' if opposite.
  6. Col 6 β€” type string β€” target sequence name.
  7. Col 7 β€” type int β€” target sequence length.
  8. Col 8 β€” type int β€” target start coordinate on the original strand.
  9. Col 9 β€” type int β€” target end coordinate on the original strand.
  10. Col 10 β€” type int β€” number of matching bases in the mapping.
  11. Col 11 β€” type int β€” number of bases, including gaps, in the mapping.
  12. Col 12 β€” type int β€” mapping quality (0-255, with 255 for missing).

When the alignment is available, column 11 gives the total number of sequence matches, mismatches and gaps in the alignment, and column 10 divided by column 11 gives the alignment identity. but because minimap does not generate detailed alignment, these two columns are approximate β€” they're vibes, gorgeous, not receipts. πŸ’…

PAF may optionally have additional fields in the SAM-like typed key-value format. minimap writes the number of minimizer hits in a cluster to the cm tag. 🏷️


πŸ‘‘ SEE ALSO πŸ‘‘

  • miniasm(1) β€” go read her too, she's the bestie. 🫢

and that's the whole page, periodt. πŸ’–

this cutie is minimap-0.2, dated 06 December 2015 β€” yeah she's an old soul but she's still slaying, bye bestie, go map something πŸ§¬βœ¨πŸ’…

πŸ“¦ where this page comes from