MM2-FASTは、最新のCPU上のMinimAP2の加速された実装です。 MM2-FASTは、MinimAP2の3つの主要なモジュールすべてをすべて加速します:(a)シード、(b)チェーン、および(c)ペアワイズアラインメント。AVX512を使用して最大1.8xスピードアップを達成します。 MM2-FASTはMinimAP2のドロップイン置換であり、まったく同じ出力を同じ機能に提供します。現在のバージョンでは、すべてのモジュールがAVX-512およびAVX2ベクトル化を使用して最適化されています。 Nature Computational Science (https://www.nature.com/articles/S43588-022-00201-8)の出版物では、詳細なベンチマーク結果が入手できます。
オペレーティングシステム:Linux
MM2-FASTは、G ++(GCC)9.2.0およびICPCバージョン19.1.3.304を使用してテストされました。
アーキテクチャ:avx512、avx2のx86_64 CPU
記憶要件:ヒトゲノムの場合は〜30GB
MM2-FAST GitHub Repoをクローンします。ソースコードは、 makeコマンドを使用してコンパイルできます。ほんの数秒かかります。
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast
make
MM2-FASTの使用はMinimAP2と同じです。以下は、テストデータを使用して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 = Infinityで実行する必要があることに注意してください。パラメーターmax-chain-skip = infinityを持つことで、より高いチェーン精度につながることに注意してください。したがって、正確性の検証のために、minimap2はmax-chain-skipパラメーターのより大きな値で実行する必要があります。以下の手順に従って、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を使用したデフォルトのコンパイルは、ベクトル化されたチェーンとシーケンスアライメントの2つの最適化を適用します。学習インデックスベースの播種は、錆の入手可能性を必要とするため、デフォルトで無効にされています。これは、学習したハッシュテーブルが錆で実行される外部トレーニングライブラリを使用しているためです。錆はインストールするのが些細なことです。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.8倍のスピードアップを観察しました(詳細については、論文を参照してください)。たとえば、「HG002_GM24385_1_2_3_GUPPY_3.6.0_PROM.FASTQ.GZ」からのランダムにサンプリングされた100Kリードの場合、MIMAP2は92秒かかりますが、MM2-FASTは54秒かかり、28CoreSel®Platinum®Platinum8280CPUSのヒトゲノムに対してマッピングされます。 。 100kの読み取りを備えたサンプリングされたデータセットはこちらから入手できます。
最新のCPUでの長い読み取りシーケンスアプリケーションの最小値を加速します。 Saurabh Kalikar、Chirag Jain、Vasimuddin MD、Sanchit Misra。 Nat Comput Sci 2、78–83(2022)。 https://doi.org/10.1038/S43588-022-00201-8
Minimap2の元のReadMeコンテンツが続きます。
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は、DNAまたはmRNAシーケンスを大規模な参照データベースに合わせた多用途シーケンスアライメントプログラムです。典型的なユースケースには、次のものが含まれます。(1)マッピングPACBIOまたはオックスフォードナノポアゲノム読み取りは、ヒトゲノムに読みます。 (2)エラー率が最大15%までの長い読み取り間の重複を見つける。 (3)PACBIO ISO-seqまたはNanopore cDNAのスプライスアウェアアライメントまたは参照ゲノムに対する直接RNA読み取り。 (4)Illuminaシングルまたはペアの端の読み取りを調整する。 (5)アセンブリとアセンブリのアラインメント。 (6)2つの密接に関連する種の間の完全ゲノムアライメントは、〜15%未満の発散をもたらします。
〜10kbのノイジー読み取りシーケンスの場合、Minimap2は、BLASR、BWA-MEM、NGMLR、GMAPなどの主流の長い読み取りマッパーよりも数十倍高速です。シミュレートされた長い読み取りでより正確であり、下流の分析に対応できる生物学的に意味のあるアライメントを生成します。 100bpを超えるIllumina Short Readsの場合、Minimap2はBWA-MEMやBowtie2の3倍速く、シミュレートされたデータで正確です。詳細な評価は、Minimap2 PaperまたはPreprintから入手できます。
Minimap2はx86-64 CPUに最適化されています。次のようなリリースページから、プレリコンパイルされたバイナリを取得できます。
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がわずかに遅くなります。
Minimap2は、Neon命令セットをサポートするARM CPUでも動作します。 32ビットARMアーキテクチャ(ARMV7など)をコンパイルするには、 make arm_neon=1
使用します。 64ビットARMアーキテクチャ(ARMV8など)をコンパイルするには、 make arm_neon=1 aarch64=1
使用します。
Minimap2は、SIMD Everywhere(SIMDE)ライブラリを使用して、実装をさまざまなSIMD命令セットに移植することができます。 Simdeを使用してコンパイルするには、 make -f Makefile.simde
を使用します。 ARM CPUをコンパイルするには、上記のARM関連のコマンドラインを使用してMakefile.simde
使用します。
オプションがなければ、Minimap2は参照データベースとクエリシーケンスファイルを入力として取得し、ベースレベルのアライメントなしで、おおよそのマッピングを作成します(つまり、座標は概算のみであり、出力は葉巻がありません)。
minimap2 ref.fa query.fq > approx-mapping.paf
minimap2に、次のようなcg
タグで葉巻を生成するように依頼できます。
minimap2 -c ref.fa query.fq > alignment.paf
または、SAM形式にアラインメントを出力します。
minimap2 -a ref.fa query.fq > alignment.sam
Minimap2は、入力としてGZIP'D FASTAおよびFASTQ形式でシームレスに動作します。 FASTAとFASTQを変換したり、最初に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を実行している場合、おそらく異なるパラメーターで生成された複数のインデックスを保持する必要があります。これにより、クエリデータ型に関係なく常に同じインデックスを使用するBWAとは異なります。
Minimap2は、すべてのアプリケーションで同じベースアルゴリズムを使用します。ただし、サポートしているデータ型が異なるため(例:短いvs Long Reads; DNA対mRNA読み取り)、最適なパフォーマンスと精度のために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
通常のミニマイズをシードとして使用することです。 Emperical評価では、Pacbio CLRの読み取りを調整すると、HPCミニマイザーがパフォーマンスと感度を向上させることが示唆されていますが、ナノポアの読み取りを調整すると痛いです。
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
幹線上のフルレングスcDNA、EST、Pacbio ISO-seq、Nanopore 2D cDNA-seq、および直接RNA-seqなど、さまざまな長期RNA-seq技術があります。さまざまな品質と特性のデータを生成します。デフォルトでは、 -x splice
転写鎖に対する読み取り方向が不明であると仮定します。可能であれば、方向を推測し、 ts
SAM/PAFタグにストランドを書き込むために2ラウンドのアライメントを試みます。 ISO-seq、直接RNA-seq、およびトレンドショナルフルレングスcDNAの場合、 -uf
適用して最小限2を強制して順方向転写産物鎖のみを考慮することが望まれます。これにより、アラインメントが高速化され、精度がわずかに改善されます。騒々しいナノポア直接RNA-seqリードの場合、最初のエクソンまたは最後のエクソンに対する感度を高めるために、より小さなK-MERサイズを使用することをお勧めします。
Minimap2は、イントロンを除く最大スコアのサブセグメントのスコアによってアラインメントを評価し、SAMのプライマリとして最適なアライメントをマークします。スプライスされた遺伝子にもスプライシングされていない偽遺伝子がある場合、Minimap2は意図的にスプライスされたアライメントを好まないが、実際には、プライマリとしてスプライスされたアライメントをより頻繁にマークすることが多い。デフォルトでは、Minimap2は最大5つの二次アライメント(つまり、RNA-seqマッピングのコンテキストで偽遺伝子)を出力します。これは、option -nで調整できます。
長いRNA -seqの読み取りの場合、minimap2は、遺伝子融合/構造変動によって引き起こされる潜在的に、またはマックスイントロン長-G (デフォルトでは200k)よりも長いイントロンによって引き起こされるキメラアライメントを生成する可能性があります。とりあえず、これがminimap2を遅くし、時には誤ったアライメントにつながるため、過度に大きな-gを適用することはお勧めしません。
デフォルトでは、 -x splice
GT [a/t] agよりもgt [c/t] agを好むことは注目に値します。 1つの追加ベースを考慮すると、ノイズの多い読み取りのジャンクション精度が向上しますが、広く使用されている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列のベッドも搭載しています。この場合、各ラインは方向のジャンクションを示します。
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
2つの読み取りファイルが指定されている場合、minimap2は各ファイルから順番に読み取り、それらを内部的にインターリーブストリームにマージします。 2つの読み取りは、入力ストリームに隣接しており、同じ名前を持っている場合はペアになっていると見なされます( /[0-9]
サフィックスが存在する場合はトリミングされます)。シングルエンドとペアエンドの読み取りは混合できます。
Minimap2は、短いスプライスされた読み取りではうまく機能しません。短い読み取りには多くの有能なRNA-seqマッパーがあります。
minimap2 -ax asm5 ref.fa asm.fa > aln.sam # assembly to assembly/ref alignment
クロス種のフルゲノームアライメントの場合、シーケンスの発散に応じてスコアリングシステムを調整する必要があります。
設計上の欠陥のため、BAMは65535操作を除く葉巻弦(SAMおよびCRAM Work)で動作しません。ただし、非常に長いナノポアの場合、読み取り最小値は、BAMの能力を超えた長い葉巻を読み取りベースの〜1%を整列させる可能性があります。そのようなSAM/CRAMをBAMに変換すると、Picardと最近のSamtoolsがエラーを投げて中止します。古いサムトールやその他のツールは、破損したBAMを作成する場合があります。
この問題を回避するために、minimap2コマンドラインにオプション-L
を追加できます。このオプションは、長い葉巻をCG
タグに移動し、サムシガーコラムに完全に切り取られた葉巻を残します。葉巻(マージやソートなど)を読まない現在のツールは、そのようなBAMレコードで依然として機能します。葉巻を読むツールは、これらのレコードを効果的に無視します。将来のツールは、Option -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
-ata
*at
+gtc
a
されます:[0-9]+
同一のブロックを表します。クエリベースt
でt。 MD
SAMタグに似ていますが、スタンドアロンで解析しやすいです。
--cs=long
使用する場合、 cs
文字列にはアライメントに同一のシーケンスも含まれます。上記の例は=CGATCG-ata=AATAGAGTAG+gtc=GAAT*at=GCA
になります。 cs
の長い形式は、1つの文字列に参照シーケンスとクエリシーケンスの両方をエンコードします。 cs
タグは、イントロンの位置とスプライシング信号もエンコードします(詳細については、Minimap2 ManPageを参照してください)。
Minimap2には、PAF形式でアライメントを処理する(Java)スクリプトPaftools.jsも付属しています。アセンブリから参照へのアラインメントからバリアントを呼び出し、アライメントに基づいてベッドファイルを持ち上げ、形式間の変換、さまざまな評価のユーティリティを提供します。詳細については、Misc/readme.mdを参照してください。
以下では、MinimAP2コマンドラインのオプションにはダッシュがあり、太字で強調表示されています。説明は、Minimap2パラメーターを調整するのに役立ちます。
read -i [= 4g ]参照ベース、抽出( -k 、 -w ) - ミニマイザーとハッシュテーブルにインデックスを付けます。
-k [= 200m ]クエリベースを読み取ります。クエリシーケンスごとに、ステップ3〜7を実行します。
クエリ上の各( -k 、 -w )-minimizerについて、参照インデックスに対して確認します。参照ミニマイザーがTOP -F [= 2E -4 ]の中に最も頻繁にない場合、シードと呼ばれる参照の発生を収集します。
参照内の位置で種子を並べ替えます。動的なプログラミングでそれらをチェーンします。各チェーンは潜在的なマッピングを表します。重複を読むには、すべてのチェーンを報告してからステップ8に進みます。参照マッピングの場合は、ステップ5〜7を実行します。
Pを一次マッピングのセットとします。これは、最初は空のセットです。チェーンスコアに応じて、最高のチェーンごとに最高のチェーンについて:クエリ上で、チェーンがPのチェーンと重複する場合- マスクレベル[= 0.5 ]または短いチェーンの割合が大きい場合、チェーンをマークします。 Pのチェーンに続発します。それ以外の場合は、チェーンをpに追加します。
すべてのプライマリマッピングを保持します。また、それらのチェーンスコアが対応する一次マッピングの-P [= 0.8 ]よりも高い場合、 -n [= 5 ]上部セカンダリマッピングまで保持します。
アライメントが要求されている場合は、長い挿入と長い削除の両方につながる可能性がある場合、内部シードを除外します。左端の種子から拡張します。内部シード間でグローバルなアラインメントを実行します。グローバルアライメントに沿って累積スコアが-Z [= 400 ]に低下し、長いギャップを無視した場合、チェーンを分割します。右の種子から拡張します。出力チェーンとそのアライメント。
入力にさらにクエリシーケンスがある場合は、クエリがなくなるまでステップ2に移動します。
より多くの参照シーケンスがある場合は、最初からクエリファイルを再開し、ステップ1に移動します。それ以外の場合は停止します。
ManPage Minimap2.1は、Minimap2コマンドラインオプションとオプションのタグの詳細な説明を提供します。 FAQページは、いくつかのよくある質問に答えます。バグに遭遇したり、質問やリクエストがある場合は、問題ページで問題を提起できます。当面は特定のメーリングリストはありません。
仕事でMinimap2を使用している場合は、引用してください。
Li、H。(2018)。 Minimap2:ヌクレオチド配列のペアワイズアライメント。バイオインフォマティクス、 34 :3094-3100。 doi:10.1093/bioinformatics/bty191
および/または:
Li、H。(2021)。 MinimAP2アライメント精度を改善するための新しい戦略。バイオインフォマティクス、 37 :4572-4574。 doi:10.1093/bioinformatics/btab705
Minimap2はコマンドラインツールであるだけでなく、プログラミングライブラリでもあります。インデックスを構築/ロードし、シーケンスをインデックスに対して整列させるためのC APIを提供します。ファイルExample.cは、C APIの典型的な使用を示しています。ヘッダーファイルMinimap.hは、より詳細なAPIドキュメントを提供します。 Minimap2は、このヘッダーのAPIを安定させることを目指しています。ファイルMMPRIV.Hには、頻繁に変更される可能性のある追加のプライベートAPIが含まれています。
このリポジトリは、C APIのサブセットにPythonバインディングを提供します。ファイルpython/readme.rstは完全なドキュメントを提供します。 python/minimap2.pyは例を示しています。このPython拡張機能であるMappyは、Pypiからpip install mappy
を介して、またはconda install -c bioconda mappy
を介してBiocondaからも入手できます。
minimap2は、種子の位置が最適ではない長い複拡張領域を通じて、最適ではないアライメントを生成する場合があります。このような地域では、最適なアライメントでさえ間違っている可能性があるため、これは大きな懸念事項ではありません。
Minimap2には、X86 CPUまたはARM CPU上のネオンに関するSSE2命令が必要です。非SIMDサポートを追加することは可能ですが、Minimap2を数回遅くします。
Minimap2は、1つのクエリまたはデータベースシーケンスでは20億ベース以下(正確には2,147,483,647)で動作しません。すべてのシーケンスの総長さは、このしきい値を上回る可能性があります。
Minimap2はしばしば小さなエクソンを見逃します。