MM2-FAST-это ускоренная реализация Minimap2 на современных процессорах. MM2-FAST ускоряет все три основных модуля Minimap2: (a) посева, (b) цепочек и (c) парного выравнивания, достигая до 1,8x ускорения с использованием AVX512 по сравнению с Minimap2. MM2-FAST-это замена MINAMAP2, обеспечивающая такую же функциональность с одинаковым выходом. В текущей версии все модули оптимизированы с использованием векторизации AVX-512 и AVX2 . Подробные эталонные результаты доступны в нашей публикации в природе вычислительной науки (https://www.nature.com/articles/s43588-022-00201-8).
Операционная система: Linux
MM2-FAST был протестирован с использованием G ++ (GCC) 9.2.0 и ICPC версии 19.1.3.304
Архитектура: x86_64 процессоры с AVX512, AVX2
Требование к памяти: ~ 30 ГБ для генома человека
Клонировать MM2-Fast GitHub Repo. Исходный код может быть скомпилирован с помощью команды Make . Это занимает всего несколько секунд.
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast
make
Использование MM2-FAST совпадает с минимальным. Вот пример отображения чтения ONT с помощью тестовых данных.
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa > mm2-fast_output
Поскольку эта версия MM2-FAST является ускоренной версией Minimap2-V2.24, выход MM2-FAST может быть проверена на Minimap2-V2.24. Обратите внимание, что оптимизированная цепочка в MM2-FAST строго необходимо запустить с цепочкой параметра Max-Chain-SKIP = бесконечность . Обратите внимание, что наличие параметра максимальной цепь-kkip = бесконечность приводит к более высокой точке цепочки. Следовательно, для проверки правильности, Minimap2 должен работать с большим значением параметра максимальной цепь . Следуйте приведенным ниже шагам, чтобы проверить точность MM2-FAST.
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast && make
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa --max-chain-skip=1000000 > mm2-fast_output
git clone https://github.com/lh3/minimap2.git -b v2.24
cd minimap2 && make
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa --max-chain-skip=1000000 > minimap2_output
Выход, сгенерированный Minimap2 и MM2-FAST, должен соответствовать.
diff minimap2_output mm2-fast_output > diff_result
Файл diff_result
должен быть пустым, что означает разницу в 0 строк.
Компиляция по умолчанию с использованием Make применяет две оптимизации: векторизованная цепочка и выравнивание последовательности. Посев на основе обученных индексов отключается по умолчанию, так как требуется доступность ржавчины. Это связано с тем, что ученый хешат использует внешнюю тренировочную библиотеку, которая работает на ржавчине. Rust тривиальна для установки, см. Https://rustup.rs/ и добавить свой путь к файлу .bashrc. Установка ржавчины занимает всего несколько секунд. Ниже приведены шаги, чтобы включить обученную оптимизацию хэш-таблицы в MM2-FAST:
# Start by building learned hash table index for optimized seeding module
cd mm2-fast
source build_rmi.sh # #build binaries for creating index.
./create_index_rmi.sh test/MT-human.fa map-ont # #Takes two arguments: 1. path-to-reference-seq-file 2. preset.
# #For human genome, this step should take around 2-3 minutes to finish.
# Next, compile and run the mapping phase
make clean && make lhash=1
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa > mm2-fast-lhash_output
Чтобы составить MM2-FAST со всеми оптимизациями, выключенными и переключитесь на Minimap2 по умолчанию, используйте следующую команду во время компиляции. Это может быть полезно для отладки.
make clean && make no_opt=1
# to use test data, download github repository
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git
cd mm2-fast
# build Docker image
docker build -f Dockerfile -t mm2-fast:latest .
# minimap2 baseline
docker run -v $PWD /test:/test mm2-fast:latest /baseline/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > minimap2_baseline
# mm2-fast
docker run -v $PWD /test:/test mm2-fast:latest /mm2fast/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > mm2fast
# mm2-fast Advanced Options
# create index
# docker run -v $PWD/test:/test mm2-fast:latest bash /mm2-fast/create_index_rmi.sh /test/MT-human.fa <>
# <> can be map-hifi,map-ont,map-pb,asm5,asm20 depending upon your usecase
# example
docker run -v $PWD /test:/test mm2-fast:latest bash /mm2-fast/create_index_rmi.sh /test/MT-human.fa map-ont
# mapping
# docker run -v $PWD/test:/test mm2-fast:latest /lisa/mm2-fast/minimap2 -ax <> /test/MT-human.fa /test/MT-orang.fa > mm2fast_lisa
# <> can be map-hifi,map-ont,map-pb,asm5,asm20 depending upon your usecase
# example
docker run -v $PWD /test:/test mm2-fast:latest /lisa/mm2-fast/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > mm2fast_lisa
Мы наблюдали до 1,8x ускорения по наборам данных (пожалуйста, обратитесь к статье для получения более подробной информации). Например, для случайно отобранных чтений 100K из «hg002_gm24385_1_2_3_guppy_3.6.0_prom.fastq.gz», Minimap2 занимает 92 секунды, в то время как MM2-Fast требует 54 секунды, чтобы отобразить человеческий геном на 28 Cores® Xeon® Platinum 8280 CPUS CPU Полем Наши выбранные наборы данных с чтениями 100 тыс. Считаются здесь.
Ускорение Minimap2 для длинно читаемых приложений секвенирования на современных процессорах. Саураб Каликар, Чираг Джайн, Васимуддин М.Д., Санчит Мисра. Nat Comput Sci 2, 78–83 (2022). https://doi.org/10.1038/S43588-022-00201-8
Оригинальное содержание readme minimap2 следует.
git clone https://github.com/lh3/minimap2
cd minimap2 && make
# long sequences against a reference genome
./minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam
# create an index first and then map
./minimap2 -x map-ont -d MT-human-ont.mmi test/MT-human.fa
./minimap2 -a MT-human-ont.mmi test/MT-orang.fa > test.sam
# use presets (no test data)
./minimap2 -ax map-pb ref.fa pacbio.fq.gz > aln.sam # PacBio CLR genomic reads
./minimap2 -ax map-ont ref.fa ont.fq.gz > aln.sam # Oxford Nanopore genomic reads
./minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.19 or later)
./minimap2 -ax asm20 ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.18 or earlier)
./minimap2 -ax sr ref.fa read1.fa read2.fa > aln.sam # short genomic paired-end reads
./minimap2 -ax splice ref.fa rna-reads.fa > aln.sam # spliced long reads (strand unknown)
./minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam # noisy Nanopore Direct RNA-seq
./minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam # Final PacBio Iso-seq or traditional cDNA
./minimap2 -ax splice --junc-bed anno.bed12 ref.fa query.fa > aln.sam # prioritize on annotated junctions
./minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf # intra-species asm-to-asm alignment
./minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf # PacBio read overlap
./minimap2 -x ava-ont reads.fa reads.fa > overlaps.paf # Nanopore read overlap
# man page for detailed command line options
man ./minimap2.1
Minimap2 - это универсальная программа выравнивания последовательности, которая выравнивает последовательности ДНК или мРНК с большой эталонной базой данных. Типичные варианты использования включают в себя: (1) картирование Pacbio или Oxford Nanopore Genomic чтения к геному человека; (2) поиск перекрытий между длинными чтениями с частотой ошибок до ~ 15%; (3) выравнивание сплайсинговой кДНК Pacbio Iso-seq или нанопор или прямой РНК считывается против эталонного генома; (4) выравнивание считываний Illumina с одним или парным концом; (5) выравнивание сборки к сборке; (6) Выравнивание полного генома между двумя близкородственными видами с дивергенцией ниже ~ 15%.
Для последовательностей ~ 10 КБ с чтениями считывается, Minimap2 составляет десятки раз быстрее, чем основные давно читатели, такие как Blasr, BWA-Mem, NGMLR и GMAP. Это более точное при смоделированных длинных чтениях и создает биологически значимое выравнивание, готовое к последующему анализу. Для> 100bp illumina short считывает, Minimap2 в три раза быстрее, чем BWA-Mem и Bowtie2, и как и точный для моделируемых данных. Подробные оценки доступны из Minimap2 Paper или Preprint.
Minimap2 оптимизирован для процессоров x86-64. Вы можете приобрести предварительно скомпилированные двоичные файлы со страницы релиза:
curl -L https://github.com/lh3/minimap2/releases/download/v2.24/minimap2-2.24_x64-linux.tar.bz2 | tar -jxvf -
./minimap2-2.24_x64-linux/minimap2
Если вы хотите скомпилировать из источника, вам необходимо установить компилятор C, GNU Make и файлы разработки Zlib. Затем make
в каталог исходного кода для компиляции. Если вы видите ошибки компиляции, попробуйте make sse2only=1
, чтобы отключить код SSE4, что сделает минимум немного медленнее.
Minimap2 также работает с процессорами ARM, поддерживающим неоновые наборы инструкций. Для компиляции для 32 -битных архитектур ARM (например, ARMV7) используйте make arm_neon=1
. Для компиляции для 64 -битных архитектур ARM (например, ARMV8) используйте make arm_neon=1 aarch64=1
.
Minimap2 может использовать библиотеку SIMD везде (SIMDE) для переноса реализации в различные наборы инструкций SIMD. Чтобы компилировать с помощью Simde, используйте make -f Makefile.simde
. Для компиляции для процессоров ARM используйте Makefile.simde
с командными линиями, связанными с рукой, приведенными выше.
Без каких-либо вариантов Minimap2 принимает эталонную базу данных и файл последовательности запросов в качестве ввода и создает приблизительное отображение без выравнивания уровня базового уровня (т.е. координаты являются только приблизительными и нет сигары в выводе), в формате PAF:
minimap2 ref.fa query.fq > approx-mapping.paf
Вы можете попросить Minimap2 генерировать сигару на теге cg
PAF с:
minimap2 -c ref.fa query.fq > alignment.paf
или для выравнивания в формате SAM:
minimap2 -a ref.fa query.fq > alignment.sam
Minimap2 плавно работает с форматами Gzip'd Fasta и FastQ в качестве входных данных. Вам не нужно сначала конвертировать между FASTA и FASTQ или Decompress GZIP'D -файлами.
Для человеческого эталонного генома Minimap2 занимает несколько минут, чтобы генерировать индекс министерства для ссылки перед отображением. Чтобы сократить время индексации, вы можете при желании сохранить индекс с опцией -d и заменить файл эталонного последовательности на файл индекса в командной строке Minimap2:
minimap2 -d ref.mmi ref.fa # indexing
minimap2 -a ref.mmi reads.fq > alignment.sam # alignment
Важно отметить, что после того, как вы строите индекс, параметры индексации, такие как -k , -w , -h и -i, нельзя изменить во время картирования. Если вы запускаете Minimap2 для разных типов данных, вам, вероятно, потребуется сохранить несколько индексов, сгенерированных с различными параметрами. Это отличает Minimap2 от BWA, который всегда использует один и тот же индекс независимо от типов запросов.
Minimap2 использует один и тот же базовый алгоритм для всех приложений. Тем не менее, из -за различных типов данных, которые он поддерживает (например, короткие против длинных чтений; ДНК против мРНК чтения), минимализируется, необходимо настроить для оптимальной производительности и точности. Обычно рекомендуется выбрать предустановку с опцией -x , который устанавливает несколько параметров одновременно. Настройка по умолчанию такая же, как map-ont
.
minimap2 -ax map-pb ref.fa pacbio-reads.fq > aln.sam # for PacBio CLR reads
minimap2 -ax map-ont ref.fa ont-reads.fq > aln.sam # for Oxford Nanopore reads
Разница между map-pb
и map-ont
состоит в том, что map-pb
использует минимизаторы гомополимера (HPC) в качестве семян, в то время как map-ont
использует обычные минимизаторы в качестве семян. Императивная оценка предполагает, что минимализаторы HPC улучшают производительность и чувствительность, когда выровняет Pacbio CLR, но пострадает при выравнивании Nanopore.
minimap2 -ax splice:hq -uf ref.fa iso-seq.fq > aln.sam # PacBio Iso-seq/traditional cDNA
minimap2 -ax splice ref.fa nanopore-cdna.fa > aln.sam # Nanopore 2D cDNA-seq
minimap2 -ax splice -uf -k14 ref.fa direct-rna.fq > aln.sam # Nanopore Direct RNA-seq
minimap2 -ax splice --splice-flank=no SIRV.fa SIRV-seq.fa # mapping against SIRV control
Существуют различные технологии RNA-Seq RNA-Seq, в том числе традиционная полноразмерная кДНК, EST, Pacbio iso-seq, нанопора 2D кДНК-seq и Direct RNA-seq. Они производят данные различного качества и свойств. По умолчанию -x splice
предполагает, что ориентация чтения относительно цепи транскрипта неизвестна. Он пытается вывести два раунда выравнивания, чтобы сделать вывод ориентации и написать прядь к тегу ts
SAM/PAF, если это возможно. Для Iso-seq, прямых RNA-seq и традиционных полноразмерных кДНК, желательно применить -uf
для заставления Minimap2 для рассмотрения только прямой транскрипта. Это ускоряет выравнивание с небольшим улучшением до точности. Для чтения Nanopore Direct RNA-seq рекомендуется использовать меньший размер K-MER для повышения чувствительности к первым или последним экзонами.
Minimap2 оценивает выравнивание по оценке подсегмента MAX, исключая интроны, и отмечает наилучшее выравнивание как первичное в SAM. Когда сплайсированный ген также не имеет псевдогена, Minimap2 не преднамеренно предпочитает выравнивание сплайсированного, хотя на практике это чаще отмечает выравнивание сращивания как первичное. По умолчанию Minimap2 выводит до пяти вторичных выравниваний (то есть, вероятно, псевдогена в контексте картирования RNA-seq). Это можно настроить с опцией -n .
Для длинных чтения РНК -seq Minimap2 может привести к химерным выравниваниям, потенциально вызванным слияниями генов/структурными изменениями или интроном длиннее максимальной длины интрона -G (200 тысяч по умолчанию). На данный момент не рекомендуется применять чрезмерно большой -G, поскольку это замедляет минимум, а иногда приводит к ложным выравниваниям.
Стоит отметить, что по умолчанию -x splice
предпочитает gt [a/g] .. [c/t] Ag над GT [C/T] .. [A/G] Ag, а затем над другими сигналами сплайсинга. Учитывая, что одна дополнительная база повышает точность соединения для шумных чтений, но снижает точность при выравнивании по сравнению с широко используемыми управляющими данными SIRV. Это связано с тем, что SIRV не соблюдает эволюционно консервативный сигнал сплайсинга. Если вы изучаете SIRV, вы можете применить --splice-flank=no
чтобы позволить Minimap2 только модели gt..ag, игнорируя дополнительную базу.
С момента v2.17 Minimap2 может при желании принимать аннотированные гены в качестве входных данных и расставлять приоритеты на аннотированных соединениях сплайсинга. Чтобы использовать эту функцию, вы можете
paftools.js gff2bed anno.gff > anno.bed
minimap2 -ax splice --junc-bed anno.bed ref.fa query.fa > aln.sam
Здесь anno.gff
является аннотацией гена в формате GTF или GFF3 ( gff2bed
автоматически проверяет формат). Выход gff2bed
находится в формате 12-колонны или в формате Bed12. С опцией --junc-bed
Minimap2 добавляет бонусную оценку (настроенный --junc-bonus
), если выровненное соединение соответствует соединению в аннотации. Вариант --junc-bed
также принимает 5-колонную кровать, включая поле Strand. В этом случае каждая строка указывает ориентированное соединение.
minimap2 -x ava-pb reads.fq reads.fq > ovlp.paf # PacBio CLR read overlap
minimap2 -x ava-ont reads.fq reads.fq > ovlp.paf # Oxford Nanopore read overlap
Аналогичным образом, ava-pb
использует минимализаторы HPC, в то время как ava-ont
использует обычные минимизаторы. Обычно не рекомендуется выполнять выравнивание на уровне базового уровня в режиме перекрытия, потому что оно медленно и может создавать ложные положительные перекрытия. Однако, если производительность не является проблемой, вы можете попытаться добавить -a
или -c
в любом случае.
minimap2 -ax sr ref.fa reads-se.fq > aln.sam # single-end alignment
minimap2 -ax sr ref.fa read1.fq read2.fq > aln.sam # paired-end alignment
minimap2 -ax sr ref.fa reads-interleaved.fq > aln.sam # paired-end alignment
Когда указаны два файла чтения, Minimap2 считывает из каждого файла по очереди и объединяет их в переоцененный поток внутри. Два чтения считаются спаренными, если они прилегают к входному потоку и имеют одинаковое имя (с суффиксом /[0-9]
обрезанным, если присутствует). Одно- и парные чтения могут быть смешаны.
Minimap2 не очень хорошо работает с короткими сплайсированными чтениями. Есть много способных RNA-Seq Mappers для коротких чтений.
minimap2 -ax asm5 ref.fa asm.fa > aln.sam # assembly to assembly/ref alignment
Для перекрестных видов выравнивания полного генома система оценки должна быть настроена в соответствии с дивергенцией последовательностей.
Из -за недостатка дизайна BAM не работает с сигарными струнами с> 65535 операциями (SAM и CHAM WORK). Тем не менее, для сверхпрочного нанопора считывает минимальное значение, может выровнять ~ 1% считывающих баз с длинными сигарами за пределами возможностей BAM. Если вы конвертируете такой SAM/CRAM в BAM, Picard и недавние Samtools принесут ошибку и прерван. Старые Samtools и другие инструменты могут создать поврежденную BAM.
Чтобы избежать этой проблемы, вы можете добавить опцию -L
в командной строке Minimap2. Этот вариант перемещает длинную сигару к метке CG
и оставляет полностью обрезанную сигару на колонке SAM. Текущие инструменты, которые не читают сигару (например, слияние и сортировку), все еще работают с такими записями BAM; Инструменты, которые читают сигару, эффективно игнорируют эти записи. Было решено, что будущие инструменты будут плавно распознавать долгосрочные записи, сгенерированные опцией -L
.
TL; DR : Если вы работаете с сверхпроживаемыми чтениями и используете инструменты, которые обрабатывают только файлы BAM, добавьте опцию -L
.
Тэг cs
SAM/PAF кодирует базы при несоответствиях и инделе. Он соответствует регулярному выражению /(:[0-9]+|*[az][az]|[=+-][A-Za-z]+)+/
. Как и сигара, cs
состоит из серии операций. Каждый ведущий символ указывает операцию; Следующая последовательность является той, которая участвует в операции.
Тег cs
включен опцией командной строки --cs
. Например, следующее выравнивание:
CGATCGATAAATAGAGTAG---GAATAGCA
|| |||| |||||||||| |||| || |
CGATCG---AATAGAGTAGGTCGAATtGCA
представлен как :6-ata:10+gtc:4*at:3
, где :[0-9]+
представляет собой идентичный блок, -ata
представляет собой делецию, +gtc
Вставка и *at
указывает на эталонная база a
заменяет С базой запроса t
. Он похож на метку MD
SAM, но является автономным и легче проанализировать.
If --cs=long
используется, строка cs
также содержит идентичные последовательности в выравнивании. Приведенный выше пример станет =CGATCG-ata=AATAGAGTAG+gtc=GAAT*at=GCA
. Длинная форма cs
кодирует как ссылки, так и последовательности запросов в одной строке. Тэг cs
также кодирует позиции интронов и сигналы сплайсинга (подробности см. В Minimap2 INSPAGE).
Minimap2 также поставляется с сценарием (Java) paftools.js, который обрабатывает выравнивания в формате PAF. Он вызывает варианты от выравнивания сборки до ссылки, поднимает по файлам кроватей на основе выравнивания, преобразует форматы и предоставляет утилиты для различных оценок. Для получения подробной информации см. Misc/readme.md.
Далее, параметры командной строки Minimap2 впереди и выделены жирным шрифтом. Описание может помочь настроить параметры Minimap2.
Читать -i [= 4G ] Справочные базы, экстракт ( -k , -w ) -minimizers и индексируйте их в хэш -таблице.
Читать -K [= 200 м ] Базы запросов. Для каждой последовательности запроса выполните шаг с 3 по 7:
Для каждого ( -K , -W ) -Minimizer на запросе проверяйте справочный индекс. Если эталонный минимизатор не входит в число наиболее частых в верхней -ф [= 2E -4 ], собирайте его входы в ссылке, которые называются семенами .
Сортировать семена по положению в ссылке. Цепьте их динамическим программированием. Каждая цепь представляет потенциальное отображение. Для перекрытия чтения сообщите о всех цепях, а затем перейдите к шагу 8. Для справочного отображения сделайте шаг с 5 по 7:
Пусть P - набор первичных отображений, который первоначально является пустым набором. Для каждой цепи от лучшей до худшего в соответствии с их оценками цепочки: если по запросу цепь перекрывается с цепью в p от -маски [= 0,5 ] или более высокой доли более короткой цепи, отметьте цепь как вторичный по отношению к цепи в P ; В противном случае добавьте цепь в p .
Сохранить все первичные отображения. Также сохраняют до -n [= 5 ] верхние вторичные отображения, если их оценки цепочки выше -p [= 0,8 ] их соответствующих первичных отображений.
Если запрашивается выравнивание, отфильтруйте внутреннее семя, если оно потенциально приводит как к длинной вставке, так и к длинному удалению. Простирайтесь от самого левого семени. Выполнить глобальные выравнивания между внутренними семенами. Разделите цепь, если аккумулятивный балл вдоль глобального выравнивания падает на -Z [= 400 ], игнорируя длинные пробелы. Простирайтесь от самого правого семени. Выходные цепочки и их выравнивания.
Если на входе больше последовательностей запросов, перейдите к шагу 2, пока не останется больше запросов.
Если есть больше эталонных последовательностей, откройте файл запроса с начала и перейдите к шагу 1; В противном случае остановитесь.
Manpage Minimap2.1 предоставляет подробное описание параметров командной строки Minimap2 и дополнительных тегов. Страница часто задаваемых вопросов отвечает на несколько часто задаваемых вопросов. Если вы сталкиваетесь с ошибками или у вас есть дополнительные вопросы или запросы, вы можете поднять проблему на странице выпуска. На данный момент нет конкретного списка рассылки.
Если вы используете Minimap2 в своей работе, пожалуйста, укажите:
Ли Х. (2018). Минимальный: парное выравнивание для нуклеотидных последовательностей. Биоинформатика , 34 : 3094-3100. doi: 10.1093/bioinformatics/bty191
и/или:
Ли Х. (2021). Новые стратегии для повышения точности выравнивания Minimap2. Биоинформатика , 37 : 4572-4574. doi: 10.1093/bioinformatics/btab705
Minimap2 - это не только инструмент командной строки, но и библиотека программирования. Он обеспечивает API C для построения/индекса нагрузки и для выравнивания последовательностей против индекса. File example.c демонстрирует типичное использование C API. Файл заголовка Minimap.h дает более подробную документацию API. Minimap2 стремится сохранить API в этой конюшне заголовка. Файл mmpriv.h содержит дополнительные частные API, которые могут часто подвергаться изменениям.
Этот репозиторий также обеспечивает привязки Python с подмножеством C API. File python/readme.rst дает полную документацию; Python/Minimap2.py показывает пример. Это расширение Python, Mappy, также доступно от PYPI через pip install mappy
или от BioConda через conda install -c bioconda mappy
.
Минимальный 2 может производить неоптимальные выравнивания через длинные области низкой комплексности, где положения семян могут быть неоптимальными. Это не должно быть большой проблемой, потому что даже оптимальное выравнивание может быть неверным в таких регионах.
Minimap2 требует инструкций SSE2 на процессорах X86 или Neon на процессорах ARM. Можно добавить не-SIMD-поддержку, но она сделает минимум медленнее в несколько раз.
Minimap2 не работает с одной последовательности запроса или базы данных ~ 2 миллиарда оснований или дольше (2147 483 647, если быть точным). Общая длина всех последовательностей может хорошо превышать этот порог.
Минимальный 2 часто пропускает небольшие экзоны.