安装orthofinder 使用conda安装
安装软件前,先设置一个小环境,不要直接在自己账户的当前环境内安装软件;你可以创建很多小环境名,有的小环境坏了,你不要就可以了,就好比柜子坏了,你可以扔了,但是如果你把自己账户环境折腾坏了,好比储藏室被你搞坏了,那恢复的代价就高了.
执行命令:conda create-n orthofinder orthofinder=2.5.4 #最新是orthofinder=2.5.4版本
安装完成后,执行命令:conda activate orthofinder #To activate this environment
相对应的为: conda deactivate # To deactivate an active environment
要是想查看查看已经存在小环境名:
conda info -e
conda info --envs
conda env list
这三个命令都可以。
# conda environments: 以下是我目前所有的环境
base * /home/dreamer/anaconda3
orthofinder /home/dreamer/anaconda3/envs/orthofinder
pfam_scan /home/dreamer/anaconda3/envs/pfam_scan
之后检测是否安装成功,执行命令:orthofinder -h #test run orthofinder注意一定要在orthofinder这个文件夹在执行,不然容易出错。
运行orthofinder
#用miniconda安装的orthofinder找不到示例文件,就直接下载orthofinder包,然后将里头的ExampleData复制到服务器里的orthofinder文件里。
#运行orthofinder:orthofinder -f ExampleData/ -S diamond -M msa -T raxml -t 8
①参数介绍及选择
orthofinder -f Dataset -M msa -S diamond -T iqtree -t 24 -a 24 > orthofinder.log &
(注:& 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &)
orthofinder参数详情:
-t 并行序列搜索线程数(默认= 16)
-a 并行分析线程数(默认值= 1)
-M 基因树推断方法。可选:dendroblast和msa(默认= dendroblast)推荐msa
-S 序列搜索程序(默认= blast)选项:blast,mmseqs,,blast_gz,diamond(推荐使用diamond,比对速度很给力)
-A 多序列联配方式,需要添加参数-M msa时才有效;(默认= mafft)可选择:muscle,mafft
-T 建树方法,需要添加参数-M msa时才有效,(默认 = fasttree)可选:iqtree,raxml-ng,fasttree,raxml(推荐)
-s <文件> 可指定特定的根物种树
-I 设定MCL的通胀参数(默认 = 1.5)
-x Info用于以othoXML格式输出结果
-p 将临时pickle文件写入到
-l 只执行单向序列搜索
-n 名称以附加到结果目录
-h 打印帮助文本
如果只需要查找直系同源基因,只需接“-f” 参数即可;此步也可建树,采用默认的建树方法fasttree,为无根树。
nohup orthofinder -f Dataset & (注:nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。)
如果添加-M msa -T iqtree设定制定参数,可按照设定的参数使用最大似然法构建有根的物种进化树,构建的树为STAG树。
nohup orthofinder -f Dataset -M msa -S diamond -T iqtree -t 24 -a 24 2> orthofinder.log &
关于构建系统进化树,有很多种做法,常见的有利用物种全部的蛋白序列,构建STAG物种树;也有使用单拷贝直系同源基因构建的物种进化树,关于这一点,OrthoFinder查找同源基因,可以输出直系单拷贝同源基因的序列结果,后续也可使用其他构树软件及算法进行进化树构建。关于建树方法,则有距离矩阵法、最大简约法、最大似然法以及贝叶斯;当然目前主流采用的基本为最大似然法和贝叶斯,其中贝叶斯算法计算量巨大,耗时最久,其构建的树也认为最为“逼真”,但文章中使用较多的还是最大似然法,其耗时也需蛮久。
正式运行Orthofinder,相当简单的操作,-f输入目录,里面包含你需要运行的蛋白质fasta文件, -t 所用到的CPU数目。基本的用法就如下,更多的可以去manual中查看。
orthofinder -f Mycoplasma/ -t 2
orthofinder的参数写的很详细,自己查看选择即可。其中有个说明就是在比对和建树是的e值和bootstrap的设置,可以在anaconda/bin/config.json下修改相应程序的参数,添加e值和bootstrap的值。
高级用法:
通过上面的参数,我们可以做一个从蛋白序列到同源基因建树的流程,但是仍然有一些参数无法设置,比如建树过程中的bootstrap。这时候,我们就要修改程序的config.json文件。
如果你是用anaconda安装的orthofinder,那么config.json文件在:anaconda2/bin/config.json
文件开头介绍了修改方法,你可以添加任何你想在流程中使用的软件,只要按照其格式进行命令修改就行。这里主要说一下对其中缘由参数的修改。
如要修改比对过程中的E-value值,那么在相应比对命令里修改数值,blast_gz 里的 -evalue ,diamond 里的 -e 。
如要在iqtree建树过程中增加bootstrap, 则在iqtree的"cmd_line":中添加
-bb 1000 (iqtree的超快bootstrap)或 -b 1000(传统bootstrap)
raxml-ng类似,你可以添加任何你想修改的参数,大家可以在熟悉各软件的的参数后,根据自己的需求更改。
orthofinder -f path/ -S diamond -M msa -T raxml -t 8
# 1. -f 存放你要比对的物种的蛋白序列路径
# 2. -S 比对方法,如果不想等很久的话就diamond吧,毕竟是软件的亮点之一。比对速度是blastp很多倍,结果也差不多。
# 3. -M msa 基因树推断方法
# 4. -T 建树方式,这里选择raxml
# 5. -t 序列搜索线程数,考虑到提交到集群,所以直接用了8个线程
将多个物种的蛋白序列放入data 文件夹下
结果解读:
运行结束后,会在ExampleData里多出一个文件夹,Results_Feb14, 其中Feb14是我运行的日期
生成的结果会存储于Orthofinder/Results_XXX文件中,现在简单看看里面有啥。
我们主要使用Orthoogroups查看正交群的基因和使用 Single_Copy_Orthologue_Sequences里的单拷贝基因构建系统发育树。
直系同源组相关结果文件,将不同的直系同源基因进行分组
Orthogroups.csv:用制表符分隔的文件,每一行是直系同源基因组对应的基因。
Orthogroups.txt: 类似于Orthogroups.csv,只不过是OrhtoMCL的输出格式
Orthogroups_UnassignedGenes.csv: 格式同Orthogroups.csv,只不过是物种特异性的基因
Orthogroups.GeneCount.csv:格式同Orthogroups.csv, 只不过不再是基因名信息,而是以基因数。
直系同源相关文件,分析每个直系同源基因组里的直系同源基因之间关系,结果会在Orthologues_Feb14文件夹下,其中Feb14是日期
Gene_Trees: 每个直系同源基因基因组里的基因树
Recon_Gene_Trees:使用OrthoFinder duplication-loss coalescent 模型进行发育树推断
Potential_Rooted_Species_Trees: 可能的有根物种树
SpeciesTree_rooted.txt: 从所有包含STAG支持的直系同源组推断的STAG物种树
SpeciesTree_rooted_node_labels.txt: 同上,只不过多了一个标签信息,用于解释基因重复数据。
比较基因组学的相关结果文件:
Orthogroups_SpeciesOverlaps.csv: 不同物种间的同源基因的交集
SingleCopyOrthogroups.txt: 单基因拷贝组的编号
Statistics_Overall.csv:总体统计信息
Statistics_PerSpecies.csv:分物种统计信息
STAG是一种从所有基因推测物种树的算法,不同于使用单拷贝的直系同源基因进行进化树构建。