phred/phrap/consedを使う


 phred/phrap/consedは米国ワシントン大学のProf. Phil Greenのプロジェクトで誕生したソフトである.ABIなどのオートシーケンサーのファイルからのベースコール(純正のベースコールよりも正確という),配列の連結(アセンブル),元の波形データを参照しながらのコンティグの編集という,買えば数10万円以上する高機能ソフトウエア一式が,アカデミックユーザーには無料で試用できる.ただし,アカデミックユーザーにはバグレポートが義務付けられている.
 インストールから始めるときにはこのまま,システム管理者からアカウントをもらってインストール済みのシステムを利用するユーザーは 4.ユーザー側の設定 以降を参考にされたい.ユーザー側の設定も誰かにしてもらった場合には5.ベースコールとアセンブル以降を参考にされたい.


1.ソフトの入手

http://www.phrap.org
に入手のためのライセンスアグリーメントなどの情報がある.ソフトの入手のためにはダウンロードサイトへ接続するコンピュータのIPアドレスを知らせる必要があるので,インターネットへどのようなグローバルIPアドレスで接続しているかあらかじめ知っておく必要がある.


2.コンピュータシステム


 phred/phrap/consedは基本的にUNIX上で動くソフトウエアである.phred/phrapはWindowsでもコンパイルできるようだが,consedをWindows上で動かすことは難しい.そこで私の研究室では,パッケージをUNIX(RedHat Linux v.9)にインストールし,UNIX + Windowsマシンによるホスト-クライエントシステムで利用している.ホストマシンに複数のコンピュータからアクセスして利用することにより,「コピー禁止」の問題をクリアすることもできる.
 東北水研の所内LANは10base/Tである.複雑なグラフィック表示などでストレスを感じないようにするため,LinuxとWindowsマシンとは100base/Tのハブを介して接続し,ハブを所内LANにつなぐことでWindowsマシンをメールなどの日常業務マシンとしても利用できるようになっている.また,Linuxマシンにsambaとnetatalkをインストールし,ファイルサーバとしても利用できるようになっている.Linuxのウィンドウ(X11)の操作性はよいとは言えないので,ファイル操作の多くはWindows側からsambaを通じて行っている.

system componentsystem component

 Linuxの画面(X11)をWindowsマシンに表示するには,以前はフリーのものとしてはCygwinを使うしかなかったが,最近ではX-Deep/32がフリーになったので,今はこちらを利用している(v.4.6.5).エミュレータではなく,あくまでWindowsのアプリケーションとして動くので,Cygwinのようにディスクスペースをとらない.ただし欠点としては,画面上にメニューバーが表示される分だけ画面が狭い.少しでも画面を稼ぎたいときには,Windows側で「タスクバーをほかのウィンドウの手前に表示する」のチェックをはずすとよい.最近,X-Deep/32が4.7にバージョンアップされ,有料になった.以前の4.6.5はサイトから削除された.

task bar properties
矢印で示した項目のチェックをはずす.タスクバーのプロパティを開くにはタスクバーを右クリックする.

 Mac(OS X)でも同様にLinuxのGUI画面を表示することができる.
MacにX11をインストールし,X11のターミナルから,
$ ssh -X username@ip_address
と打ち込み,パスワードを入力する.何か警告が出るが無視.以下,同じ操作でインストールからconsedの起動まで可能.sambaでLinuxのフォルダにアクセスするには,FinderのメニューバーのGoから.これもデスクトップにエイリアスを作っておくと便利.
 consed操作に必要な右クリックやセンタークリックのためには,3ボタンマウスをつなぐ.またはノートの場合には,トラックパッドの設定を変更(右クリックが可能に)し,中クリックのためには,さらにフリーのプログラム(たとえばBetterTouchTool)を入れる必要がある.(2014年12月3日追記)

3.インストール

ファイルの展開とコンパイル

Phred
phred-dist-020425.c.acd.tar.ZをLinuxの適当なフォルダーを作ってそこにコピーする.
例)
Windowsからサーバにアクセスしてフォルダー(phred)を作ってコピー.
私のシステムでは取説に出ていた方法ではこのファイルを解凍できなかった.そこで以下の方法で解凍した.
X-Deep/32を立ち上げてRedHatを呼び出す.通常のユーザーとしてログイン.
RedHatのスタートメニュー→System Tools→Terminalを起動(Terminalは頻繁に起動するので,メニューのTerminalのアイコンを右クリックしてツールバーにショートカットを作っておくとよい).
例)
$ cd phred
$ gunzip phred-dist-020425.c.acd.tar.Z

元のファイルは消えてphred-dist-020425.c.acd.tarと置き換わる.
$ tar xvf phred-dist-020425.c.acd.tar
ソースファイルがphredフォルダーに展開される.
$ make
実行形式のphredができる.いまのところMakefileを編集しなくても不具合はないが,UNIXのシステムによってはコンパイラの種類や最適化の指定を変更する必要があるかもしれない.

Phrap
distrib.tar.Zを適当なフォルダー(例;phrap)へコピー.
同様にgunzipとtarで解凍と展開.makeコマンドでコンパイル.

phd2fasta
phd2fasta-acd-dist.tar.Zを適当なフォルダー(例;phd2fasta)へコピー.
同様に解凍,展開,コンパイル.

consed(現在のバージョンは16)
consed_linux.tar.Zを適当なフォルダー(例;consed)へコピー.
gunzipとtarで解凍と展開.実行形式のファイルが3つ出てくる.
consed_linux2.4
consed_linux2.6
consed_linux2.6_dyn
これらはそれぞれLinuxのカーネルのバージョンに対応したものである.カーネルのバージョンを知るにはTerminalからunameコマンドを使う.
$ uname -r
バージョンが2.4または2.5の場合にはconsed_linux2.4を使う.
ログオフ.

インストール

root権限でLinuxにログイン.usr/local/genome/binというフォルダーを作る.この領域は/home/username/(ユーザーアカウント)の外にあり,Windowsからはアクセスできない.

Terminalを立ち上げる.
$ cd /usr/local
$ mkdir genome
$ cd genome
$ mkdir bin
$ mkdir lib
$ cd lib
$ mkdir screenLibs
$ cd ..


consedと必要なファイルをコピーしてインストール.
$ cp /home/username/consed/consed_linux2.4 /usr/local/genome/bin
$ chmod 555 /home/username/consed/scripts/*
$ cp /home/username/consed/scripts/* /usr/local/genome/bin
$ cp /home/username/consed/contributions/* /usr/local/genome/bin
$ cp /home/username/consed/msc/* /usr/local/genome/lib/screenLibs
screenLibsの中のリピート配列のリストなどのアクセス権限は,ふつう644(-rw-r--r--)になっているが,もし読み出し不可のユーザーがいたり,うっかり書き換えてしまったりすることを防ぐには,chmod 444しておく.
$ chmod 444 /home/username/consed/msc/* /usr/local/genome/lib/screenLibs/*

phd2fastaをコピー.
$ cp /home/username/phd2fasta/phd2fasta /usr/local/genome/bin

phrapなどアセンブルに必要なファイルをコピーしてインストール
$ cp /home/username/phrap/cluster /usr/local/genome/bin
$ cp /home/username/phrap/cross_match /usr/local/genome/bin
$ cp /home/username/phrap/loco /usr/local/genome/bin
$ cp /home/username/phrap/phrap /usr/local/genome/bin
$ cp /home/username/phrap/phrapview /usr/local/genome/bin
$ cp /home/username/phrap/swat /usr/local/genome/bin
$ cp /home/username/phrap/vector.seq /usr/local/genome/lib/screenLibs
vector.seqのアクセス権限は,ふつう644(-rw-r--r--)になっているが,もし読み出し不可のユーザーがいたり,うっかり書き換えてしまったりすることを防ぐには,chmod 444しておく.
$ chmod 444 /home/username/consed/msc/* /usr/local/genome/lib/screenLibs/vector.seq

phredをコピー.
$ cp /home/username/phred/phred /usr/local/genome/bin
usr/local/etc/PhredParというフォルダを作る.
$ cd /usr/local/etc
$ mkdir PhredPar

phredpar.datをシーケンサーのシステムに応じて編集の上コピー.
$ cp /home/username/phred/phredpar.dat /usr/local/etc/PhredPar

スクリプトを編集.
consedの新しいバージョンではphredpar.datを置くデフォルトのフォルダーが変更されたが(/usr/local/genome/lib/),私は上記のように,古いバージョンと同じフォルダー(/usr/local/etc/PhredPar/)に置くようにしている.これに関連して "addReads2Consed.perl" と "phredPhrap" というスクリプトを編集しておく.
/home/username/consed/scripts/addReads2Consed.perl と
/home/username/consed/scripts/phredPhrap
をそれぞれgeditで次のように編集.

-----------------------------------------------------------------
# change this to reflect wherever you put the phred parameter file
$szPhredParameterFile = $szConsedHome . "/lib/phredpar.dat";
#$szPhredParameterFile = "/usr/local/common/lib/PhredPar/phredpar.dat";
#$szPhredParameterFile = "/usr/local/etc/PhredPar/phredpar.dat";
-----------------------------------------------------------------
 ↓
-----------------------------------------------------------------
# change this to reflect wherever you put the phred parameter file
#$szPhredParameterFile = $szConsedHome . "/lib/phredpar.dat";
#$szPhredParameterFile = "/usr/local/common/lib/PhredPar/phredpar.dat";
$szPhredParameterFile = "/usr/local/etc/PhredPar/phredpar.dat";
-----------------------------------------------------------------

編集したファイルを/usr/local/genome/bin/にコピー.上書きするときには古いファイルをchmod 755しておく.上書きした新しいファイルに対してはchmod 555する.

システムのインストールはここまで.
ログオフ.

4.ユーザー側の設定

サーバ(Linuxマシン)へのアクセスの確保
Windows PCからアクセスする場合について述べる.Windows PCにX-Deep/32などのX11エミュレータソフトをインストールする.phred/phrap/consedがインストールされているサーバのシステム管理者にアカウント(通常のログインとsambaの両方)を作ってもらう.管理者に,username,パスワード,サーバの名前またはIPアドレスの情報をもらう.usernameは自分のWindows PCの名前と同じにしておくことをお勧めする.日本語のusernameは不可.
Windowsでサーバのフォルダを表示させる.
マイコンピュータ → デスクトップ → マイネットワーク... とたどっていくと,usernameがついたリモートフォルダが表示される.ダブルクリックするとユーザー名とパスワードの入力を要求する.正しく入力するとフォルダが開くことを確認.毎回マイコンピュータからたどっていくのは面倒なので,ショートカットをデスクトップに作っておく.
X11エミュレータでLinuxの画面を表示させる.
エミュレータソフトを起動して,サーバの名前またはIPアドレスを指定する(ソフトによって異なる).X-Deep/32の場合は,立ち上げると最初に現れるダイアログで IP:[ANY] accept requests .... を選ぶと,LANにつながっているサーバの一覧が出るので,システム管理者から教えてもらった名前のサーバを選ぶ.

PATHの追加
通常のユーザー名でサーバにログイン.
Terminalを立ち上げる.Terminalはスタートメニューのシステムツールの中に入っている.Terminalはしょっちゅう使うので,右クリックしてツールバーにショートカットを作っておくとよい.
既存のPATH($PATH)に/home/username/binと/usr/local/genome/binを加える.加える順番はこのとおりに.RedHat Linuxではデフォルトのシェル(login shell)はbashだが,この場合,ユーザーのホームディレクトリにある".bash_profile"(不可視ファイル)をgeditで
$ gedit .bash_profile
とタイプして開き,
PATH=$PATH:$HOME/bin
という行を
PATH=$PATH:$HOME/bin:/usr/local/genome/bin
と書き換える(通常は$HOME=/home/username).もし"PATH=..."という行が見当たらなかったら,上のように行を追加し,さらに
export PATH
という行を(もしなければ)追加する.ログインシェルを調べるには
$ echo $SHELL
とタイプする.

ログオフ.

通常のユーザー名でログインしなおす(PATH追加を有効にするため).

consed起動スクリプト
/home/username/binというフォルダを作る.
$ cd /home/username/
(カレントディレクトリがすでにこのフォルダになっている場合には省略可)
$ mkdir bin
/home/username/以下の領域はWindowsから自由にアクセスできるが,"bin"というフォルダ名はWindowsではシステムに予約されていて,不可視となる.上の操作をWindowsから行うとおかしくなる.それ以外のフォルダの作成,ファイルやフォルダのコピーやリネームなどはWindowsで操作したほうが楽.ただし,フォルダやファイル名はすべて英数半角.
覚えやすい名前でconsedを起動できるようにスクリプトを作っておく.Linuxのgeditで1行
consed_linux2.4
とだけ書いてconsedという名前で /home/username/binにセーブする.
セーブしたファイルを実行可能にする.
$ chmod 755 /home/username/bin/consed

これでユーザー側の設定は完了.

5.ベースコールとアセンブル

 アセンブルする配列プロジェクトは以下のような規則にしたがって作られたフォルダの中にできる.
プロジェクト全体のフォルダ
     chromat_dir   ABIシーケンサが出力した波形つきシーケンスファイルを入れるサブフォルダ
     edit_dir     consedのデータファイルが格納されるサブフォルダ
     phd_dir     phredコールしたシーケンスデータファイルが格納されるサブフォルダ
プロジェクトごとにいちいち4つのフォルダを新たに作るのは面倒なので,テンプレートを作っておき,ファイル(フォルダ)ごとコピー&ペーストするとよい.プロジェクトのフォルダを作ったら,ABIのシーケンスファイルをchromat_dirにコピーする./home/username/以下の領域はWindowsから自由にアクセスできるので,フォルダの作成,ファイルやフォルダのコピーやリネームなどはWindowsで操作したほうが楽.ただし,フォルダやファイル名はすべて英数半角.
例)
Windowsの機能を使って,ユーザーのホームディレクトリー下の好きなフォルダの中にプロジェクトフォルダのテンプレートを配置.下図のようにproject_templateをコピー&ペーストし,リネーム(例,project_template -> project)する.

project folder template

 ABIのシーケンスファイルをプロジェクトのchromat_dirにコピー.泳動不良の場合を除き,きれいに読めたものもそうでないものもノーチェックでコピーしても大丈夫.質の悪いものは単にアセンブルに使用されないだけである.また,あらかじめEditViewなどできれいなところだけを残して編集するなどの作業も不要.phrapが各シーケンスファイルの信頼性(phredスコアという)の高いところを優先的に使い,スコアの低いところは無視するからである.多くのシーケンスファイルをつなぐときに,先立ってのチェックと編集が不要というのは大変ありがたい.この点は他のアセンブルソフト,例えばABIのAuto Assemblerなどより著しく優れている.さらに,いくつかの領域を個別にシーケンスするときでも,領域ごとに別々にではなく,1つのプロジェクトでまとめてアセンブルするとよい.領域ごとに別々のコンティグにアセンブルされる.多型解析の場合など,同じ領域を多数の個体について読んだ場合にも,泳動の波形がきれいなら1つのプロジェクトでまとめてアセンブルするとよい.多くの場合,バリアントごとに別のコンティグにまとまる.

Terminalでプロジェクトのedit_dirへ移動.
$ cd /home/username/project/edit_dir
phredPhrapスクリプトの実行.
$ phredPhrap
 Terminalの画面をメッセージが流れ,ベースコールとアセンブルが瞬く間に終わる.


6.consedの使い方

 consedには様々な機能がある.詳細はパッケージに入っているREADME.txtのQUICK TOUR OF CONSEDの項参照のこと(日本語訳はここ).ここでは魚類のミトコンドリアゲノム全長配列のアセンブルを例に,最低限必要なことだけ説明する.ここで紹介する方法はconsedの標準的な使い方とは異なるかもしれない.

phredPhrapが終了してコマンドプロンプトが出たら,consedを起動(プロジェクトのedit_dirにいることを確認)(また,PATHの追加とconsed起動スクリプトを確認).
$ consed


opening dialog

 初期画面が出るので,aceファイルをダブルクリック.

consed main window

 メインウィンドウにコンティグの一覧が出る.コンティグのどれかを選んでダブルクリック.

aligned reads window

 テキストベースで各シーケンスファイルの連結の状況が表示される.Aligned Readsウィンドウという.consedではシーケンスファイルの配列をreadという.ミトコンドリアDNAではL鎖の配列で表示するのが普通である.対してphrapはつなぎやすいようにつないでくれるのでしばしばコンセンサスがH鎖の配列になってしまう.そういうときにはCompl Contボタンをクリックしてコンセンサスをひっくり返す.Aligned Readsウィンドウでは配列を編集することはできない.配列についている色は,白っぽいほどphredスコアが高く,黒っぽいほど低いことを示す.readの波形データ(traceという)を表示させて,その中で配列の編集をする.このウィンドウを閉じるには右上のXボタンではなくDismissボタンを使う.ウィンドウサイズのカスタマイズはこちら.デフォルトではreadは読みの向きごとにまとめられてAligned Readsウィンドウに表示されるが,readをアルファベット順に並べたいときにはこちら

Display traces for all reads

 traceを表示させるには,Aligned Readsウィンドウのreadの配列にマウスポインタを持ってきて中クリックする.または,コンセンサスかまたはreadの配列にマウスポインタを持ってきて右クリックすると現れるメニューからDisplay traces for all readsを選んで,すべての波形を並べて表示させることもできる.traceウィンドウのどれかのtraceの配列をクリックすると配列のその位置が赤く点滅し,配列の編集ができるようになる.矢印キーで前後に,あるいは隣の配列に移ることができる.*を上書きすることで塩基を消去する.スペースバーを押すとカーソルの前に*が挿入される.*には何か塩基を上書きすることができる.つまり,スペースバーを使って塩基の挿入ができる.consedではphredスコアの低い部分でコンセンサス配列と違っていてもいちいち編集する必要はない.traceの編集では1回だけundoが可能である.各traceの左端のほうにUndoボタンがついている.複数回戻るには,Aligned Readウィンドウを閉じて,メインウィンドウ上のUndo Edit ... ボタンを使う.

Trace Window

 ギャップクローズなどのためにシーケンスファイルを追加するときはconsedを終了し,chromat_dirにシーケンスファイルをコピーしてphredPhrapするとよい.Add New ReadsとMiniassembly機能を使うこともできるが,これらの機能を知らないでも一応のことはできる.

remove primer sequence

 魚類のミトコンドリアゲノムをプライマーウォーキングで読んでいくと,ときどき反対側のプライマー配列まで読み通すことがある.ユニバーサルプライマーを使っていると,しばしばコンセンサスと配列が異なる.その部分のphredスコアが高いと,プライマー配列のほうをコンセンサスにしてしまうかもしれない.そうでなくてもスコアが高いのに塩基の不一致ということになり,コンセンサスの最終確認のじゃまになる.

primer sequence removed

 プライマー配列をコンセンサスに使わせないようにするには,traceウィンドウのプライマー配列のところで中クリックし,現れたメニューからChange to x's to left(right)を選ぶ.カーソル位置から左(右)端までxで埋め尽くされ,次回のアセンブル時に無視されるようになる.xはもともとはクローニングベクター配列を除去したというしるしだが,ここではプライマー配列をベクターに見立てている.

Navigate menu

 どうやら1本につながったらしい,と判断したら,コンティグの最終確認をする.Aligned ReadsウィンドウのNavigateボタンをクリックし,メニューの一番上を選ぶ.すると,問題のある場所とその状態の一覧表が出る.項目を選んでGoボタンをクリックするとそこへジャンプする.traceウィンドウを表示させるなどしてチェックする.

problems

 この操作はアセンブルの初期段階から使用してもよいが,はじめは問題のあるところだけを飛び飛びにチェックするのではなく,とにかくtraceをすべて目で確認することを勧める.読み足しが必要な場合には,chromat_dirにシーケンスファイルを追加してphredPhrapを繰り返す.
 コンティグの最終確認が終わったら,ミトコンドリアゲノムの場合にはちゃんと環状になっているかチェックする.環状DNAの場合,phrapは重複の長いところ優先でつないでいき,重複の短いところを切ってコンティグを作るようである.そこでコンティグの両端には,短いかもしれないが同じ配列があるはずである.

Search for String

 コンティグ両端の配列が同じかどうかは,配列サーチ機能(Search for String)と比較機能(Compare Cont)を利用して調べる.コンティグのどちらかの端へ行き,できるだけ端に近くてスコアの高いところの10塩基ぐらいの配列を特定する.Search for Stringボタンをクリックし,queryにその配列を入力してサーチする.2ヶ所で見つかり,それが両端付近にあったらしめたものである.

found

 どちらかの場所を選んでGoボタンでそこへジャンプする.Compare Contボタンをクリックし,Compare Contigsウィンドウを開く.再びSearching Contigsウィンドウに移り,もう1つの場所を選んでジャンプする.そこでも Compare Contボタンをクリックすると,Compare Contigsウィンドウに2つの配列が並んで表示される.Alignボタンをクリックすると2つの配列をそろえてくれる.

Compare Contigs

 完全に一致していれば環状DNAがちゃんとつながった可能性が高い.ときには,整列したところの両端に若干の不一致があるかもしれない.不一致がコンティグの両端であれば,それはphredスコアの低いほうを無視すればよいだけであることが多い.

aligned

 Compare Contigsウィンドウの表示は,環状DNA配列のどの部分が重複しているかを示している.そこで,コンセンサス配列を他のソフトで利用できるようエクスポートするときに,どこからどこまでを書き出せばよいか目安に使える.

file manu for export consensus

 いよいよコンセンサス配列の書き出しである.Aligned ReadsウィンドウのFileボタンをクリック.メニューのExport Consensus(with Options)を選ぶ.始まりと終わりを入力してコンセンサスを書き出す.または,Export Consensusを選んで全体を書き出し,シーケンスエディタに読み込んでから重複部分を消去してもよい.ただしFASTAフォーマットで書き出す場合,Consensus(with Options)を利用したほうが,タイトル行にいろいろな情報が出力されるので便利である.

export consensus

 書き出したコンセンサス配列はedit_dirに格納される.


6.謝辞

 システム構築はもっぱら北里大学の林崎健一さんにお願いしました.ここにとくに記して感謝します.このページの内容は,システム立ち上げの後,斉藤がシステムを運用しながら覚えたことを中心に書いたものです.


RETURN
HOME