bowtie メモリー関連のエラー Warning: Exhausted best-first chunk memory for read

bowtieを–bestモードで実行したところ、メモリーに関するワーニング(警告)が大量に表示されました。エラーではないので処理は進んでいくのですが、「マッピング結果に影響を与えないか?」という点がとても気になりました。そこで、–chunkmbsオプションでメモリーの割り当てを増やして、bowtieを再実行しました。すると、ワーニングを1つも表示することなしに、マッピング処理を正常終了することができました。その解決方法についてまとめます。

bowtieでメモリー関連の警告が発生した場合の対処法 –bestモードと–chunkmbs

bowtieを実行する際、–bestオプションを指定すると品質の良い順に結果が並びます。更に、–best –strataと指定するとベストヒットが選出さます。これらのオプションは、bowtieを実行する際に必ずといって良いほど、よく指定されるオプションです。

しかし、–bestオプションを指定した場合に注意すべき点があります。動作は少し遅くなり、より多くのメモリを消費するようになります。設定に注意しないで実行すると、メモリーが不足して処理中に大量のワーニング(警告)が発生する場合があるからです。

bowtie –bestモードを指定した場合の挙動

–bestを指定すると、bowtieの結果は品質の良い順に並び替えられます。

–bestを指定しない場合 -a

全ての候補を表示します。

$ ./bowtie -a -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
-   gi|110640213|ref|NC_008253.1|   148810  10:A>G,13:C>G
-   gi|110640213|ref|NC_008253.1|   2852852 8:T>A
-   gi|110640213|ref|NC_008253.1|   4930433 4:G>T,6:C>G
-   gi|110640213|ref|NC_008253.1|   905664  6:A>G,7:G>T
+   gi|110640213|ref|NC_008253.1|   1093035 2:T>G,15:A>T

 Reporting Modes (新しいタブで開く)">Bowtie Manual > Reporting Modes より

–bestを指定した場合 -a –best

全ての候補を品質の良い順に表示します。

$ ./bowtie -a --best -v 2 e_coli --suppress 1,5,6,7 -c ATGCATCATGCGCCAT
-   gi|110640213|ref|NC_008253.1|   2852852 8:T>A
+   gi|110640213|ref|NC_008253.1|   1093035 2:T>G,15:A>T
-   gi|110640213|ref|NC_008253.1|   905664  6:A>G,7:G>T
-   gi|110640213|ref|NC_008253.1|   148810  10:A>G,13:C>G
-   gi|110640213|ref|NC_008253.1|   4930433 4:G>T,6:C>G

 Reporting Modes (新しいタブで開く)">Bowtie Manual > Reporting Modes より

ベストヒットの選出 -a –best –strata

ベストヒットを表示します。

$ ./bowtie -a --best --strata -v 2 --suppress 1,5,6,7 e_coli -c ATGCATCATGCGCCAT
-   gi|110640213|ref|NC_008253.1|   2852852 8:T>A

 Reporting Modes (新しいタブで開く)">Bowtie Manual > Reporting Modes より

bowtie –bestモードと一緒に–chunkmbsを設定する

bowtieを–bestモードで使用してメモリー関連の警告が表示された場合の解決法は、bowtieに大きめのメモリー確保をオプションで指示することです。

メモリーに関係する–chunkmbsオプションの説明を読むと、「–bestモードでチャンクメモリが使い果たされたことを示すエラーメッセージが表示された場合は、このパラメータを調整して、より多くのメモリを記述子に割り当ててみてください。」と、解決のアドバイスが書かれています。–chunkmbsオプションも一緒に指定すると、ワーニングが表示されなくなる場合があります。

bowtie -m 3 -a --sam --best --strata genome/hg19 -1 d1_1.fq,d2_1.fq -2 d1_2.fq,d2_2.fq --threads 16 --chunkmbs 1024 > data.sam

–chunkmbsを指定しない場合のデフォルト値は64です。もし、指定しないで警告が大量に発生する場合は、64より大きい整数値を指定します。使用可能なメモリーサイズにもよりますが、1024を使うケースが多いようです。状況に応じて、256, 512, 1024などを指定すると良いと思います。

bowtie メモリー関連のオプション –chunkmbs

--chunkmbs int

The number of megabytes of memory a given thread is given to store path descriptors in --best mode. Best-first search must keep track of many paths at once to ensure it is always extending the path with the lowest cumulative cost. Bowtie tries to minimize the memory impact of the descriptors, but they can still grow very large in some cases. If you receive an error message saying that chunk memory has been exhausted in --best mode, try adjusting this parameter up to dedicate more memory to the descriptors. Default: 64.

bowtie manualより 



ピックアップ記事

  1. tidyverse – distinct関数でデータフレームの重複行を削除 dplyrパッケージ

    tidyverseでデータフレームの重複行の削除を行う場合、dplyrパッケージのdistinct…
  2. R subset関数 データフレームやmatrixからの条件指定による行・列の抽出

    R の subset関数は、データフレームやマトリックスから条件にマッチした部分集合を取り出します…
  3. R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット

    グラフを描画する際、色の組み合わせを1つ1つ考えるのは面倒ですよね。Rには、あらかじめ色の組み合わ…

人気記事

  1. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  2. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  3. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…

おすすめ記事

  1. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…
  2. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  3. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…