質問:
異なるツールで作成されたBAMファイルのファイルサイズが異なるのはなぜですか?
medbe
2017-06-03 04:38:14 UTC
view on stackexchange narkive permalink

Picardによって作成されたBAMがあります。 samtools view を使用してフラグで配置をフィルタリングしたい。ただし、フィルターを適用しなくても、出力BAMが入力BAMと異なることに気付きました。さまざまなツールで作成されたBAMのサイズも異なりますか? 2つのBAMが同じかどうかを確認するにはどうすればよいですか?

こんにちはメドベ、あなたの質問をしてくれてありがとう、それはこのバイオインフォマティクスサイトによく合います。あなたが得る答えを改善するために、あなたの質問を編集して、それの周りに少し物語を構築することは役に立つかもしれません。フラグで配置をフィルタリングしたいと思ったきっかけは何ですか? BAMファイルの形式が異なることが重要なのはなぜですか?
samtools / picardの出力がどのように異なるかについて詳しく教えてください。それはファイルサイズだけですか、それとも配置セクションのオプションフィールドからデータが欠落していますか?
二 答え:
#1
+7
Matt Bashton
2017-06-03 17:14:12 UTC
view on stackexchange narkive permalink

圧縮されたBAMを出力する場合、ほとんどのツールがデフォルトで行うように、さまざまなレベルの圧縮やさまざまなライブラリ、または前述のバージョンのライブラリを使用して(解凍)圧縮を実行する可能性があることに注意してください。結果としてファイルサイズが異なります。さらに、座標でソートされたBAMは、ソートされていないBAMよりも圧縮されます。 Picardの現在のバージョンは HTSJDKを使用し、次にjava.util.zip.Deflater / Inflaterを使用します。現在のバージョンのsamtoolsは、 HTSlibライブラリを使用する必要があります。 標準のzlibライブラリ samtools teamが行ったベンチマークでzlibのさまざまな実装がファイルサイズと実行時間に与える影響を確認できます。

ただし、あなたの場合は、 BAMファイルには、さまざまなレベルの圧縮または圧縮に使用されるライブラリの影響を除外し、両方のBAMファイルを非圧縮として保存するという違いがあります。 samtoolsとPicardの両方に、圧縮レベルを無効化または変更するオプションがあります。BAM圧縮標準BGZFはgzip形式の上に実装されているため、gzipと同様に、圧縮レベルを0から9に変更する機能を継承しています。

samtools view -bu を使用すると、非圧縮のBAM出力を生成できます(これは、本質的にストリームであるものの圧縮と解凍の無駄な時間を節約できるため、他のプログラムへのパイプにも便利です)。また、 samtools sort には -l INT 設定があり、INTは0( -u と同様に圧縮オフ)1(最速の圧縮の場合、ただしファイルサイズが大きくなります)または-9(最大の圧縮の場合、実行時間が長くなります)。 [email protected] 引数を使用すると、ランタイムの増加による影響の一部が改善される可能性があります。これにより、BAM圧縮に使用される追加のスレッドの数を設定できます。デフォルトでは、samtoolsは何も使用しません。

Picardツールには一般的な設定 COMPRESSION_LEVEL があり、これを0に設定するほとんどのツールに適用できます。 COMPPRESSION_LEVEL = 0 は圧縮を無効にする必要があります。

したがって、最初に使用したPicardツールを COMPPRESSION_LEVEL = 0 で再実行すると、ファイルが samtoolsviewによってさらに変更されていないことを確認できます。 -bu 。ここでの前提は、両方のファイルのコンテンツがまったく同じである場合、圧縮せずに同じサイズにする必要があるということです。もちろん、空白のフォーマットに関してわずかな違いがある場合でも、状況は異なる可能性があります。

#2
+4
gringer
2017-06-03 05:20:02 UTC
view on stackexchange narkive permalink

2つの異なるマッピングツールが、同じ参照にマッピングされた同じシーケンスに対して、まったく同じアライメント、スコア、および一致文字列を提供する可能性はほとんどありません。一部のシーケンス/参照アラインメントでは、どちらが「最適な」アラインメントであるかを判断できず、コードのわずかな違いが、選択したアラインメントに大きな影響を与える可能性があります。

ただし、実際のマッピング位置と一致があったとしても文字列はまったく同じです(たとえば、Picardなどのツールを使用してBAM / SAMファイルをフィルタリングする場合)。ツールが異なれば、マッピングごとに異なるメタデータが組み込まれます。これは、 SAMファイル形式の仕様で11列目以降にオプションのフィールドを追加することで許可されています。これらのフィールドで使用できるいくつかの標準オプションタグがあり、追加のカスタム非標準タグも使用できます。 PicardがBAM / SAMファイルの配置にメタデータを追加している可能性が非常に高いです。

基になる SAM 配置(およびメタデータ)が次のようになる可能性があるという点で、さらに複雑になります。同一ですが、 BAM ファイルのファイルサイズは異なる場合があります。この理由の1つは、BAMファイルの圧縮方法を変更できることです。たとえば、位置合わせツールは迅速な圧縮方法を選択し、フィルタリングツールはより良い圧縮をもたらす方法を選択する場合があります。

位置合わせの類似性の確認は、ファイルをバイナリレベルで比較するよりも困難です。特定のアプリケーション(またはコンテキスト、またはストーリー)は、比較の最良の方法が何であるかを変更します。質問に対するより良い回答を提供するために、BAMファイルを比較する理由を知っておくと役に立ちます。



このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...