当我们用多个串联基因建树时,如果把多基因串联数据看做一个整体,只计算整体的核苷酸替换模型及参数,那么就是不分区建树,操作方法和单基因的建树相同,具体的操作方法参照之前写过的文章。
但是,如果我们考虑到多个基因的变异速率存在差异,而且同一蛋白编码基因中编码同一氨基酸的三个位点的核苷酸的变异速率也存在差异,希望分别对这些位点设置其最优的核苷酸替换模型,就要对数据进行分区,分别计算不同区的最优模型,这就是分区建树。支持分区建树的软件包括:RaxML,MrBayes和Beast等。
PartitionFinder安装的方法参考之前写过的这个:
https://www.jianshu.com/p/3ef9e6041dee
以下内容主要参考了官方教程和帮助手册,详见:
http://www.robertlanfear.com/partitionfinder/tutorial/
http://www.robertlanfear.com/partitionfinder/assets/Manual_v2.1.x.pdf
1获取phylip格式的已完成比对的数据文件
首先,把比对好的序列转换为phylip格式的文件,这一步软件geneious( http://www.geneious.com/)的试用版(免费)就可以完成。
打开geneious,上方工具栏File-Import-files,在弹出的Choose Files to Import对话框中,选择要导入的fasta或其他格式的已经完成多序列比对的序列文件,点击右下方Import。
上方工具栏File-Export-Documents,在弹出的Select Expror Location对话框中,选择输出文件的路径,在Files of Type选项框中选择phylip alignment,点击右下方Export。忽略第一个对话框,在弹出的第二个对话框Phylip alignment Export中选择Relaxed Phylip-Full length names followed by a single space。
2建立partition_finder.cfg文件
cfg文件就是告诉partitionfinder你想要怎么分析的文件,需要和phylip文件放在同一个文件夹下。
建立自己的cfg文件最简单的方法就是在/PartitionFinder/examples/nucleotide folder下的已有的partition_finder.cfg文件的基础上进行修改:
alignment选项后是要分析的比对文件的名称。
branchlengths选项,因为不好做预判,这里选择linked,详见manual文件。
models选项是定义每个分区要分析的核苷酸替换模型,可以根据你要做的分析选择,详见manual文件。
model_selection选项指的是选择核苷酸替换模型的指标,一般在aicc(Aikaike Information Criterion)和bic(Bayesian Information Criterion)之间选择。
data_blocks是很重要的,是你通过预判,告诉软件哪些部分应该具有相同的演化方式,partitionfinder不会拆分datablocks里的subset。这里例子中的12S和16S是两个rRNA基因,把单个基因整体作为一个subset。COX1、COX2、COX3等是蛋白编码基因,因此,分别把同一基因中编码氨基酸的第一位、第二位和第三位密码子的核苷酸位点作为一个subset。
需要注意的是,因为在这里我对编码同一氨基酸的三个核苷酸位点进行了分区,因此在对序列文件进行比对时,为了不破坏编码同一氨基酸的三个核苷酸,我选择的比对方式是translation align。
schemes选择greedy。
之后我们把phy.格式的比对文件和partitionfinder.cfg文件放在名为test的同一文件夹下,test文件夹放在partitionfinder-2.1.1下的examples文件夹下。
3 运行partitionfinder
如果是在linux系统下,在命令行交互界面中输入(默认已经成功安装了partitionfinder,并进入到partitionfinder-2.1.1路径下):
python PartitionFinder.py examples/test
幸运的话,应该开始正常运行了。任务完成后,结果会出现在test文件中的analysis中的best_scheme.txt文件中。
但是我没有那么幸运,没有正常运行,于是我又尝试了用window系统,下面是在windows系统下运行的方法:
首先是在windows系统下安装conda,python2.7,然后用conda安装partitionfinder依赖的包。去官网下载partitionfinder的windows版本,解压后放置在任一文件夹下。
conda在win10系统下的安装详情见https://www.jianshu.com/p/3ef9e6041dee
现在假设已经安装完成anaconda
在win10左下角的搜索框中输入anaconda,打开Anaconda Powershell Prompt
#创建一个名为partitionfinder,安装2.7版本的python的环境
conda create -n partitionfinder python=2.7
#激活环境
conda activate partationfinder
#安装partitionfinder所依赖的软件包(如果在安装包的时候报错,可以试试去官网上查看安装命令:https://anaconda.org/anaconda/repo)
conda install numpy pandas pytables pyparsing scipy
conda install -c anaconda scikit-learn
#运行partitionfinder,其中D:\partitionfinder-2.1.1\partitionfinder-2.1.1\partitionfinder.py是告诉电脑partitionfinder.py所在的位置,partitionfinder.py就在解压后的partitionfinder下载包里面,D:\partitionfinder-2.1.1\partitionfinder-2.1.1\examples\nucleotide告诉电脑要分析的数据文件所在的位置,数据文件里就是phy.格式的比对文件和partitionfinder.cfg文件
python D:\partitionfinder-2.1.1\partitionfinder-2.1.1\partitionfinder.py D:\partitionfinder-2.1.1\partitionfinder-2.1.1\examples\nucleotide
4 结果解读
打开best_scheme.txt文件,我们找到其中用于最大似然法分区的结果部分:
我们把以下结果复制到一个.txt文件中,:
如果使用CIPRES网站构建最大似然属,首先在把该.txt文件上传到Data文件夹下(详细介绍参考之前的这篇文章https://www.jianshu.com/p/cdd3b3adc16f),然后在设定参数的时候,在Use a mixed/partitioned model? (-q) 一栏中选择该.txt 文件,就把能够分区构建最大似然树了。
如果是构建贝叶斯树,那么在best_scheme.txt文件中找到其中用于贝叶斯树分区的结果部分:
参考之前贝叶斯法建树的文章(https://www.jianshu.com/p/8b10ef5c26e1),在准备.nex文件的时候,把上述的分区结果添加上去就可以了: