前の記事で紹介したtoolの1つ。pandaseq を使ってみる。
インストールは簡単。 まず
git clone https://github.com/neufeld/pandaseq.git
中に入って
sudo apt-get install build-essential libtool automake zlib1g-dev libbz2-dev pkg-config ./autogen.sh && ./configure && make && sudo make install
あとは./.bashrc
か./.bash_profile
あたりをいじってPATHを通す。
$ pandaseq You must supply both forward and reverse reads. Too confused to continue. Try -h for help.
こんな感じなメッセージがでればOK。
基本的な使い方は、forward、reverseの配列のfastqファイルを指定してやるだけ。
pandaseq -f forward.fastq -r reverse.fastq > merged.fasta
出力
. . . 0x5558a9fa2030:2 STAT OVERLAPS 0 0x5558a9fa2030:1 INFO BESTOLP ERR562367:::3:0:0:0: 137 0x5558a9fa2030:1 INFO BESTOLP ERR562367:::2:0:0:0: 139 0x5558a9fa2030:1 INFO BESTOLP ERR562367:::1:0:0:0: 135 0x5558a9fa2030:1 STAT TIME Wed Feb 21 18:13:43 2018 0x5558a9fa2030:1 STAT ELAPSED 0 0x5558a9fa2030:1 STAT READS 3 0x5558a9fa2030:1 STAT NOALGN 0 0x5558a9fa2030:1 STAT LOWQ 0 0x5558a9fa2030:1 STAT BADR 0 0x5558a9fa2030:1 STAT SLOW 0 0x5558a9fa2030:1 STAT OK 3 0x5558a9fa2030:1 STAT OVERLAPS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
出力結果の見方は http://neufeldserver.uwaterloo.ca/~apmasell/pandaseq_man1.htmlのLOGGING MESSAGESを参考に。
エラーを修復しながらリードを配列にアセンブルしている。
SAM/BAMファイルもインプットとして使えるらしい。 オーバーラップ中でミスマッチが存在した場合、クオリティーの高い方が優先される。 詳細なアルゴリズムは以下。
Algorithm
- forward、reverse primerが閾値を超えマッチするポジションを探し、Primerを含む配列の末端は捨てる。
- 1つのDNAに由来するとして、forward、reverse readsの確率が最大化するように選び、重ね合わせる。
- リードの末端領域のクオリティースコアをB or #として、この領域の確率を正規化する。
- アセンブルされた配列をprimer間で構築し、クオリティーを計算する。
- quality, length, uncalled bases, user-supplied modules の点でおかしいものがないかチェックする
参考
https://github.com/neufeld/pandaseq
http://neufeldserver.uwaterloo.ca/~apmasell/pandaseq_man1.html