1.Orthomcl是用来干嘛的?
我们都知道,我们在注释完一些基因组后,会拿到大量的蛋白,而这些蛋白,孤零零的放在那,你不觉得别扭吗?除了常规的pfam、interpro做完了,再做点什么呢?聚个类,找个家族,看看家族水平上的进化什么的貌似也蛮不错,今天就介绍一下如何利用orthomcl来做蛋白家族吧。
OrthoMCL groups proteins into “ortholog groups.” That name is a little misleading
because the groups contain proteins related by:
orthology (recent descent)
in-paralogy (recent duplication)
co-orthology (recent descent and duplication).
Orthomcl会将你所给的各个种的蛋白使用mcl的方法聚到一起,具有很强的鲁棒性
2.去哪下载?
用最新版本的orthomclSoftware-v2.0.3.tar.gz吧
http://orthomcl.org/common/downloads/software/v2.0/
3.安装
这个就不说了,解压即可
4.所需辅助模块
(1)UNIX:OrthMCL Pairs program 仅仅在UNIX上进行过测试
MCL program也仅仅和UNIX兼容
(2)BLAST:我们推荐NCBI BLAST,有两个原因,从理论上来讲,鼻祖;从实际运行商来讲,NCBI BLAST支持tab分割的output格式,这个我们将在下面的第7步用到.
(3)Database:从V1.4版,Orthomcl就开始用数据库的方式管理数据,这样大大的加强和提升了运行效率,在这你可以选择mysql或者oracle,下文我选择mysql来进行阐述.
(4)Hardware:推荐:memory至少4G,disk至少100G
(5)Perl:需要standare perl和DBI
(6)MCL program:参照 http://www.micans.org/mcl/sec_description1.html
(7)Time:时间复杂度:
- all-v-all Balst在500个cpu的cluster上大概运行3天
- 使用orthmclPaire找pairs大概需要16h
- MCL找groups大概需要2h
5.详细过程
(1)安装和配置相关的数据库文件:这个靠你自己了。
(2)安装mcl
从这里下载 http://www.micans.org/mcl/src/mcl-latest.tar.gz
安装手册: http://www.micans.org/mcl/sec_description1.html
(3)安装Orthmcl:
tar -zxvf orthomclSoftware-v2.0.3.tar.gz
解压完之后,你将会看见这样的文件结构
orthomclSoftware/
bin/
...
doc/
UserGuide.txt
orthomcl.config.template
lib/
bin
下面就是下面你要做各步骤的一些脚本
将doc下的orthomcl.config.template配置文件模版拷出来,修改里面的参数配置
# this config assumes a mysql database named 'orthomcl'. adjust according
# to your situation.
dbVendor=mysql #你所选择的数据库,在这我选择使用mysql
dbConnectString=dbi:mysql:orthomcl:node69:3310 #设置你使用的数据库和hostname及其使用端口,默认是3307,在这由于我的服务器上这些端口都被占了,所以我选择3310
dbLogin=xiaenhua #你mysql的用户名
dbPassword=xeh #密码
similarSequencesTable=SimilarSequences #下面都是中间产生的各种表
orthologTable=Ortholog
inParalogTable=InParalog
coOrthologTable=CoOrtholog
interTaxonMatchView=InterTaxonMatch
percentMatchCutoff=50 #Coverage cutoff值 这里选择50%的Coverage,视你自己而定
evalueExponentCutoff=-5 #blast 筛选的e-value 用过blast的都不默认
oracleIndexTblSpc=NONE
(4)orthomclInstallSchema
这一部分就是将你刚才配置的config文件,对mysql进行配置,建立在你所create的database下,建立一些表,Note:在做这步前,请先在你的mysql中新建一个数据库,如create database orthomcl,下面我就使用这个数据库来操作数据。
EXAMPLE: orthomclSoftware/bin/orthomclInstallSchema my_orthomcl_dir/orthomcl.config
my_orthomcl_dir/install_schema.log
(5)orthomclAdjustFasta
该步将会将你的pep文件转换为orthmcl所要求的文件,其实也就是一个改写的过程,格式:
EXAMPLE: orthomclSoftware/bin/orthomclAdjustFasta hsa Homo_sapiens.NCBI36.53.pep.all.fa 1
注:hsa表示你的种名
hsa Homo_sapiens.NCBI36.53.pep.all.fa 你的蛋白序列
1 表示将在你的每个蛋白名前加上种名,并且用|隔开
(6)orthomclFilterFasta
这一步将会对你刚才改写的蛋白文件进行过滤,去除长度小于XX(自己设定),stop coden所占百分比的序列
格式:
EXAMPLE: orthomclSoftware/bin/orthomclFilterFasta my_orthomcl_dir/compliantFasta 10 20
注:10 pep序列长度不低于10
20 stop coden所占的百分比不高于20%
(7)All-v-all BLAST
这一步你必须自己做BLAST,即:将你上一步得到的goodProteins.fasta进行多对多的blast,参数建议设置
-m 8 -F F -b 1000 -v 1000 -a 2
EXAMPLE:blastall -p blastp -i goodProteins.fasta -d goodProteins.fasta -m 8 -F F -b 1000 -v 1000 -a 2 -o all_VS_all.out.tab
这一步事实上为MCL提供相似矩阵
(8)orthomclBlastParser
将上一步得到的blast比对结果进行解析,使用我们开始设好的阈值进行筛选,e-value:1e-5 ;Coverage:50%
EXAMPLE: orthomclSoftware/bin/orthomclBlastParser my_blast_results my_orthomcl_dir/compliantFasta >> my_orthomcl_dir/similarSequences.txt
(9)orthomclLoadBlast
这一步,将我们刚才解析好的blast结果导入到mysql中,便于下面的数据操作
EXAMPLE: orthomclSoftware/bin/orthomclLoadBlast my_orthomcl_dir/orthomcl.config my_orthomcl_dir/similarSequences.txt
在这需要提供我们先前配置好的config文件
(10)orthomclPairs
这一步,将在database中SimilarSequences表中的数据,进行pairs的运算,产生三个表格存在mysql
- PotentialOrthologs table
- PotentialInParalogs table
- PotentialCoOrthologs table
EXAMPLE: orthomclSoftware/bin/orthomclPairs my_orthomcl_dir/orthomcl.config my_orthomcl_dir/orthomcl_pairs.log cleanup=no
(11)orthomclDumpPairsFiles
这一步,将数据库中pairs表进行处理,生成mclInput文件和另外一个文件夹pairs,在这个pairs中,包含着这些蛋白之间的关系,格式如下:
- protein A
- protein B
- their normalized score (See the Orthomcl Algorithm Document).
(12)mcl
这一步开始对上一步给出的输出文件,进行mcl操作,开始聚类
EXAMPLE: orthomclSoftware/bin/orthomclDumpPairsFile my_orthomcl_dir/orthomcl.config
输出文件为mclOutput文件
EXAMPLE: mcl my_orthomcl_dir/mclInput --abc -I 1.5 -o my_orthomcl_dir/mclOutput
这里比较重要的参数是-I 具体看mcl文档
(13)orthomclMclToGroups
将mcl的输出结果转换为groups.txt
在这个文件中,每一行表示一个家族
EXAMPLE:orthomclMclToGroups my_prefix 1 < mclOutput > groups.txt
注:my_prefix 指定在groups.txt中每个家族的前缀,如:GF_ 则在groups.txt中,每个家族以GF_开始
1 表示家族从1开始编码
到这一步位置,你的蛋白家族就算是完工了,groups.txt中的格式如下:
GF_1: r5|r5_37273 r5|r5_7773 r5|r5_39887 r5|r5_42220 r5|r5_40330 r5|r5_37989 r5|r5_40295
GF_2: r5|r5_4187 r5|r5_37986 r5|r5_8138 r5|r5_38203 r5|r5_3914 r5|r5_9613 r5|r5_9656 r5
GF_3: .....
每行代表一个家族,找到了这些家族,下面就可以开始你的其他分析了
来源:http://blog.sina.com.cn/s/blog_5d1edf6a01012imb.html
1F
敬告:跑软件什么的,一定要看英文原版帮助,尤其是真正要运行的时候。中文的扫一扫就行了,千万不要一步一步跟着往下跑!!尤其是新手,要不然各种莫名其妙!!(Ps:前车之鉴啊,被坑了好几天……)
后来看英文的 UserGuide 不到一个晚上就搞定了……唉
B1
@ luowch@foxmail.com 您的这个提醒很好,也很重要,对于PLoB上文章给读者带来误导我们也深表歉意。
本站内文章无论是原创还是转载自其它同行的网站,不可避免存在两个方面问题
1)使用方法和原理过时
2)发表的内容本身不具有有代表性或者内容存在错误。
PLoB建立的最大的一个目的就是与所有做生物信息的人分享知识和经验。有些文章内容存在问题,还希望大家阅读之后结合自己的经验和经历,对文章内容进行指正。我们会对文章错误之处进行修改或者另发表新文章来重新介绍该文章内容。这样方便以后其他人能阅读到更正确和可靠的资料和信息。本站内容源自于大家平时的分享,也会在大家的评论中不断更新和完善。
此外PLoB中列举出来的软件使用说明中,多数软件的使用方法是具有参考性的。中文使用说明主要是帮助大家快速对软件的使用有一个初步认识,具体使用还是要以软件使用说明、手册以及帮助文档为主。
对您带来的不便再次表示歉意,如果您对本站的有其他意见或建议欢迎与我们联系。同时也欢迎您与大家分享生物信息的相关资料和您的实验经验。
B2
@ ybzhao 确实看了中文指导以后再看英文,感觉就轻松许多了~
这篇中文指导里面存在的问题之一就是省略掉了一些文件路径的说明;使读者对软件运行前后的文件树结构有些模糊,这样就产生了一些莫名其妙的提示。英文指导里面需要换路径运行程序的时候说的很清楚,比如 orthomclAdjustFasta。
还有就是省略了第五步中 Taxon id 要求3-4个字母的说明,不过我不确定这个对程序运行影响大不大;因为我之前出了很多莫名其妙的提示;但是再我改掉文件结构和 Taxon id 之后,就没有提示了,我也没有专门去试故意把 Taxon 写成其他字母数的影响。
我的建议就是看中文指导了解一下概况,跑软件的时候再去细看英文指导,这样一些比较陌生的描述可以更快更准确的理解!
2F
最好的生物信息学习网站!!!!