前言:因为最近陆陆续续接手了几个物种的基因组项目,这也是生信分析中很大的一块。其中最基础的是组装和注释(当然我们实验室也做组装方法学的研究)。现在随着很多物种基因组的发表,纯基因组想发个很好的文章没有新颖的故事感觉也挺难的。看最近关于基因组的文章,尤其是已经release过的物种,好像都是在炒泛基因组/SV的概念。因为我们做的是多倍体物种,所以更多的就牵扯到多倍体进化,物种的比较等等比较基因组学的内容。所以最近一直在陆陆续续的系统学习一些这方面的分析。
先介绍几个概念。
Orthologs(直系同源物)是在两个物种的最后共同祖先(LCA)中来自单个基因的一对基因。直系同源物是同源性基因,是物种形成事件的结果。Paralogs(旁系同源物)是同源基因,是重复事件的结果。下图就可以看到,不同物种间的alpha-chain gene互为Orthologs(直系同源物)。这时候可以引用一个新名词orthogroup (正交群)就用来形容自一组物种的LCA中的单个基因的基因组(在图中就是alpha chain gene)。然后同一物种间alpha 和beta chain gene互为Paralogs(旁系同源物)。最后所有这些关系都可以由OrthoFinder来识别。
在介绍基因家族收缩和扩张之前,有一个概念是绕不过去的,就是基因家族。
基因家族(gene family),是来源于同一个祖先,由一个基因通过基因重复而产生两个或更多的拷贝而构成的一组基因,它们在结构和功能上具有明显的相似性,编码相似的蛋白质产物,同一家族基因可以紧密排列在一起,形成一个基因簇,但多数时候,它们是分散在同一染色体的不同位置,或者存在于不同的染色体上的,各自具有不同的表达调控模式。在基因组项目中,通常会选择自己要研究的物种和其近缘的物种通过比对来寻找基因家族。
谈论到直系同源基因分析的时候,大部分教程都是介绍OrthoMCL,这是2003年发表的一个工具,目前的引用次数已经达到了3000多,但这个软件似乎在2013年之后就不在更新,而且安装时还需要用到MySQL(GitHub上有人尝试从MySQL转到sqlite)。
而OrthoFinder则是2015年出现的软件,目前已有400多引用。该软件持续更新,安装更加友好,因此决定使用它来做直系同源基因的相关分析。
那么,OrthoFinder能做什么?
OrthoFinder: solving fundamental biases inwhole genome comparisons dramatically improves orthogroup inference accuracy提到,它的优点就是比其他的直系同源基因组的推断软件准确,并且速度还快。
此外它还能分析所提供物种的系统发育树,将基因树中的基因重复事件映射到物种树的分支上,还提供了一些比较基因组学中的统计结果。
OrthoFinder的分析过程分为如下几步:
1. BLAST all-vs-all搜索。使用BLASTP以evalue=10e-3进行搜索,寻找潜在的同源基因。(除了BLAST, 还可以选择DIAMOND和MMSeq2)
2. 基于基因长度和系统发育距离对BLAST bit得分进行标准化。
3. 使用RBNHs确定同源组序列性相似度的阈值
4. 构建直系同源组图(orthogroup graph),用作MCL的输入
5. 使用MCL对基因进行聚类,划分直系同源组
OrthoFinder2在OrthoFinder的基础上增加了物种系统发育树的构建,流程如下:
1. 为每个直系同源组构建基因系统发育树
2. 使用STAG算法从无根基因树上构建无根物种树
3. 使用STRIDE算法构建有根物种树
4. 有根物种树进一步辅助构建有根基因树
5. 基于Duplication-Loss-Coalescent 模型,有根基因树可以用来推断物种形成和基因复制事件,最后记录在统计信息中。
===安装===
对于我这种安装软件总是无能的人,conda真是拯救了我。
conda install -c bioconda -c conda-forge orthofinder
==测试例子运行===
orthofinder -f ExampleData -S mmseqs
注: -f 指定文件夹
-S 指定序列搜索程序,有blast,mmseqs, blast_gz, diamond可用
so easy!!!
OrthoFinder的基本使用就是如此简单,而且最终效果也基本符合需求。
如果你想根据多序列联配(MSA)结果按照极大似然法构建系统发育树,那么你需要加上-M msa。这样结果会更加准确,但是代价就是运行时间会更久,这是因为OrthoFinder要做10,000 - 20,000个基因树的推断。
OrthoFinder默认用mafft进行多序列联配,用fasttree进行进化树推断。多序列联配软件还支持muscle, 进化树推断软件还支持iqtree, raxml-ng, raxml。例如参数可以设置为-M msa -Amafft -T raxml.
并行化参数: -t参数指定序列搜索时的线程数,-a指的是序列搜索后分析的CPU数。
===结果文件===
运行结束后,会在ExampleData里多出一个文件夹,Results_ Jun07, 其中Jun07是我运行的日期
(1) Results Files: Orthogroups
包含一个主文件“Orthogroups.csv”和两个支持文件:
Orthogroups.csv,每一行为一个group,每一列为一个物种,行列交汇处为基因名称。
Orthogroups_UnassignedGenes.csv,包含所有未分配到任何group的基因名称。
Orthogroups.txt,OrthoMCL格式的输出结果,内容等同于Orthogroups.csv。
(2)Results Files: Comparative_Genomics_Statistics
包含一些统计数据,可用于比较基因组分析、绘图以及质控。
Statistics_Overall.csv和Statistics_PerSpecies.csv,提供基本的描述信息
Orthogroups_SpeciesOverlaps.tsv,两两物种的group共享矩阵
- G50:group中的基因数,使得50%的基因处于该大小或更大的group中。
- O50:最小数量的group,使得50%的基因处于该大小或更大的group中。
- Number of single-copy orthogroups:每个物种中只有一个基因的group(相当于单拷贝核心基因)。这些group是构建物种树和许多其他分析的理想选择。
- Unassigned gene:未与任何其他基因划分到一个group的基因。
(3) Results Files: Orthologues
两两物种间的直系同源基因,每一行为一个group,第一列为group编号,第二列为第一个物种的基因,第三列为第二个物种的基因。同一物种的基因名以“,”分割。直系同源物可以是一对一,一对多或多对多。
(4) Results Files: Gene_Trees and Species_Tree
每个group的基因树和定根的物种树以newick格式输出,可以用各种看树软件展示,如MEGA、iTOL、Dendroscope和FigTree等,个人推荐用iTOL。例子的species的tree展示:
===其它用法===
1. 添加新物种到之前的分析(previous_orthofinder_directory指的是包含“SpeciesIDs.txt”的目录)
orthofinder -bprevious_orthofinder_directory -f new_fasta_directory
2. 从之前的分析中移除物种
从输出目录下找到工作目录“WorkingDirectory”中的“SpeciesIDs.txt”文件,在要移除的物种那一行最前面加上一个“#”并保存,然后运行(previous_orthofinder_directory指的是包含“SpeciesIDs.txt”的目录):
orthofinder -bprevious_orthofinder_directory
3. 同时添加和删除物种
编辑好“SpeciesIDs.txt”后,运行:
orthofinder -b previous_orthofinder_directory-f new_fasta_directory
本文使用 文章同步助手 同步
网友评论