ディスク上のインデックスサイズが8倍減少し、1つのタイプのFMインデックス(2bit.64および8bit.32の代わりに2ビット64)と8倍の圧縮のみに移動するため、メモリで4回メモリ内にあることをお知らせします。接尾辞配列の。たとえば、ヒトゲノムの場合、ディスク上のインデックスサイズは〜80GBから〜10GBに低下し、メモリフットプリントは〜40GBから〜10GBに低下します。削減により、インデックスIO時間が大幅に短縮されており、読み取りマッピングへのパフォーマンスの影響はほとんどありません。このインデックス構造の変更により(2020年10月10日、コミット#4B59796)、インデックスを再構築する必要があります。
コミットA591E22の出力SAMファイルにMCフラグを追加しました。出力は、元のBWA-MEMバージョン0.7.17と一致する必要があります。
コミットE0AC59Eの時点で、GITサブモジュールSafestringlibがあります。それを取得するには、使用中に使用してください - 既にクローン化されたリポジトリで「GitサブモジュールINIT」および「GITサブモジュールアップデート」をクローニングまたは使用します(詳細については以下を参照)。
#プリコンパイルされたバイナリ(推奨)を使用してください-l https://github.com/bwa-mem2/bwa-mem2/releases/download/v2.2.1/bwa-mem2-2.2.1_x64-linux.tar.bz2 | tar jxf- BWA-MEM2-2.2.1_X64-LINUX/BWA-MEM2 INDEX REF.FA BWA-MEM2-2.2.1_X64-LINUX/BWA-MEM2 MEM REF.FA READ1.FQ READ2.FQ> OUT.SAM#コンパイルソースからコンパイル(一般ユーザーには推奨されない) github.com/bwa-mem2/bwa-mem2cd bwa-mem2#orgit clone https://github.com/bwa-mem2/bwa-mem2cd bwa-mem2 gitサブモジュールinit gitサブモジュールアップデート#コンパイルとrunmake ./BWA-MEM2
ツールBWA-MEM2は、BWAのBWA-MEMアルゴリズムの次のバージョンです。 BWAと同一のアラインメントを生成し、ユースケース、データセット、および実行マシンに応じて、〜1.3-3.1倍高速です。
元のBWAは、Heng Li(@LH3)によって開発されました。 BWA-MEM2のパフォーマンスの向上は、主にVasimuddin MD(@Yuk12)およびSanchit Misra(@Sanchit-Misra)がIntelのParallel Computing LabのSanchit Misra(@Sanchit-Misra)によって行われました。 BWA-MEM2はMITライセンスの下で配布されます。
一般的なユーザーの場合、リリースページから事前コンパイルされたバイナリを使用することをお勧めします。これらのバイナリはIntelコンパイラでコンパイルされ、GCCコンパイルされたバイナリよりも速く実行されます。事前補償されたバイナリは、間接的にCPUディスパッチをサポートします。 bwa-mem2
バイナリは、実行中のマシンで利用可能なSIMD命令セットに基づいて、最も効率的な実装を自動的に選択できます。以下のコマンドラインを使用して、centos7マシンでプリコンパイルされたバイナリを生成しました。
CXX = ICPCマルチを作成します
使用法は、元のBWA MEMツールとまったく同じです。これが簡単な概要です。利用可能なコマンドのために./BWA-MEM2を実行します。
#参照シーケンスのインデックス付け(28n GBメモリが必要です。ここで、nは参照シーケンスのサイズです)../ bwa-mem2インデックス[-p prefix] <in.fasta> where <in.fasta>は、参照シーケンスFASTAファイルへのパスであり、 <Prefix>は、結果のインデックスを保存するファイルの名前の接頭辞です。デフォルトはin in.fasta。 ここで、プレフィックスが提供されていない場合に、インデックスまたは参照FASTAファイルへのパスを作成するときに指定されたプレフィックス>は指定されています。
データセット:
参照ゲノム:Human_G1K_V37.fasta
エイリアス | データセットソース | 読み取り数 | 長さを読みます |
---|---|---|---|
D1 | ブロード研究所 | 2 x 2.5m bp | 151bp |
D2 | SRA:SRR7733443 | 2 x 2.5m bp | 151bp |
D3 | SRA:SRR9932168 | 2 x 2.5m bp | 151bp |
D4 | SRA:SRX6999918 | 2 x 2.5m bp | 151bp |
機械の詳細:
プロセッサ:Intel(R)Xeon(R)8280 CPU @ 2.70GHz
OS:Centos Linuxリリース7.6.1810
メモリ:100GB
パフォーマンスの結果を収集するために、以下の手順に従いました。
A.データのダウンロード手順:
https://trace.ncbi.nlm.nih.gov/traces/sra/sra.cgi?view = software#header-globalからSRA Toolkitをダウンロードしてください
TAR XFZV SRATOOLKIT.2.10.5-CENTOS_LINUX64.TAR.GZ
D2:sratoolkit.2.10.5-centos_linux64/bin/fastq-dump - split-files srr7733443をダウンロードします
D3:sratoolkit.2.10.5-centos_linux64/bin/fastq-dump - split-files srr9932168をダウンロードします
D4:sratoolkit.2.10.5-centos_linux64/bin/fastq-dump - split-files srx6999918をダウンロードします
B.アライメント手順:
git clone https://github.com/bwa-mem2/bwa-mem2.git
CD BWA-MEM2
make CXX=icpc
(Intel C/C ++コンパイラを使用)
またはmake
(gccコンパイラを使用)
./BWA-MEM2 INDEX <Ref.fa>
./bwa-mem2 mem [-t <#threads>] <ref.fa> <in_1.fastq> [<in_2.fastq>]> <output.sam>
たとえば、ダブルソケット(それぞれ56個のスレッド)とダブルNumaコンピューテノードでは、次のコマンドラインを使用して、D2をHuman_G1K_V37.Fasta参照ゲノムに並べました。
numactl -m 0 -C 0-27,56-83 ./bwa-mem2 index human_g1k_v37.fasta numactl -m 0 -C 0-27,56-83 ./bwa-mem2 mem -t 56 human_g1k_v37.fasta SRR7733443_1.fastq SRR7733443_2.fastq > d2_align.sam
BWA-MEM2-LISAは、BWA-MEM2の加速バージョンであり、ここでは学習インデックスをシードフェーズに適用します。 BWA-MEM2-LISAブランチには、実装のソースコードが含まれています。以下は、BWA-MEM2-LISAの特徴です。
BWA-MEM2とまったく同じ出力。
インデックスと読み取りマッピングを作成するためのすべてのコマンドラインは、BWA-MEM2とまったく同じです。
BWA-MEM2-LISAは、BWA-MEM2と比較して、播種相(BWA-MEM2の主要なボトルネックの1つ)を最大4.5倍加速します。
BWA-MEM2-LISAインデックスのメモリフットプリントは、ヒトゲノムの場合は〜120GBです。
このコードは、bwa-mem2-lisaブランチ:https://github.com/bwa-mem2/bwa-mem2/tree/bwa-mem2-lisaに存在します
BWA-MEM2リポジトリのERTブランチには、BWA-MEM2の排出された基本樹木ベースの加速のコードベースが含まれています。 ERTコードは、BWA-MEM2の上部に構築されています( @arun-subによるハードワークのおかげです)。以下は、ERTベースのBWA-MEM2ツールのハイライトです。
BWA-MEMとまったく同じ出力(2)
このツールには、ERTソリューション(インデックス作成とマッピング用)の使用を有効にするための2つの追加フラグがあります。
1つの追加フラグを使用して、ERTインデックス(BWA-MEM2インデックスとは異なる)とそのERTインデックスを使用するための追加フラグを作成します(ERTブランチのReadmeを参照してください)
ERTソリューションは、Vanilla BWA -MEM2と比較して10%から30%高速です(上記のマシン構成でテストされています) - ユーザーはOption -K 1000000
を使用してスピードアップを確認することをお勧めします
ERTインデックスのメモリフットプリントは〜60GBです
このコードは、ERTブランチに存在します:https://github.com/bwa-mem2/bwa-mem2/tree/ert
Vasimuddin MD、Sanchit Misra、Heng Li、Srinivas Aluru。マルチコアシステム用のBWA-MEMの効率的なアーキテクチャアウェア加速。 IEEE並列および分散処理シンポジウム(IPDPS)、2019。10.1109/IPDPS.2019.00041