#R##Phylogenetic tree#construction methods tips caution

1.获取序列

一般从GenBank搜索比对下载,形式类似

>gi|584292432|gb|KF850545.1| Pseudomonas stutzeri strain DQ1 16S ribosomal RNA gene, partial sequence​

AGAGTTTGATCATGGCTCAGATTGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAGCGGATGAGTGGAGCTTGCTCC​...

大于号后分别是gi号、gb号(或其它)、物种菌株、序列类型等等。换行是实际序列。

如果我们已知gi号或gb号,可以在R中直接从GenBank下载,而且有一个好处是下载的内容包含物种名,可以直接用于树的tip。

library(phyloch)​##载入包,自动载入ape

#Loading required package: ape

#Warning message:

#package ape?was built under R version 3.2.3

sylvia.seq <- read.GenBank(x)##x就是包含gi号的向量

attr(sylvia.seq, "species")##查看下载序列文件的物种名

当然如果有的序列中有相同的物种,只保存序列就可以了,但是要把每个序列的名字替换一下,用1:length(x)替换,后边构树还要替换成实际的tips。这时应该做的是把GenBank下载的文件读到R中,把每个序列的大于号提取出来,就是每个序列的 name,保存成excel能打开的格式(txt),因为有“|”的存在所以很容易分成若干的列,最后一列就是物种名,但是要去掉序列的类型信息。

2.比对

序列比对有很多软件可以使用:clustal(sylvia.clus <- clustal(sylvia.seq, exec = shortPathName("C:/Program Files/ClustalW2/clustalw2.exe")))、mafft(sylvia.maff <- mafft(sylvia.seq, path = "D:/R/tree/mafft/mafft.bat"))等。对于16S,可以用在线数据库比对,比如silva。silva的设置比较简单,建议选择最下边那个,把末端没有比对上去的去掉。

#R##Phylogenetic tree#construction methods tips caution_第1张图片
silva.png

当然,clustal等的比对也可以用在线的方式,有很多做这个事情的网站。

silva的比对参考序列非常大,所以比对后的文件相应地也很大,插入很多没有比对上去的“-”。如果候选的序列在某个位置全部是“-”,这是无效的信息,构树前还是要去掉。用mothur(mothur > filter.seqs(fasta=amazon.unique.align, vertical=T) ##fasta文件名中不能有短横线)。这样得到的序列文件中,序列末端若是没有比对上则是一个点,要替换成问号(ml)或是N(bayes)才能构树。ml的格式fasta就行,bayes要nexus(ev.seq<-read.dna(Myfile,format = "fasta");write.nex(ev.seq,file = "ev.nex"))。

3.构树

构树一般有3种方法,ml、bayes和mp,这里只用前两种。构树是件消耗电脑资源的事,本地没有服务器的话就不要用小本本跑了,推荐在线服务器The CIPRES Science Gateway。

  • ml的设置


    #R##Phylogenetic tree#construction methods tips caution_第2张图片
    cipres.jpg
  • bayes的设置
    #R##Phylogenetic tree#construction methods tips caution_第3张图片
    bayes.jpg

    所得的文件RAxML_bipartitions.resultinfile.nex.con.tre,要在R里替换实际的tips。
    tr$tip.label,去掉[]和"",并在数字间加上逗点,
taxa.ev<-genbank.no[,5]##保存的excel表,[,5]表示实际的物种名在第五列
taxa.ev<-as.character(taxa.ev)
tr$tip.label<-taxa.ev[c(1,70,2,3,4,...)]

然后就可以作图了。

4.显示

pdf("tr.bayes.0504.pdf", family = "serif",width = 15, height = 25)
plot(ladderize(tr,F), no.margin = TRUE, font = 1)##阶梯型排序
nodelabels(tr$node.label,adj = c(1, -0.5), frame = "none", bg = "white")
add.scale.bar(1,1,length = 0.1,lcol = "red")
dev.off()

bayes输出的文件是nex格式,只保留树的信息,其他删除,才能读到R里。替换tips后保存树,用Figtree加上bootstrap和后验概率值,还有能够合并类似tips,tips是斜体等优点,设置好后输出成PDF。最后用illustrator编辑修改,比如枝加粗、加箭头。

#R##Phylogenetic tree#construction methods tips caution_第4张图片
tree1.png

上面是核酸序列,有时需要用氨基酸序列构建系统发育树,步骤相似,关键区别在于替换模型的选择。核酸序列一般用的模型有GTR相关,蛋白则常用WAGLG相关,这些多数可以在这个聚合网站上实现。


ps一些文章中相关方法的摘抄

#R##Phylogenetic tree#construction methods tips caution_第5张图片
bayes.png
#R##Phylogenetic tree#construction methods tips caution_第6张图片
ml1.png

#R##Phylogenetic tree#construction methods tips caution_第7张图片
ml2.png

你可能感兴趣的:(#R##Phylogenetic tree#construction methods tips caution)