Skip to content

分子系統解析

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で枝の上下を入れ替えたりできます.

良い時代になりました.



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



今日はここまで.


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

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

iq treeは,パーティション分けが可能な最尤法系統樹推定ソフトです.

コマンドプロンプト対応で非常に使い勝手が良く,しかも解析速度がべらぼうに速いのが特徴です.

RAxMLがコマンドプロンプトに対応した今,やり方自体はRAxMLとほぼ同じです.
 

塩基配列データ作成(MEGA, SeaVeiwなど)
  • 事前準備として解析用フォルダをつくりましょう(iqとします).

アライメントソフトでの作業

  • アライメントを行ったセッションを.phy形式で出力する(iq.phyとしましょう).
  • パーティション分けとそれぞれのモデル指定のファイルを作る(iq.nexとしましょう).以下は例と解説(赤字)です.

#nexus

begin sets;

このコマンドで読み込みを開始します.

 

charset part1 = 1-430 431-1940\3 432-1940\3;

charset part2 = 433-1940\3;

charset part3 = 1941-2889;

ここで,モデルごとのパーティション分けを指定します.

ハイフンでつないだ配列が一つの領域で,それぞれをスペースで分けます.

アミノ酸指定領域の場合は,”日本円マーク”か”\”で各コドンをします.

ここでは,431番目から始まるアミノ酸指定の第一コドンと第二コドンは同じパーティションですが,

第三コドンは違うパーティションとしています.

 

charpartition mine = GTR+I+G:part1, TN93+I+G:part2, K2P+G: part3;

ここで,各パーティションごとのモデルを指定します.

よくモデルテストで見る形式をそのまま入力すればよいので楽です.

主な塩基置換モデルのリストはコチラ

 

end;

おしまい.


iqtreeを走らせる(コマンドプロンプト,iqtree)
  • 事前準備として,iqフォルダにiqtreeからDLしたiqtree.exeとiqtree-click.exeを入れておきます.

コマンドプロンプトでの作業

  • コマンドプロンプトを立ち上げ,iqフォルダまでのパスを通します.
  • iqtreeを走らせるためのコマンドを入力します.以下,例とコマンドの解説(赤字)です.

iqtree -s iq.phy -spp iq.nex -m TEST -bb 1000

“-s”で配列ファイルの読み込みを行います.

“-spp”でパーティション分けファイルの読み込み,

“-m” で検定方法を指定,

“-bb”でブートストラップ検定とその回数の指定を行います.


 

  • 解析が終わったら,iqフォルダ内に解析のログファイルや,系統樹ファイルiq.phy.treefileが生成されるはずです.
  • 参考までに,iqtreeでは他にも様々なコマンドがあります.コチラをご参照ください.

 

今日はここまで.


ArelquinによるAMOVA解析

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

参考

http://hanzawalab.blog.fc2.com/blog-entry-43.html

http://nonomasu.blog.fc2.com/blog-entry-7.html

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

MEGAでの作業

  • MEGAでアライメントを行ったセッションをnexusファイルで出力する(Amo.nexusとしましょう).この段階で,AMOVA解析で扱う集団ごとにまとまるように配列の順番を入れ替えておくと後が楽.

DnaSPでの作業

  • 解析用のフォルダ(Amoとしましょう)を作り,その中にAmo.nexusを入れておく.

  • DnaSPを立ち上げ,File→Open Data FileでAmo.nexusを読み込む.
     

 

  • Data Informationが表示されれば,読み込み成功.Data InformationをCloseで閉じる.
     

 

  • Data→Formatでデータの形式を指定する.例えばミトコンドリアの16Sの場合は,DNA, Haploid, Mitochondorialにチェックを入れてOKをクリック.



 

  • Data→Define Sequence SetsでOTUのグループ分けを指定する.List of All Sequenesから,”>>”でIncluded  ListにOTUを移動し,Add new Sequence Setで名前を付ける.
  • 全てのグループに名前を付けたら,Update All Entries(赤文字になっているはず)をクリック.
  • Save/Export Data as…→Arlequin File Formatを選ぶ.
     

  • Not considered, Included,  Arlequin Haplotype Listにチェックが入っている事を確認し,OK.
  • .hapと.arpの二つを保存する.Amo.hap, Amo.arpとしましょう..hapは.arpのバッチファイル的なものらしく,必ずペアでAmoに保存しておく.
  • Amova解析の際には各集団を更に上位の集団にまとめる必要があるので,以下のテキストをAmo.arpの末尾に貼り付ける.赤字は任意に変えられる部分.

[[Structure]]

StructureName=”任意の名前
NbGroups=4

Group={
DnaSPで定義したグループ名1
}

Group={
DnaSPで定義したグループ名2
DnaSPで定義したグループ名3
}

Group={
DnaSPで定義したグループ名4

Group={
DnaSPで定義したグループ名5
DnaSPで定義したグループ名6
}


  • これでArlequin用の準備完了 .

※Arelquin上でもっと簡単にグループ設定する方法がありました↓

AMOVA解析(Arlequin)
  • Arelquinを起動し,”Open project”でAmo.arpを選択.左側の枠にSamplesやGroupsが表示されたらOK.

  • グループを設定する場合は,Structure Editorをクリックし,Population samplesの横のGroup(デフォルトでは0が表示されている)をダブルクリックし,任意のグループ名を入れると.右側の枠に階層構造として出力される.最後はUpdate ProjectをクリックすればOK.Projectタブでグループ分けが出来たかどうか確認できる.
  • “Settings”でAMOVAを選び,Standard AMOVA…をチェックし,プルダウンメニューの下の方で塩基置換モデルを選べる.普通はKimura 2Pが無難.
  • “Start”をクリックして解析.うまくいけば,Amo内にログなどが入ったAmo.resというフォルダが作成される.この中のAmo.xmlにAMOVA解析結果がHTML形式で保存されている.

更新:2017/3/11


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日