Skip to content

MEGA

MEGAによる最尤法系統樹推定

MEGAは視覚的にわかりやすいGUI形式ですので,

特に解説は必要ないと思いますが,備忘録的に.



アライメントした配列を用意します.COI配列です.

Data→Phylogenetic Analysisを選択.



アミノ酸のコーディング領域かどうかを聞かれます.

今回はCOIなのでYesです.



うまくいけばこのようなウィンドウが表示されます.

MEGAの基本ウィンドウ(ここではMEGA 6.06(6140226))でPhylogeny→Construct/Test Maximum Likelihood Tree…を選択.



ここで解析のパラメーターを設定します.



Phylogeny Test :どのように系統を検定するかです.各枝の信頼性が得たい場合はここでBootstrap Methodを選択しましょう.

No. of Bootstrap Replications:Bootstrap検定を何回行うかです.100回でも構いませんが,1000回くらいはしたほうが無難です.2-3000回やってる論文もたまに見かけます.

Substitution Type:塩基(Nucleotide)かアミノ酸(Amino Acid)が選べます.選べないと困ります.

Model/Method:塩基(アミノ酸)置換モデルが選べます.

Rates among Sites:座位ごとの置換の頻度の違いを,ガンマ分布に基づいて分類するか否かを設定できます.

No of Discrete Gamma Categories:ガンマカテゴリ数を設定できます.

Gaps/Missing Data Treatment:ギャップの扱いの設定です.Complete deletionとすると,一つでもギャップがあるサイト(列)を解析からのぞけます.

ML Heuristic Method:最尤法系統樹の探索方法を選べます.系統樹探索方法についてはまたどこかで書くかもしれませんが,局所解がたくさんあるようなデータセットだと,ここでの方法選びは結構重要だと思います.いくつか試してみても良いかもしれません.

Initial Tree for ML:系統樹探索を行う際の,最初の出発点の系統樹の作成法を選びます.上記した通り,これも結構重要だと思います.デフォルトのNJでも問題はないと思いますが,もし既にそれらしい系統樹があるのであれば,それを設定する事もできます.

Blanch Swap Filter:系統樹探索の際の枝の入れ替えの大胆さを決めます.Strongにすると枝長の入れ替えがより消極的になり,解析時間は短くなりますが,考慮する系統樹は少なくなります.よりWeakにすると,枝長の入れ替えが大胆になり,解析時間は長くなりますが,考慮する系統樹が多くなるようです.



パラメーター設定が終わったら,Computeをクリックして解析開始です.

Progressが100%になるまで,気長に待ちましょう.



解析が終わると,このようにTree Explorerに系統樹が表示されます.

各枝の上にブートストラップ確率(2桁の整数)と枝の下に枝長(有理数)が示されています.



このExplorerで色々系統樹をいじれます.例えば特定の枝を選択して,左上のコマンドの中からPlace root on Branchを選ぶと



外群を指定できます.



他にもCompress/Expand Subtreeで,枝を一つにまとめたり,



Fit Tree to Screenで,ウィンドウ内に系統を収めたり,



Flip Subtreeで枝の上下を入れ替えたりできます.

良い時代になりました.



この他にもたくさんのコマンドがありますが,感覚的に理解できると思いますので,いろいろ試してみてください.



今日はここまで.


Expanded Bayesian Skyline Protによる集団の遷移年代推定

※もっと良いやり方をご存知の方はそっと教えてください.

細かいコマンドは勉強中です.こちらもいろいろ教えてください.

 

塩基配列データ作成(MEGA, BEAUti)

MEGAでの作業

  • 解析用フォルダを作る(Skyとしましょう).
  • 解析したい内群について,MEGAでアライメントを行ったセッションをfasファイルで出力する(Sky.fasとしましょう).
各種パラメータ設定(BEAUti)

BEAUtiでの作業

  • File→Import AlinmentでSky.fasを読み込む.Partitionタブでアライメントセッションファイルの名前が確認できればOK.

  • Site ModelタブのSubst Modelでモデルを設定する.

  • Clock Timeタブで,特にこだわりが無ければ”Strict Clock”を選び,Clock rateに塩基置換レートを入力する.例えば,1.25%/100万年であれば,0.0125と入力.

  • PriorsタブでTree.t: EBSP(アライメントのセッション名)から”Coalescent Extended Bayesian Skyline”を選ぶ.

  • Tree.t: EBSPの左の▶をクリックし,Population modelの横の鉛筆をクリックし,Factorを入力する.母系遺伝のミトコンドリアは.0.5と入力するのが良いようです.

  • MCMCタブのChain lengthで,MCMC連鎖の数を設定する.デフォルトは10,000,000ですが,多分30,000,000位はやったほうがよさそうです.この後のTracerで結果を見ながら,この値を調整するとよいでしょう.

  • Fileの並びのメニューのVeiwタブから,Show Operators panelを選ぶ.

  • もし複数の遺伝子データを使う場合は,Operatorsタブで,Bit Flip…, Sample off…, Scale…の値をそれぞれの数×30, 15, 15にするとよいようです.今回はデフォルトですが,もし二つの遺伝子を使う場合は60, 30, 30にするとよいでしょう.
  • これで準備OKです.File→Saveでxmlファイルを保存しましょう(Sky.xmlとしましょう).
MCMCによる解析(BEAST)

BEASTでの作業

  • BEASTを立ち上げ,Choose FileでSky.xmlを選ぶ.後はデフォルトでOKです.Runをクリックして解析を始めましょう.

  • 上手くいけば,カリカリ解析が始まるはずです.苦労したファイルが走るのを見るとなんか感動しますよね.
  • 解析が終了して,SkyフォルダにSky.logとEBSP.logが生成されればOKです.
集団推移の可視化(Tracer, R)

Tracerでの作業

  • Tracerを立ち上げ,Import Trace FileでSky.logを選ぶと,ファイルが読み込まれて,Traces:のところにlogの解析データが出力されます.

  • このうち,ESSの値が重要なようで,これが200以下の項目がある場合はMCMCの連鎖回数を増やすとよいでしょう.

  • 一番下のsum(indicators.alltrees)をクリックし,右側のEstimatesのタブをクリックすると,ヒストグラムが表示されます.

  • Rを立ち上げ,Skyフォルダ内に移動し,以下のように入力すれば,少し計算時間があった後,集団の遷移図がプロットされます.

> source (“plotEBSP.R”)

> plotEBSP(“EBSP.log”, useHPD=FALSE, log=”y”)

 

  • でました.横軸が年代(百万年)で,縦軸が集団サイズです.左が現在ですので,この集団はごく最近に少しだけ集団サイズの減少を経験しているようです.
  • x軸の表示範囲を調整するには,Rに以下のように(0~0.03の範囲で表示する場合)入力します.

> plotEBSP(“EBSP.log”, useHPD=FALSE, xlim=c(0, 0.03))

今日はここまで.


MEGAによるモデルテスト

MEGAでは塩基(アミノ酸)置換の進化モデルテストを行うことができます.

進化モデルとは,解析するデータセットの中における,



①塩基(アミノ酸)の存在頻度

②塩基(アミノ酸)同士の置換確率



の組み合わせです.

最尤法では,節間の置換を計算するので,この進化モデルの選択は非常に重要です.



まずはアライメントした配列を用意します.今回はCOI領域の配列です.

Data→Phylogenetic Analysisを選択します.



タンパク質のコーディング領域かどうかを聞かれます.

今回はCOIなのでYesです.



このようなウィンドウが現れたらOKです.アライメントの中から,塩基置換が起きている部分だけを取り出したものです.

このPhylogenetic analysisモードは,MEGAで系統解析を行うための基本モードです.



Models→Find Best DNa/Protain Models (ML)を選びます.



この画面でモデルテストのセッティングができます.
 

Tree of use :テストの際に使う系統樹を指定できます.通常,デフォルトのNJ法でOKです.

Substitution type:Nucleotide(塩基)やAmino acid(アミノ酸)が選べます.

Gaps/Missing Data Treatment:ギャップやミッシングデータの取り扱いが選べます.Complete deletionで,ギャップが一つでもある列は解析殻除きます.Partial Deletionで,比較する配列ごとにギャップの扱いを決めます.Use all siteでギャップもミッシングデータも全て扱います.

Select Codon Positions:チェックを外したコドンを解析から除きます.コーディング領域の場合,特に3rdコドンが他とモデルが異なる場合があったりするので,きちんと全てのコドンについてのモデルテストを行っておくことをお薦めします.

Branch Swap Filter:系統樹の枝長に対する厳密性を決めるオプションのようです.複雑なモデルを使うと,色んな塩基置換パターンを考慮に入れられる反面,その分の解析上の煩雑さも増えてしまいます.この煩雑さを枝長と考え,各モデルごとに枝長と尤度を比較し,尤度の上昇と枝長の少なさのバランスが最も良いものをベストのモデルとして選ぶようです.この枝長は系統樹の探索によって決められていくのですが,その際に系統樹の一部の枝を入れ替えます.この時の入れ替えの「大胆さ」を決めるのがこのオプションのようです.従って,Strongにすると枝長の入れ替えがより消極的になり,解析時間は短くなりますが,考慮する系統樹は少なくなります.よりWeakにすると,枝長の入れ替えが大胆になり,解析時間は長くなりますが,考慮する系統樹が多くなるようです.ですので,時間に余裕があるときはよりWeakにするとよいでしょう.

※個人的な見解ですので,間違っていたら教えてください.
 

さて,長くなりましたが,セッティングを終えてComputeを選択するとモデルテストが始まります.



モデルを一つ一つ試しています.終わるまで気長に待ちましょう.



結果が出ました.注目すべきは,BIC, AICcです.これらの値が最も少ない(=尤度と煩雑さのバランスが最も良い)ものが,ベストなモデルとなります.

今回の解析では,GTR+G+Iがベストなモデルとして選択されました.他にも,f(A),f(T)…などはそのモデルの下での塩基の存在頻度で,r(AT)…などが置換確率となります.



このウィンドウの下の方に,それぞれのモデルに対する説明があります.

ここを参考にして,今後の最尤法解析などの際にパラメーターを設定します.



今日はここまで.


MEGAによるアライメント②

アミノ酸配列をコードしている領域の場合は,

DNA配列をアミノ酸配列に変換することで,

正しく配列が得られているか確認できます.
 

こちらは,アミノ酸をコードしているミトコンドリアのCOI領域

のDNA配列をアライメントしたものです.



ちなみに,このOTUの名前の付け方は長すぎる上に,

()とか系統解析状優しくない記号が使われている悪い例です.



各配列の一番上の行にアスタリスク(*)が示してある列は,

全てのOTUで塩基置換が同じ事を示しています.

従って,*が無い列はどこかのOTUで塩基置換が起きています.

この*を見ると,二列おきに無くなっている傾向が見られると思います.

これは,この配列がアミノ酸をコードするコドンは塩基3つで一組となっており,

その三番目が置換しやすい事を表しています.



左上の方のDNA Sequencesの横のTranslated Protein Sequencesのタブをクリックすると,



このようなウィンドウがポップアップするので,

Yesを選択するとDNA配列がアミノ酸配列に変換されます.

Noを選択すると,
 

このように,コドンがコードするアミノ酸の遺伝コードを選択する事ができます.

分類群に合わせて変更しましょう.



遺伝子コード表は,Data→Select Genetic Code Tableからも選択できます.
 

これが置換後のアミノ酸配列です.色付きの文字は全てアミノ酸です.

灰色の*は,ストップコドンでこれが見られる場合は,

アミノ酸変換が上手くいっていない事がほとんどです

(勿論,複数の遺伝子が発現するためのストップコドンの場合もあります).



というわけで,一番左の列を削除してもう一度アミノ酸変換してみました.

うーん,まだストップコドンがみられます.
 

更にもう一列削除してアミノ酸変換しました.

ストップコドンもみられず,配列も結構「揃って」います.

恐らく,これで正しくアミノ酸配列に変換できたものと思われます.
 

今日はここまで.


MEGAによるアライメント

MEGA (Molecular Evolutionary Genetics Analysis software)は,

アライメント,モデルテスト,系統解析までを一手にこなせる優れた系統解析ソフトウェアです.

昔はアライメントや簡単な系統解析が出来るくらいでしたが,現在はver. 7までアップデートを重ね,

モデルテスト,最尤法,祖先解析,分子分岐年代測定などが行えるようになっています.

また,開発者が日本人という事で,日本語でも扱えるため,大変有用なツールとなっています.

DLはこちら
 

備忘録的に,このMEGAの使い方を記録していきます.

MEGAをインストールしたら,MEGAのアイコンをダブルクリックすると,以下のウィンドウが起動します.
 

これがMEGAの基本画面です.
 

まずアライメントです.”Align”→”Edit/Built Alignment”を選択.
 

Creat a new alignmentをチェックし,OKをクリックすると,以下のようなExplorerが起動します.
 

“Edit”→”Insert Sequence From File”を選択します.
 

DNA(もしくはアミノ酸)配列のファイルをPCから読み込みます.読み込める形式は色々ありますが,

このように,メモ帳に直接塩基配列をペーストしただけのものでもOKです.
 

配列が読み込めました.色が付いている部分が塩基配列です.A, T, G, Cでそれぞれ色分けされています.
 

“Alignment”から,”Clustal W”と”Muscle”の二つのアライメント方式が選べます.

今回はClustal Wを選択してみます.
 

ここでは,アライメントのパラメータの設定ができます.

Gap Opening PenaltyやGap Extension Penaltyの値を高く設定すれば,なるべくギャップが少なく,連続しないアライメントになります.

DNA Weight Matrixでは,塩基とアミノ酸の置換に対するスコアを選択できます.

Transition Weightで,転位と転換の差を設定できます.

他にも,Keep Predefined Gapsでギャップを完全に無視したアライメントや,

Specify Guide Treeで,アライメントの指標となる系統樹を指定できるようです.
 

もしデフォルトのセッティングでアライメントが上手くいかない場合は,この値などをいじってみましょう.
 

とりあえずデフォルトの設定でOKを押すと,アライメントが始まります.
 

アライメントができました.うまく揃っている部分と,ごちゃごちゃになっている部分があります.

これはリボソームRNAの配列なので,立体構造をとったときの活性部位と不活性部位です.

ごちゃごちゃの部分はギャップが多いエリアを除いてしまうか,

立体構造を考慮して系統解析を行います.
 

今日はここまで.


RAxMLによる最尤法系統樹推定

※もっと良いやり方をご存知の方はそっと教えてください.

塩基配列データ作成(MEGA, SeaView)

MEGAでの作業

  • MEGAでアライメントを行ったセッションを出力する.配列の結合を行う場合は,その後SeaViewで読み込むので,”.nexus” or “.nex”でも”.fasta” or “.fas”とかでもOK.行わない場合は”.phylip or “.phy”で出力.
  • ↑のファイルのOTU名は,それぞれのファイルで同じにしておく(”Ophi281_COI”とか”Ophi281_16S”じゃダメ).また,配列内のギャップ(”-“で指定する事が多い)と混同する事が多いため,OTU名には”-“は使わないほうがいい.

SeaViewでの作業(配列を結合する場合)

  • FileタブのOpen ***(***はファイルのフォーマット)を選び,結合させたい配列その1を選ぶ.
  • 同じようにその2,その3を選ぶ.それぞれ別ウィンドウで表示されればOKだが,不安な場合はFileタブのNew windowを選び,新しいウィンドウで配列を読み込めばOK.
  • FileタブのConcatenateを選ぶと,結合先の配列選ぶウィンドウが表示されるので,結合したい配列を選ぶ.by nameを選び,”OK”をクリック.
  • 上手くいけば,各OTUの後に配列が付加される.
  • これで準備完了.最終的な結合配列をFileタブのSave asからphylip形式で保存する(RA.phyとしましょう).
最尤法系統樹作成(RAxML)
  • 解析用の適当なフォルダ(RAとしましょう)を作り,その中にRA.phyを入れておく.
  • RA内にパーティション分け用のファイルを作っておく.例えば1-300 bpまでが16S, 301-1200までがCOIの場合は,以下のようなテキストデータファイルを作ります(partition.txtとしましょう).

DNA, 16S=1-300
DNA, COI=301-1200


  • RA内に”raxmlHPC.exe”を入れておく.これがRAxMLの起動ファイルです.これで準備完了.
  • コマンドプロンプトを起動(ウィンドウズメニューから探すか,ファイル検索で”cmd.exe”を検索)し,”cd 「RAのアドレス」”を入力してRA内に移動します.「RAのアドレス」はフォルダのアドレスバーの部分を左クリックすると”C:\Users\****\Desktop\研究\分子系統解析\RA”みたいなのが選択できるので,コピーしてコマンドプロンプト内で右クリックするとペーストできます.
  • “>”の後ろにRAxMLの起動コマンドを入力します.このコマンドは色々あるのですが,例えば

raxmlHPC -f a -m GTRGAMMA -p 12345 -x 12345 -# 1000 -s RA.phy -q partition.txt -n out

  • と入力すれば解析が始まり,GTRGAMMAモデルでブートストラップ1000回行った最尤法系統樹が得られます.
  • このコマンドなどについては井上潤さんのページにすごく詳しいです.
  • 出力されたファイルのうち,”RAxML_bipartitions.out”が系統樹のファイルです.TreeViewやFigtreeなどで閲覧して見てみましょう.

更新:2017年3月5日


ハプロタイプネットワーク構築

※もっと良いやり方をご存知の方はそっと教えてください.

塩基配列データ作成(MEGA, DnaSP)

MEGAでの作業

  • MEGAでアライメントを行ったセッションを,”.nexus”で出力する.

DnaSPでの作業

  • 出力したファイルをDnaSPで読み込む(File→Open Data File).
  • Data Informationウィンドウが表示されたら読み込み完了.Closeでウィンドウを閉じる.この時,Nは読み込むが,その他の記号(YとかWとか)は読み込まないようなので,おとなしくNに変換するか,その配列もしくはOTUは削除する.
  • Generate→Haplotype Data Fileで,Haplotype/DNA… ウィンドウを表示させる.GenerateのRoehl Data File (Network software)をチェックし,.rdfファイルを出力する.
  • この時Output of:… というウィンドウが表示されるが,これはハプロタイプとOTU名の対応が書かれた重要なデータなので,メモ帳にコピペなどをしておく(Haplotype/DNA… ウィンドウでNEXUS Haplotype Data Fileにチェックを入れば,.nexとして出力できる).
ハプロタイプネットワーク作成(Network)

Network での作業

  • Data Entry→Import rdf fileで,.rdfファイルを読み込む.
  • File selection ウィンドウでDNA Nucleotide dataがチェックされている事を確認し,Continueをクリック→.rdfファイルを開く.
  • RDF-Editorウィンドウで各種設定を確認・変更可能.設定が終わったらSaveをクリックし,元の.rdfファイルを上書き,あるいは別名で保存.
  • RDF-EditorウィンドウをExitで閉じ,Calculate Network→Network Calculations→Median JoiningでMedian Joiningウィンドウが開く.
  • Median JoiningウィンドウでFile→Openで.rdfファイルを再び開く.
  • Median JoiningウィンドウでCalculate networkをクリックすると計算が開始され,.outファイルが出力される.
  • メインウィンドウのDraw networkでDraw Networkウィンドウを表示させ,File→Openで/outファイルを開く.
  • OK→Yes→Continue→Finaliseでハプロタイプネットワークが完成.各ハプロタイプを右クリックすると,円グラフの組成がいじれる.

 

更新:2017年3月4日