OrthoMCL介绍

评论7,614

1. OrthoMCL的用途

基于序列的相似性,OrthoMCL能将一组proteins(比如全基因组的proteins)归类到ortholog groups、in-paralogs groups和co-orthologs。

2. OrthoMCL-DB

OrthoMCL-DB包含了很多proteins,这些proteins来自一些已经完全测序的真核或原核生物的基因组。OrthoMCL-DB将这些proteins进行了聚类,分成很多的ortholog groups。
2010.5.31,发布了OrthoMCL-DB第4版,包含 116,536个ortholog groups、1,270,853个proteins、88个真核生物基因组、16个古菌基因组、34个细菌基因组。
2011.5.31,发布了OrthoMCL-DB第5版,包含 124,740个ortholog groups、1,398,546 个proteins、150个基因组
2013年末即将发布OrthoMCL-DB第6版。

3. OrthoMCL的两种使用方法

1. OrthoMCL-DB的官网已经将数据中的proteins进行了ortholog的聚类,其网站提供了一个工具,用于接收上传的基因组proteins,再将这些proteins group到相应的ortholog groups中。官网提供的工具Assign your proteins to OrthoMCL Groups用于进行分析。
2. 如果要对多个基因组的proteomes进行聚类,则可以使用OrthoMCL单机版的软件来进行运算。其用法详见:OrthoMCL的使用

4. OrthoMCL算法

1. 将多个proteomes转换成orthomcl兼容的FASTA文件。
2. 移除低质量的序列。
3. All-versus-All BLASTP with 1e-5 cutoff。即使用这些proteomes的protein sequences构建blast数据库,再将所有的这些序列和数据库进行BLASTP比对,取evalue小于1e-5的比对结果。
4. Filter by percent match length。计算比对结果的percent match length ( 所有hsp中比对上序列的长度之和 / 两条序列中短的那条序列的长度 )。取50%的cutoff值。
5. 寻找不同物种间potential ortholog pairs(两两物种的protein序列相互是best hits);寻找同一物种内in-paralog pairs(相互之间是better hits,即对于2个序列之中的任意一条序列,和其in-paralog序列之间的evalue值 <= 这条序列和其它物种比对的evalue值).
6. 根据上一步结果寻找co-ortholog pairs(pairs connected by orhthology and in-paralog,并且pairs之间的evalue值低于1e-5).
7. 对所有的pairs进行E-values的Normalization,以利于下一步MCL的计算。见下一部分内容,或参考OrthoMCL Algorithm Document
8. 将所有的ortholog,in-paralog和co-ortholog pairs,以及它们的标准化后的weight值输入到MCL程序中,来进行聚类分群。MCL documentation

5. pairs的evalue计算和标准化

pairs的evalue计算:pairs的两条序列相互blast后有两个evalue值,这两个值常常不相等。但是为了计算需要,于是pairs的之间的两个evalue值要进行一个计算,得到pairs weight,weight= ( -log10(evalue1) + -log10(evalue2) ) / 2 。
pairs的evalue的标准化:1. 对于in-paralog pairs,在某一个基因组中,取两条序列中任意一条序列有ortholog的in-paralog pairs为有效in-paralog pairs。若在这个基因组没有这样的pairs,则该基因组所有的in-paralog pairs都为有效的in-paalog pairs。最后得到所有基因组所有有效的in-paralog pairs。然后取这些有效in-paralog pairs的weight的平均值。最后,每个in-paralog pair的evalue标准化后的值为其weight除以average weight。 2. 对于ortholog或co-ortholog pairs则简单很多,求所有weight的平均值,然后使用各个pair的weight除以average weight,则将其标准化了。

6. 网络版的OrthoMCL的使用

OrthoMCL-DB已经对150个proteomes进行了OrthoMCL的分析,对orthologs进行了聚类。这个过程由于数据量大,因此,在好几百的CPU资源下也需要好几个星期才能做完。
在OrthoMCL-DB上上载 a set of proteins,服务器则会将所有上传的proteins比对到OrthoMCL-DB中所有的proteins上;选取evalue 1e-5和50% match的cutoff;然后将protein归类到其top hit所对应的protein的类上;如果top hit所对应的proteins没有group,则该protein归类到NO_GROUP。
然后,再对上一步cutoff掉的proteins来使用OrthoMCL-DB的in-paralog算法来创建in-paralogs pairs,然后再进行MCL的聚类。
使用该方法,最后将a set of proteins进行了同源基因的聚类,但是缺点如下:
1. 这种方法是单向最佳,根据protein比对的最佳结果去归类到已有的group中去。但是反过来,最佳比对结果对应的protein不一定和query protein是最佳的。这和OrthoMCL的算法是有出入的,所以该方法省了时间,但是结果和真正的结果是有一定差别的。
2. 只使用cutoff后剩下的proteins进行in-paralog分析,而没有进行所有query proteins之间的in-paralog分析。
3. 没有ortholog pairs和co-ortholog pairs的信息,没法进行单拷贝同源基因的提取与分析。

7. 本地OrthoMCL的使用

对指定的a set of proteomes进行同源基因分析,则使用本地的OrthoMCL进行分析。而官网不提供这种服务,因为消耗的计算机资源过大。

8. 注意事项

1. 序列都是使用protein序列,而不是nucleotide序列,是因为protein序列更精确。
2. proteomes中的序列要去除可变剪切,只留取alternative proteins中长度最长的。否则在有alternative proteins存在的情况下,则会造成pseudo-in-paralogs(即alternative proteins称为in-paralogs),给后续的分析造成麻烦。
3. paralog分为in-paralog和out-paralog。in-paralog是指同一个物种的paralogs的分化发生在物种分化之后,这样的话,代表in-paralogs之间的序列相似性比其orthologs的相似性要高;通过OrthoMCL的原理可以看出,很好得到分析。而out-paralog是指paralogs的分化发生在物种分化以前,这代表out-paralogs的序列之间的相似性比某一个物种的orthologs的相似性要低;这样是很不好分析的,因为不好定阈值,或者得到的结果不易得不到大众的认可;OrthoMCL也没进行out-paralog的分析;当然,也可以只将一个query proteome输入到orthomcl来进行分析,得到的是所有paralog分析结果,包含了out-paralog。

原文来自:http://www.hzaumycology.com/chenlianfu_blog/?p=1839

发表评论

匿名网友