Orthofinder-安装、原理与示例数据运行
OrthoFinder能做什么?
做进化、基因家族分析、比较基因组使用
OrthoFinder: solving fundamental biases in whole genome comparisons dramatically improves orthogroup inference accuracy提到,它的优点就是比其他的直系同源基因组的推断软件准确,并且速度还快。
OrthoFinder 功能
- 查找直系同源组和直系同源物
- 推断所有直系同源组的有根基因树
- 识别基因树中的所有基因重复事件
- 推断有根物种树,并将基因复制事件从基因树映射到物种树上
- 为不同物种基因组间的比较分析提供全面的统计信息
OrthoFinder 功能及优势
- 使用 DIAMOND 软件进行 blast,大幅提高 blast 速度。
- 使用所有 orthogroups 推断物种树,而非只使用单拷贝直系同源组推断物种树,将大量的非单拷贝基因信息利用起来。
- 利用基因复制事件的不可逆性,实现不依赖外群而生成有根物种树和有根基因树。
- 安装、使用简单且提供全面的统计信息,基本满足与进化有关相关的分析的所有需求。
- 通过修改 config.json 文件,OrthoFinder 支持用户自定义调用软件。
此外他还能分析所提供物种的系统发育树,将基因树中的基因重复事件映射到物种树的分支上,还提供了一些比较基因组学中的统计结果。
OrthoFinder 工作流程
- 1.使用 DIAMOND 软件 对输入序列进行 all-vs-all 序列比对。
- 2.使用 MCL(Markov Cluster Algorithm)算法 根据比对结果进行聚类,得到 直系同源组(orthogroup)。其中每个 orthogroup 的蛋白及序列信息存放在 Orthogroup_Sequences 文件夹中,单拷贝 orthogroup 的蛋白及序列信息存放在 Single_Copy_Orthologue_Sequences 文件夹中,orthogroup 的统计信息存放在 Comparative_Genomics_Statistics、Orthogroups 文件夹中。
如 OrthoFinder 自带案例(ExampleData)中总共包含 2733 个基因,MCL 将 2202 个基因划分为 604 个 orthogroups(gene_num > 2),剩余 531 个基因为离散点(每个基因独立成组)。 - 3.使用 FastMe 软件 对每个 orthogroup(gene_num >= species_num)构建 无根基因树(gene tree)。如自带案例中总共生成 324 个基因树文件。
- 4.使用 STAG(Species Tree Inference from All Genes)软件 根据 orthogroups(包含所有物种,如自带案例推断出的 604 个 orthogroups 中只有 316 个 orthogroups 中的同源基因在所有物种中均有分布)推断 无根物种树(species tree)。
通过参数 -M dendroblast 或 -M msa,OrthoFinder 可以调用 STAG 中两种构建物种树的方法:DendroBLAST(默认) 和 CMSA(Concatenated Multiple Sequence Alignment,联合多序列比对)。 - 5.使用 STRIDE(Species Tree Root Inference from Gene Duplication Events) 通过基因复制事件的不可逆性为无根物种树、无根基因树赋根,得到有根物种树、有根基因树、基因间的直系同源关系、基因复制事件。结果存放在文件夹 Species_Tree、Gene_Tree、Orthologues、Gene_Duplication_Events、Comparative_Genomics_Statistics 中。
软件使用--示例数据
在解压缩的OrthoFinder文件目录下(安装见最后)有一个 ExampleData, 里面就是用于测试的数据集。
orthofinder -f ExampleData -S mmseqs
orthofinder-f data\ #存放蛋白的fa数据
-S diamond \ #比对模式:diamond,blast,mmseqs,blast_gz
-M msa \ #基因树推断法:dendroblast,msa(推荐)
-T fasttree\#建树软件:iqtree,fasttree,raxml(推荐), raxml
-t #线程
如果你想根据多序列联配(MSA)结果按照极大似然法构建系统发育树,那么你需要加上-M msa。这样结果会更加准确,但是代价就是运行时间会更久,这是因为OrthoFinder要做10,000 - 20,000个基因树的推断。
OrthoFinder默认用mafft进行多序列联配,用fasttree进行进化树推断。多序列联配软件还支持muscle, 进化树推断软件还支持iqtree, raxml-ng, raxml。例如参数可以设置为-M msa -A mafft -T raxml.
并行化参数: -t参数指定序列搜索时的线程数,-a指的是序列搜索后分析的CPU数。
软件细节
OrthoFinder提供了config.json可以调整不同软件的参数,如下是BLASTP。
图片.png
OrthoFinder默认使用DendroBLAST发育树,也就是根据序列相似度推断进化关系。这是作者推荐的方法,在损失部分准确性的前提下提高了运算效率。当然你可以用-M msa从多序列比对的基础上进行基因树构建。如果你先用了默认的DendroBLAST,想测试下传统的MSA方法,那么也不需要重头运行,因为有一个-b参数可以在复用之前的比对结果。
在物种发育树的推断上,OrthoFinder使用STAG算法,利用所有进行构建系统发育树,而非单拷贝基因。此外当使用MSA方法进行系统发育 树推断时,OrthoFinder为了保证有足够多的基因(大于100)用于分析,除了使用单拷贝基因外,还会挑选大部分是单拷贝基因的直系同源组。这些 直系同源组的基因前后相连,用空缺字符表示缺失的基因,如果某一列存在多余50%的空缺字符,那么该列被剔除。最后基于用户指定的建树软件进行系统发育树 构建。结果在"WorkingDirectory/SpeciesTree_unrooted.txt"
使用STRIDE算法从无根树中推断出有根树, 结果就是"SpeciesTree_rooted.txt".
结果文件
图片.png其中Orthogroups.GeneCount.csv中每一行代表一个基因家族,每一列表示每个物种的基因家族包含多少基因,比如0G0000000这个基因家族,在1物种中没有,在2物种有1个基因,在3物种有8个基因
图片.png
我们选出各个物种中基因数大于0的基因家族,首先看物种1我们不要第一行,然后看物种1,也就是$2,选出大于0的,然后我们需要的是基因家族编号,也即是第一列
sed '1d' Orthogroups. GeneCount. csv | awk '$2 >0 { print $1}' >1. txt
如何安装?
最快的方法
OrthoFinder可以通过conda安装,建议为它新建一个虚拟环境
conda create -n orthofinder orthofinder=2.2.7
包括两两比对软件: blast, diamond, #diamond快,且宣称其方法和比对结果并不比blast逊色
包括多重比对软件: mafft, muscle, #muscle最快, maft最准,这两个软件在多序列比对中宣称排前二
包括建树软件: fasttree, raxml, igtree, #fasttree最快, raxml和iqtree较准
包括聚类软件: mcl, # orthofinder套用的聚类软件
包括其他重要的包和依赖。#一般生信分析都会涉及的依赖,很多都在这里了,比几年前友好多了。
GitHub
OrthoFinder 是一款用 python 编写的程序,依赖 python 和 numpy、scipy 包。若缺少上述依赖则下载 OrthoFinder.tar.gz(58.7MB),若满足则下载 OrthoFinder_source.tar.gz(4.58MB)。下载地址:https://github.com/davidemms/OrthoFinder/releases。下载完成后解压即可,通过文件夹中 orthofinder.py 调用 OrthoFinder(如 $ ./orthofinder.py -h)。
注意!若要使用 -M msa 参数,还要需要自行安装 FastTree、MAFFT 程序。
如果你愿意折腾
你先得安装它的三个依赖工具: MCL, FastME, DIAMOND/MMseqs2/BLAST+
MCL有两种安装方式,最简单的就是用sudo pat-get install mcl
, 但是对于大部分人可能没有root权限,因此这里用源代码编译。http://micans.org/mcl/
wget https://www.micans.org/mcl/src/mcl-latest.tar.gz
tar xf mcl-latest.tar.gz
cd mcl-14.137
./configure --prefix=~/opt/biosoft/mcl-14.137
make -j 20 && make install
之后是MMseqs2, 一个蛋白搜索和聚类工具集,相关文章发表在NBT, NC上。GitHub地址为https://github.com/soedinglab/MMseqs2
wget https://github.com/soedinglab/MMseqs2/releases/download/3-be8f6/MMseqs2-Linux-AVX2.tar.gz
tar xzf MMseqs2-Linux-AVX2.tar.gz
mv mmseqs2 ~/opt/biosoft/
最后安装FastME, 这是一个基于距离的系统发育树推断软件。在http://www.atgc-montpellier.fr/fastme/binaries.php下载,上传到服务器
tar xf fastme-2.1.5.tar.gz
cd fastme-2.1.5
./configure --prefix=/opt/biosoft/fastme-2.1.5
make && make install
<meta charset="utf-8">
BLAST+可装可不装,推荐阅读这或许是我写的最全的BLAST教程
以上软件安装之后,都需要将其添加到环境变量中,才能被OrthoFinder调用。
之后在https://github.com/davidemms/OrthoFinder/releases 寻找最近的稳定版本下载到本地,例如OrthoFinder v2.2.7
tar xzf OrthoFinder-2.2.7.tar.gz
OrthoFinder-2.2.7/orthofinder -h