ALLPATHS-LGは複数のライブラリで読まれたショートリードを組み合わせてゲノムアセンブルをするソフトウェア(パイプライン)である.比較的新しいゲノムアセンブラで性能もかなり良いらしく,公式ブログのアセンブル履歴を見ると非モデル生物を中心にかなり使われている印象がある.ただ,その反面かなり癖のあるソフトウェアで,インストールが鬼門・動かすのが難しい・インターネットに資料が少ないという三重苦で,初心者にはかなりハードルの高いソフトウェアと言わざるを得ない.その中でも個人的に一番やっかいだと思うポイントはパイプライン入力に使うデータセットの準備で,折角苦労してALLPATHS-LGが使える環境を整えたとしても,使えるデータが無いとそもそも動かないということになりかねない.

ということで,今回はALLPATHS-LGを動かすために必要なライブラリについて見ていく.私自身も厳密に調べたわけではないので間違い等あるかもしれないが,もし詳しい方がいらっしゃればご指摘頂ければ幸い.

まず,ALLPATHS-LGが想定してるNGSショートリードは,長さ~100bp程度のペアエンドである.454のロングリードなどには対応していないようだが,最近のバージョンアップでillumina+PacBioのハイブリッドアセンブルが出来るようになっているらしい(url).

ここまでは問題無いのだが,次のペアエンドのライブラリの種類に関する条件が非常に複雑である.まずALLPATHS-LGでは,ショートリードのライブラリは以下の3つに区分される.

  • Fragment Library (Short Library)
  • Jumping Library (long Library)
  • Long Jumping Library

このうち,アセンブルに必要となるライブラリはFragment LibraryとJumping Libraryである.ここで重要なのは,どちらも必ず最低1つは必要になるということである.たとえFragment Libraryがいくつあっても,Jumping LibraryがなければALLPATHS-LGは動かない.これが非常に重要で,後述のライブラリの条件で詳しく述べるが,Jumping LibraryのInsert sizeには制限があるため,これをクリアするデータを持っていない場合はそもそもALLPATHS-LGを動かす事ができない.

Fragment Library

ではそれぞれのライブラリの条件を順に見ていこう.まずFragment Libraryだが,これはインサートサイズの短い配列のことを指す.ただこれには制約があり,ペアエンドの読まれたリードが重なっている必要がある.これだけでは何のことか分からないと思うので例を使って説明すると,例えば100bpのペアエンドの場合では両端から100bpずつ読まれるので,それらが重なるようなインサートサイズを考えると,200bp以下である必要がある.もしインサートサイズが300bpの場合では両端のリードの間に隙間が出来てしまうので,このライブラリはFragment Libraryにはならない.実際にはインサートサイズは少しばらつきがあり,ALLPATHS-LGでもインサートサイズの値に加えて標準偏差stddevも指定できるようになっているが,基本的にペアエンドリードが重なるような長さのものを使う必要がある.

Jumping Library

次にJumping Libraryである.ALLPATHS-LGではインサートサイズが3,000bp〜10,000bp程度のライブラリを想定している.ただしこれにも制約があり,ペアエンドリード間の長さ(separation size)が最低1,000bp以上ないとJumping Libraryと見なされない.ということは,100bpのペアエンドの場合,Jumping Libraryとして認識されるには最低1,200bp程度のインサートサイズが必要となる.これが非常にややこしいところで,Fragment Libraryより長いインサートはJumping Libraryになるかというと,そうでもないのである.じゃあ100bpペアエンドリードでインサートサイズが200bp〜1000bpの間のライブラリはどれに分類されるかというと,これが非常に謎な部分で私自身もあまり良くわかっていない.これらのインサートサイズのライブラリはFragment LibraryとしてALLPATHs-LGの入力ファイルに登録することは出来る(Validationに通る)ので,使われないことは無いと思う.ただし,このFragment Libraryモドキ単体だけではFragment Libraryが不足しているとしてALLPATHS-LGを動かすことが出来無いので,最低でも200bp以下のオーバーラップしているライブラリと組み合わせて使う必要がある.謎い.

Long Jumping Library

最後にLong Jumping Libraryだが,マニュアルによるとインサートサイズが20kbpsのライブラリを想定しているらしい.前述のJumping Libraryにおいてペアエンドリード間の長さの上限が10kbpなので,それ以上はLong Jumping Libraryとしても良さそうである.

Fragment LibraryとJumping Libraryの模式図

といった感じでALLPATHS-LGを動かすために必要なライブラリの種類を見てきた.結論としては兎に角動かすためのデータセットの制限がシビアということで,データのライブラリサイズなどの情報をきちんと把握しておく必要がある.まあデータが揃っていたとしてもALLPATHS-LGを動かすのも一苦労なのだが,この話はまた別の機会に書ければ書くことにする.というか自分も理解していないところが多いので手探り感が強いが….