MM2-FAST adalah implementasi minimap2 yang dipercepat pada CPU modern. MM2-Fast mempercepat semua tiga modul utama minimap2: (a) penyemaian, (b) rantai, dan (c) penyelarasan berpasangan, mencapai kecepatan 1,8x menggunakan AVX512 lebih dari minimap2. MM2-FAST adalah penggantian drop-in minimap2, memberikan fungsionalitas yang sama dengan output yang sama persis. Dalam versi saat ini, semua modul dioptimalkan menggunakan vektorisasi AVX-512 dan AVX2 . Hasil benchmark terperinci tersedia dalam publikasi kami di Nature Computational Science (https://www.nature.com/articles/s43588-022-00201-8).
Sistem Operasi: Linux
MM2-FAST diuji menggunakan G ++ (GCC) 9.2.0 dan ICPC Versi 19.1.3.304
Arsitektur: X86_64 CPU dengan AVX512, AVX2
Persyaratan Memori: ~ 30GB untuk genom manusia
Klone repo github cepat MM2 . Kode sumber dapat dikompilasi dengan menggunakan perintah Make . Hanya butuh beberapa detik.
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast
make
Penggunaan MM2-Fast sama dengan minimap2. Berikut adalah contoh pemetaan ONT dibaca dengan data uji.
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa > mm2-fast_output
Karena verion MM2-FAST ini adalah versi yang dipercepat dari minimap2-v2.24, output MM2-FAST dapat diverifikasi terhadap minimap2-v2.24. Perhatikan bahwa rantai yang dioptimalkan di MM2-FAST secara ketat harus dijalankan dengan parameter rantai max-rantai-skip = tak terhingga . Perhatikan bahwa memiliki parameter max-chain-skip = Infinity menyebabkan presisi rantai yang lebih tinggi. Oleh karena itu, untuk verifikasi kebenaran, minimap2 harus dijalankan dengan nilai yang lebih besar dari parameter max-chain-skip . Ikuti langkah-langkah di bawah ini untuk memverifikasi keakuratan 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
Output yang dihasilkan oleh minimap2 dan mm2-fast harus cocok.
diff minimap2_output mm2-fast_output > diff_result
File diff_result
harus kosong, yang berarti perbedaan 0 baris.
Kompilasi default menggunakan Make menerapkan dua optimisasi: rantai dan penyelarasan urutan yang divektor. Bibit berbasis indeks yang dipelajari dinonaktifkan secara default karena membutuhkan ketersediaan karat. Ini karena tabel hash yang dipelajari menggunakan perpustakaan pelatihan eksternal yang berjalan pada karat. Rust sepele untuk diinstal, lihat https://rustup.rs/ dan tambahkan jalurnya ke file .bashrc. Instalasi karat hanya membutuhkan beberapa detik. Berikut ini adalah langkah-langkah untuk mengaktifkan optimasi tabel hash terpelajar di 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
Untuk mengkompilasi MM2-Fast dengan semua optimisasi dimatikan dan beralih kembali ke minimap2 default, gunakan perintah berikut selama kompilasi. Ini bisa berguna untuk debugging.
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
Kami telah mengamati hingga 1,8x speedup di seluruh dataset (silakan merujuk ke makalah untuk detail lebih lanjut). Misalnya, untuk pembacaan 100k yang diambil secara acak dari "HG002_GM24385_1_2_3_GUPPY_3.6.0_prom.fastq.gz", minimap2 membutuhkan 92 detik, sementara MM2-Fast membutuhkan 54 detik untuk memetakan terhadap genom manusia pada 28 Core Intel® Xeon® Xeon® Platin® Platin®® Platin®® Platin® Platin®® Xeon® Platin®® Platin® Platin®® Platin®® Platin®® Platin®® Platin®® Platin®® . Kumpulan data sampel kami dengan 100k bacaan tersedia di sini.
Accelerating minimap2 untuk aplikasi sekuensing membaca panjang pada CPU modern. Saurabh Kalikar, Chirag Jain, Vasimuddin MD, Sanchit Misra. Nat Comput Sci 2, 78–83 (2022). https://doi.org/10.1038/s43588-022-00201-8
Konten ReadMe asli dari MiniMap2 berikut.
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 adalah program penyelarasan urutan serbaguna yang menyelaraskan sekuens DNA atau mRNA terhadap database referensi besar. Kasus penggunaan yang khas meliputi: (1) memetakan genomik Nanopore Pacbio atau Oxford Nanopore untuk genom manusia; (2) menemukan tumpang tindih antara bacaan panjang dengan tingkat kesalahan hingga ~ 15%; (3) Penyelarasan SPLICE-AWARE dari PACBIO iso-seq atau nanopore cDNA atau RNA langsung dibaca terhadap genom referensi; (4) Menyelaraskan bacaan Illumina tunggal atau berpasangan; (5) penyelarasan perakitan-ke-perakitan; (6) Penyelarasan genom penuh antara dua spesies terkait erat dengan divergensi di bawah ~ 15%.
Untuk ~ 10kb berisik membaca sekuens, minimap2 lebih cepat lebih cepat dari pengap Maintream-Read seperti Blasr, BWA-MEM, NGMLR dan GMAP. Ini lebih akurat pada simulasi membaca panjang dan menghasilkan perataan yang bermakna secara biologis yang siap untuk analisis hilir. Untuk> 100bp Illumina Short bacaan, MiniMAP2 tiga kali lebih cepat dari BWA-MEM dan Bowtie2, dan seakurat data simulasi. Evaluasi terperinci tersedia dari kertas minimap2 atau pracetak.
MiniMAP2 dioptimalkan untuk X86-64 CPU. Anda dapat memperoleh binari yang dikompilasi dari halaman rilis dengan:
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
Jika Anda ingin mengkompilasi dari sumbernya, Anda harus memiliki Compiler C, GNU Make dan file pengembangan ZLIB yang diinstal. Kemudian ketik make
direktori kode sumber untuk dikompilasi. Jika Anda melihat kesalahan kompilasi, coba make sse2only=1
untuk menonaktifkan kode SSE4, yang akan membuat minimap2 sedikit lebih lambat.
MiniMAP2 juga bekerja dengan CPU ARM yang mendukung set instruksi neon. Untuk mengkompilasi arsitektur lengan 32 bit (seperti ARMV7), gunakan make arm_neon=1
. Untuk mengkompilasi untuk arsitektur lengan 64 bit (seperti ARMV8), gunakan make arm_neon=1 aarch64=1
.
MiniMap2 dapat menggunakan perpustakaan SIMD ENEWHER (SIMDE) untuk memarting implementasi ke set instruksi SIMD yang berbeda. Untuk mengkompilasi menggunakan simde, gunakan make -f Makefile.simde
. Untuk mengkompilasi CPU ARM, gunakan Makefile.simde
dengan baris perintah terkait lengan yang diberikan di atas.
Tanpa opsi apa pun, MiniMap2 mengambil database referensi dan file urutan kueri sebagai input dan menghasilkan perkiraan pemetaan, tanpa penyelarasan tingkat dasar (yaitu koordinat hanya perkiraan dan tidak ada cerutu dalam output), dalam format PAF:
minimap2 ref.fa query.fq > approx-mapping.paf
Anda dapat meminta MiniMAP2 untuk menghasilkan cerutu di tag cg
PAF dengan:
minimap2 -c ref.fa query.fq > alignment.paf
atau untuk output keberpihakan dalam format SAM:
minimap2 -a ref.fa query.fq > alignment.sam
Minimap2 dengan mulus bekerja dengan format GZIP'D FASTA dan FASTQ sebagai input. Anda tidak perlu mengonversi antara FASTA dan FASTQ atau mendekompres file GZIP'D terlebih dahulu.
Untuk genom referensi manusia, MiniMAP2 membutuhkan waktu beberapa menit untuk menghasilkan indeks minimizer untuk referensi sebelum pemetaan. Untuk mengurangi waktu pengindeksan, Anda dapat menyimpan indeks secara opsional dengan opsi -d dan mengganti file urutan referensi dengan file indeks pada baris perintah minimap2:
minimap2 -d ref.mmi ref.fa # indexing
minimap2 -a ref.mmi reads.fq > alignment.sam # alignment
Yang penting , perlu dicatat bahwa begitu Anda membangun indeks, parameter pengindeksan seperti -k , -w , -h dan -saya tidak dapat diubah selama pemetaan. Jika Anda menjalankan MiniMAP2 untuk tipe data yang berbeda, Anda mungkin perlu menyimpan beberapa indeks yang dihasilkan dengan parameter yang berbeda. Ini membuat minimap2 berbeda dari BWA yang selalu menggunakan indeks yang sama terlepas dari tipe data kueri.
MiniMAP2 menggunakan algoritma dasar yang sama untuk semua aplikasi. Namun, karena berbagai jenis data yang didukungnya (misalnya dibaca pendek vs lama; DNA vs mRNA baca), minimap2 perlu disetel untuk kinerja dan akurasi yang optimal. Biasanya disarankan untuk memilih preset dengan opsi -x , yang menetapkan beberapa parameter secara bersamaan. Pengaturan default sama dengan 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
Perbedaan antara map-pb
dan map-ont
adalah bahwa map-pb
menggunakan minimizer yang dikompresi homopolimer (HPC) sebagai biji, sementara map-ont
menggunakan minimizer biasa sebagai biji. Evaluasi Emperical menunjukkan minimizer HPC meningkatkan kinerja dan sensitivitas ketika menyelaraskan PACBIO CLR membaca, tetapi terluka ketika menyelaraskan pembacaan 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
Ada berbagai teknologi RNA-seq yang sudah lama dibaca, termasuk cDNA full-length, EST, PACBIO iso-seq, nanopore 2D cDNA-seq dan RNA-seq langsung. Mereka menghasilkan data dengan kualitas dan sifat yang berbeda -beda. Secara default, -x splice
mengasumsikan orientasi baca relatif terhadap untai transkrip tidak diketahui. Ia mencoba dua putaran penyelarasan untuk menyimpulkan orientasi dan menulis untaian ke tag ts
SAM/PAF jika memungkinkan. Untuk iso-seq, RNA-seq langsung dan cDNA full-length, akan diinginkan untuk menerapkan -uf
untuk memaksa minimap2 untuk mempertimbangkan untai transkrip maju saja. Ini mempercepat penyelarasan dengan sedikit peningkatan akurasi. Untuk pembacaan RNA-seq langsung nanopore yang berisik, disarankan untuk menggunakan ukuran K-Mer yang lebih kecil untuk meningkatkan sensitivitas terhadap ekson pertama atau terakhir.
Minimap2 menilai keselarasan dengan skor sub-segmen skor maksimal, tidak termasuk intron, dan menandai penyelarasan terbaik sebagai primer di SAM. Ketika gen yang disambung juga memiliki pseudogen yang tidak dilapisi, minimap2 tidak sengaja lebih memilih penyelarasan yang disambungkan, meskipun dalam praktiknya lebih sering menandai penyelarasan yang disambung sebagai yang utama. Secara default, output minimap2 hingga lima keberpihakan sekunder (yaitu kemungkinan pseudogen dalam konteks pemetaan RNA-seq). Ini dapat disetel dengan opsi -n .
Untuk pembacaan RNA -seq yang panjang, minimap2 dapat menghasilkan keberpihakan chimeric yang berpotensi disebabkan oleh fusi gen/variasi struktural atau oleh intron lebih panjang dari panjang intron maks -g (200k secara default). Untuk saat ini, tidak disarankan untuk menerapkan -g yang terlalu besar karena ini memperlambat minimap2 dan kadang -kadang mengarah pada keberpihakan yang salah.
Perlu dicatat bahwa secara default -x splice
lebih suka gt [a/g] .. [c/t] ag over gt [c/t] .. [a/g] ag, dan kemudian melalui sinyal splicing lainnya. Mempertimbangkan satu basis tambahan meningkatkan akurasi persimpangan untuk bacaan bising, tetapi mengurangi keakuratan ketika menyelaraskan terhadap data kontrol SIRV yang banyak digunakan. Ini karena SIRV tidak menghormati sinyal splicing konservatif secara evolusioner. Jika Anda mempelajari SIRV, Anda dapat menerapkannya --splice-flank=no
untuk membiarkan minimap2 hanya model gt..ag, mengabaikan basis tambahan.
Karena v2.17, minimap2 dapat secara opsional mengambil gen beranotasi sebagai input dan memprioritaskan pada persimpangan sambungan yang dianotasi. Untuk menggunakan fitur ini, Anda bisa
paftools.js gff2bed anno.gff > anno.bed
minimap2 -ax splice --junc-bed anno.bed ref.fa query.fa > aln.sam
Di sini, anno.gff
adalah anotasi gen dalam format GTF atau GFF3 ( gff2bed
secara otomatis menguji format). Output gff2bed
adalah dalam format bed 12-kolom, atau format bed12. Dengan opsi --junc-bed
, MiniMAP2 menambahkan skor bonus (disetel oleh --junc-bonus
) jika persimpangan yang selaras cocok dengan persimpangan dalam anotasi. Opsi --junc-bed
juga membutuhkan tempat tidur 5-kolom, termasuk Strand Field. Dalam hal ini, setiap baris menunjukkan persimpangan yang berorientasi.
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
Demikian pula, ava-pb
menggunakan minimizer HPC sementara ava-ont
menggunakan minimizer biasa. Biasanya tidak disarankan untuk melakukan penyelarasan tingkat dasar dalam mode tumpang tindih karena lambat dan dapat menghasilkan tumpang tindih positif palsu. Namun, jika kinerja bukan masalah, Anda dapat mencoba menambahkan -a
atau -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
Ketika dua file baca ditentukan, minimap2 dibaca dari setiap file secara bergantian dan menggabungkannya ke dalam aliran yang diselingi secara internal. Dua bacaan dianggap dipasangkan jika mereka berdekatan dalam aliran input dan memiliki nama yang sama (dengan akhiran /[0-9]
dipangkas jika ada). Bacaan tunggal dan berpasangan dapat dicampur.
Minimap2 tidak bekerja dengan baik dengan bacaan pendek yang disambung. Ada banyak pemetaan RNA-seq yang mampu untuk bacaan pendek.
minimap2 -ax asm5 ref.fa asm.fa > aln.sam # assembly to assembly/ref alignment
Untuk penyelarasan lintas-genom lintas-spesies, sistem penilaian perlu disetel sesuai dengan divergensi urutan.
Karena cacat desain, BAM tidak bekerja dengan string cerutu dengan> 65535 operasi (Sam dan Cram Work). Namun, untuk nanopore ultra-panjang bacaan minimap2 dapat menyelaraskan ~ 1% dari basis baca dengan cerutu panjang di luar kemampuan BAM. Jika Anda mengonversi Sam/Cram ke BAM, Picard dan Samtools baru -baru ini akan melakukan kesalahan dan dibatalkan. Samtools yang lebih tua dan alat lain dapat menciptakan BAM yang rusak.
Untuk menghindari masalah ini, Anda dapat menambahkan opsi -L
pada baris perintah Minimap2. Opsi ini memindahkan cerutu panjang ke tag CG
dan meninggalkan cerutu yang terpotong sepenuhnya di kolom Sam Cigar. Alat saat ini yang tidak membaca cerutu (misalnya penggabungan dan penyortiran) masih bekerja dengan catatan BAM seperti itu; Alat yang membaca cerutu akan secara efektif mengabaikan catatan ini. Telah diputuskan bahwa alat di masa depan akan dengan mulus mengenali catatan panjang -panjang yang dihasilkan oleh opsi -L
.
TL; DR : Jika Anda bekerja dengan ultra -panjang membaca dan menggunakan alat yang hanya memproses file BAM, silakan tambahkan opsi -L
.
Tag cs
SAM/PAF mengkodekan pangkalan pada ketidakcocokan dan indels. Ini cocok dengan ekspresi reguler /(:[0-9]+|*[az][az]|[=+-][A-Za-z]+)+/
. Seperti cerutu, cs
terdiri dari serangkaian operasi. Setiap karakter terkemuka menentukan operasi; Urutan berikut adalah yang terlibat dalam operasi.
Tag cs
diaktifkan oleh opsi baris perintah --cs
. Penyelarasan berikut, misalnya:
CGATCGATAAATAGAGTAG---GAATAGCA
|| |||| |||||||||| |||| || |
CGATCG---AATAGAGTAGGTCGAATtGCA
direpresentasikan sebagai :6-ata:10+gtc:4*at:3
, di mana :[0-9]+
mewakili blok yang identik, -ata
mewakili penghapusan, +gtc
insersi dan *at
menunjukkan basis referensi a
tersubstitusi dengan basis kueri t
. Ini mirip dengan tag MD
SAM tetapi mandiri dan lebih mudah diurai.
Jika --cs=long
digunakan, string cs
juga berisi urutan yang identik dalam penyelarasan. Contoh di atas akan menjadi =CGATCG-ata=AATAGAGTAG+gtc=GAAT*at=GCA
. Bentuk panjang cs
mengkodekan urutan referensi dan kueri dalam satu string. Tag cs
juga mengkodekan posisi intron dan sinyal splicing (lihat Minimap2 Manpage untuk detailnya).
Minimap2 juga dilengkapi dengan skrip (Java) paftools.js yang memproses keberpihakan dalam format PAF. Ini memanggil varian dari penyelarasan perakitan-ke-referensi, mengangkat file bed berdasarkan penyelarasan, mengonversi antar format dan menyediakan utilitas untuk berbagai evaluasi. Untuk detailnya, silakan lihat Misc/Readme.md.
Berikut ini, opsi baris perintah minimap2 memiliki tanda hubung ke depan dan disorot dengan huruf tebal. Deskripsi dapat membantu menyetel parameter MiniMap2.
Baca -i [= 4g ] Basis referensi, ekstrak ( -k , -w ) -minimizers dan mengindeksnya dalam tabel hash.
Baca -k [= 200m ] Basis kueri. Untuk setiap urutan kueri, lakukan langkah 3 hingga 7:
Untuk masing -masing ( -k , -w ) -minimizer pada kueri, periksa terhadap indeks referensi. Jika minimizer referensi tidak termasuk dalam -f -f [= 2e -4 ] yang paling sering, kumpulkan kejadiannya dalam referensi, yang disebut biji .
Urutkan benih berdasarkan posisi dalam referensi. Rantai mereka dengan pemrograman dinamis. Setiap rantai mewakili potensi pemetaan. Untuk membaca tumpang tindih, laporkan semua rantai dan kemudian lanjutkan ke langkah 8. Untuk pemetaan referensi, lakukan langkah 5 hingga 7:
Biarkan P menjadi himpunan pemetaan primer, yang pada awalnya merupakan set kosong. For each chain from the best to the worst according to their chaining scores: if on the query, the chain overlaps with a chain in P by --mask-level [= 0.5 ] or higher fraction of the shorter chain, mark the chain as sekunder dari rantai di p ; Jika tidak, tambahkan rantai ke p .
Mempertahankan semua pemetaan utama. Juga mempertahankan hingga -n [= 5 ] pemetaan sekunder teratas jika skor rantai mereka lebih tinggi dari -p [= 0,8 ] dari pemetaan primer yang sesuai.
Jika penyelarasan diminta, saring benih internal jika berpotensi mengarah ke penyisipan panjang dan penghapusan yang panjang. Perpanjang dari benih paling kiri. Lakukan keberpihakan global antara benih internal. Pisahkan rantai jika skor akumulatif di sepanjang penyelarasan global turun sebesar -Z [= 400 ], mengabaikan celah panjang. Perpanjang dari benih paling kanan. Rantai output dan keberpihakannya.
Jika ada lebih banyak urutan kueri dalam input, lanjutkan ke langkah 2 sampai tidak ada lagi kueri yang tersisa.
Jika ada lebih banyak urutan referensi, buka kembali file kueri dari awal dan lanjutkan ke langkah 1; jika tidak berhenti.
Manpage minimap2.1 memberikan deskripsi terperinci opsi baris perintah minimap2 dan tag opsional. Halaman FAQ menjawab beberapa pertanyaan yang sering diajukan. Jika Anda menemukan bug atau memiliki pertanyaan atau permintaan lebih lanjut, Anda dapat mengangkat masalah di halaman masalah. Tidak ada milis khusus untuk saat ini.
Jika Anda menggunakan minimap2 dalam pekerjaan Anda, silakan kutip:
Li, H. (2018). Minimap2: Penyelarasan berpasangan untuk sekuens nukleotida. Bioinformatika , 34 : 3094-3100. doi: 10.1093/bioinformatika/bty191
dan/atau:
Li, H. (2021). Strategi baru untuk meningkatkan akurasi penyelarasan minimap2. Bioinformatika , 37 : 4572-4574. doi: 10.1093/bioinformatika/btab705
MiniMAP2 bukan hanya alat baris perintah, tetapi juga perpustakaan pemrograman. Ini menyediakan API C untuk membangun/memuat indeks dan untuk menyelaraskan urutan terhadap indeks. File Example.c menunjukkan penggunaan khas C API. File header minimap.h memberikan dokumentasi API yang lebih rinci. Minimap2 bertujuan untuk menjaga API di header ini stabil. File mmpriv.h berisi API pribadi tambahan yang mungkin mengalami perubahan sering.
Repositori ini juga menyediakan ikatan python ke subset C API. File Python/ReadMe.rst memberikan dokumentasi lengkap; Python/minimap2.py menunjukkan contoh. Ekstensi Python ini, Mappy, juga tersedia dari PYPI melalui pip install mappy
atau dari Bioconda melalui conda install -c bioconda mappy
.
Minimap2 dapat menghasilkan keberpihakan suboptimal melalui daerah kompleksitas rendah yang panjang di mana posisi benih mungkin suboptimal. Ini seharusnya tidak menjadi perhatian besar karena bahkan penyelarasan yang optimal mungkin salah di daerah tersebut.
Minimap2 memerlukan instruksi SSE2 pada x86 CPU atau neon pada CPU lengan. Dimungkinkan untuk menambahkan dukungan non-SIMD, tetapi itu akan membuat minimap2 lebih lambat beberapa kali.
Minimap2 tidak berfungsi dengan satu kueri atau urutan basis data ~ 2 miliar basis atau lebih lama (tepatnya 2.147.483.647). Total panjang semua urutan dapat melebihi ambang batas ini.
Minimap2 sering melewatkan ekson kecil.