单拷贝直系同源基因构建物种进化树

最近用Orthofinder做物种进化树,最后出来的物种树的结构跟已发表研究的结果差距较大,在我的印象里Orthofinder软件是用单拷贝直系同源基因进行建树的,然后跟老师请教之后发现不是,这也就解释了为什么我的结果不够准确,于是重新用单拷贝直系同源基因分析了一遍,最后得到了准确结果,在此记录一下

1 安装Orthofinder

conda install orthofinder 推荐使用conda安装,后续分析的软件都内置了,很省心
再安装一个seqkit,非常好用

2 获得单拷贝直系同源基因序列

将自己需要分析的物种的蛋白文件放到一个文件夹里,运行

orthofinder  -f ./species/ -t 32 -a 32

分析速度还是很快的,总共分析了15个二倍体的基因组蛋白序列,有225组比对,运行时间应该是2-3小时吧
最后会生成一个结果文件,里面包含有以下几项内容

结果文件夹

需要的单拷贝直系同源基因序列在 Single_Copy_Orthologue_Sequences 文件夹里

3 分析并建树

使用mafft软件比对,使用seqkit对齐物种并将序列转为一行,最后用paste命令把序列连起来,类似于重测序分析时把SNP连起来建树

cd ./Single_Copy_Orthologue_Sequences
ls *fa|while read file;do mafft --auto $file > $file.aln;done
ls *aln|while read file;do seqkit sort $file|seqkit seq -w 0 > $file.format;done
paste -d " " *format > all.aln.fa
python ~/hychao/script/format_mergeFA.py all.aln.fa > format.all.aln.fa

paste之后名字太长了,写个程序变得简约一些,也可以下载到本地在文本编辑器上改成相应的物种名称
在这里 更新 下,实际上比对完成之后,有些物种基因可能是注释不够好,在文件中表现为只有个别基因有突出的一大段,然后其他物种的直系同源基因在对应区域是很长的一段gap,这时候就需要对明显不符合要求的序列进行修剪,我在这里使用的软件是trimAI,关于这个软件的详细介绍可以看构建进化树的简单方法 - 知乎 (zhihu.com)

~/hychao/biosoft/trimal-trimAl/source/trimal -in format.all.aln.fa -out trimal.format.all.aln.fa -automated1
fasttree  tree

trim之前的结果:


例子

trim之后的结果:


栗子

最后生成的树文件可以下载到本地,用 iTOL 美化一下,树结构没有问题

进化树展示

需要说一点的是:

iqtree,raxml-ng等建树软件的准确度相对于fasttree是更高的,但如果你的序列很长很多,运行起来实在是巨慢无比,15个物种的500个直系同源基因,我用iqtree运行了好几个小时都没结果,fasttree几分钟就搞定!

4 增加或删除物种

分析的时候忘了加某一个物种了,可以把想要添加的物种蛋白文件放到一个文件夹里,然后运行 orthofinder -f ./path to add dir/ -b ./old OrthoFinder WorkingDirectory/
如果要删除物种
则进入之前分析的结果文件夹,然后进入到 WorkingDirectory 目录,vi SpeciesIDs.txt,在想要删除的物种前面加个 # ,然后运行 orthofinder -b ./old OrthoFinder WorkingDirectory/

Orthofinder可以说对用户非常友好的软件了,简单的安装及运行,结果也便于后续进行其他的个性化分析,后面会再学习下有关这个软件的其他分析内容

你可能感兴趣的:(单拷贝直系同源基因构建物种进化树)