NGMLR(1)

πŸ“¦ version 0.2.7+git20210816.a2a31fb, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu resolute, ubuntu stonking

🌸 NGMLR(1) 🌸

okay bestie, welcome to the manual page for ngmlr β€” short for CoNvex Gap-cost alignMents for Long Reads β€” and yes, the capitalization is chaotic, we love that for it πŸ’…


✨ NAME ✨

ngmlr β€” CoNvex Gap-cost alignMents for Long Reads. that's the whole vibe. long reads go in, beautiful alignments come out πŸ¦‹


✨ SYNOPSIS ✨

ngmlr [options] -r <reference> -q <reads> [-o <output>]

✨ DESCRIPTION ✨

so like, ngmlr is a long-read mapper, and it was built with one goal: align PacBio or Oxford Nanopore reads to (large) reference genomes sensitively. not just "eh, close enough" sensitive β€” like, actually sensitive. it handles reads that span (complex) structural variations, and it does it quickly and correctly, which is the combo we're all chasing, no cap.

how does it pull that off? two-step glow-up ✨:

  1. an SV aware k-mer search to find approximate mapping locations for a read β€” like a vibe check for where the read probably belongs
  2. a banded Smith-Waterman alignment algorithm to compute the final alignment β€” the actual main character moment

and then there's the convex gap cost model, which is the iconique part: it penalizes gap extensions for longer gaps less than for shorter ones. that's how you get precise alignments, periodt. πŸ’–


✨ OPTIONS ✨

πŸ’Œ Input/Output:

  • -r <file>, --reference <file> β€” (required) so this one is not optional, bestie, don't come to the function without it. it's the path to the reference genome, in FASTA/Q, and yes it can be gzipped πŸŽ€
  • -q <file>, --query <file> β€” path to the read file, in FASTA/Q. default is [/dev/stdin] if you don't say anything 🌸
  • -o <string>, --output <string> β€” adds RG:Z:<string> to all alignments in SAM/BAM. default [none]
  • --skip-write β€” don't write the reference index to disk. default [false]
  • --bam-fix β€” report reads with > 64k CIGAR operations as unmapped. required to be compatible with the BAM format, so like, if you're going to BAM, this matters. default [false]
  • --rg-id <string> β€” adds RG:Z:<string> to all alignments in SAM/BAM. default [none]
  • --rg-sm <string> β€” RG header: Sample. default [none]
  • --rg-lb <string> β€” RG header: Library. default [none]
  • --rg-pl <string> β€” RG header: Platform. default [none]
  • --rg-ds <string> β€” RG header: Description. default [none]
  • --rg-dt <string> β€” RG header: Date (format: YYYY-MM-DD). default [none]
  • --rg-pu <string> β€” RG header: Platform unit. default [none]
  • --rg-pi <string> β€” RG header: Median insert size. default [none]
  • --rg-pg <string> β€” RG header: Programs. default [none]
  • --rg-cn <string> β€” RG header: sequencing center. default [none]
  • --rg-fo <string> β€” RG header: Flow order. default [none]
  • --rg-ks <string> β€” RG header: Key sequence. default [none]
🫢 that's the full RG header glow-up set β€” go off and fill in all of them if you're feeling thorough.

🌈 General:

  • -t <int>, --threads <int> β€” number of threads. default [1]. turn it up, your CPU is literally begging πŸ“ˆ
  • -x <pacbio, ont>, --presets <pacbio, ont> β€” parameter presets for different sequencing technologies. default [pacbio]
  • -i <0-1>, --min-identity <0-1> β€” alignments with an identity lower than this threshold will be discarded. default [0.65]. it's giving "if you're not at least this good, you're not coming in" πŸ’€
  • -R <int/float>, --min-residues <int/float> β€” alignments containing less than <int> residues, or less than (<float> * read length) residues, will be discarded. default [0.25]
  • --no-smallinv β€” don't detect small inversions. default [false]
  • --no-lowqualitysplit β€” split alignments with poor quality. default [false]
  • --verbose β€” debug output. default [false]
  • --no-progress β€” don't print progress info while mapping. default [false]

πŸ”₯ Advanced:

  • --match <float> β€” match score. default [2]
  • --mismatch <float> β€” mismatch score. default [-5]
  • --gap-open <float> β€” gap open score. default [-5]
  • --gap-extend-max <float> β€” gap open extend max. default [-5]
  • --gap-extend-min <float> β€” gap open extend min. default [-1]
  • --gap-decay <float> β€” gap extend decay. default [0.15]
  • -k <10-15>, --kmer-length <10-15> β€” k-mer length in bases. default [13]
  • --kmer-skip <int> β€” number of k-mers to skip when building the lookup table from the reference. default [2]
  • --bin-size <int> β€” sets the size of the grid used during candidate search. default [4]
  • --max-segments <int> β€” max number of segments allowed for a read per kb. default [1]
  • --subread-length <int> β€” length of fragments reads are split into. default [256]
  • --subread-corridor <int> β€” length of corridor sub-reads are aligned with. default [40]
⚠️ these are the knobs you turn after you already know what you're doing, bestie. the defaults are cute for a reason.

✨ AUTHOR ✨

this manpage was written by Nilesh Patra for the Debian distribution and can be used for any other usage of the program. 🫢


and that's the whole page, bestie!! you're now officially ngmlr-literate πŸ’…βœ¨

this was ngmlr version 0.2.7, dated June 2020, living in section NGMLR(1) of the manual. go align something gorgeous, ily πŸŒΈπŸ’–πŸ¦‹