OrthoMCL (http://orthomcl.org/orthomcl/) 是现在用的最多的一款来找直系同源基因(Orthologs)以及旁系同源基因 (Paralog) 的软件。同源基因 (homolog) 的区别见下图,这里就不细说了。
OrthoMCL 的最新版本是2013年7月公布的v2.0版本,已经很久没更新过了。根据官网的教程至少得十多步才能完成整个运行流程,包括Mysql数据库配置、修改OrthoMCL配置文件、转换序列格式、过滤、比对、解析结果和聚类等步骤,特别麻烦。 OrthoMCL Pipeline (https://github.com/apetkau/orthomcl-pipeline) 可以很好的帮我们解决这个痛点。Pipeline安装有点复杂,但是安装完成后,使用就炒鸡方便了!!!
安装OrthoMCL Pipeline
直接去github下载zip安装包,或者直接使用git命令下载
代码语言:javascript复制git clone https://github.com/apetkau/orthomcl-pipeline.git
安装perl依赖包
使用cpan或者cpanm安装依赖包
代码语言:javascript复制$ cpanm BioPerl DBD::mysql DBI Parallel::ForkManager YAML::Tiny Set::Scalar Text::Table Exception::Class Test::Most Test::Warn Test::Exception Test::Deep Moose SVG Algorithm::Combinatorics
安装blast,MCL及OrthoMCL
安装好2.2.26版本的BLAST (blastall, formatdb, 不是blast , 更旧的版本可能不会正确运行) 下载编译安装MCL (http://www.micans.org/mcl/src/mcl-latest.tar.gz) 下载编译安装OrthoMCL (http://orthomcl.org/common/downloads/software/v2.0/orthomclSoftware-v2.0.9.tar.gz) 确保blastall, formatdb, MCl和OrthoMCL都加入了环境变量
检查依赖的软件是否安装齐全
出现下面的提示则安装齐全了
代码语言:javascript复制$ perl scripts/orthomcl-pipeline-setup.pl
Checking for Software dependencies...
Checking for OthoMCL ... OK
Checking for formatdb ... OK
Checking for blastall ... OK
Checking for mcl ... OK
Wrote new configuration to orthomcl-pipeline/scripts/../etc/orthomcl-pipeline.conf
Wrote executable file to orthomcl-pipeline/scripts/../bin/orthomcl-pipeline
Please add directory orthomcl-pipeline/scripts/../bin to PATH
Orthomcl-pipeline配置文件
配置文件在orthomcl-pipeline-installed-path/etc/orthomcl-pipeline.conf
代码语言:javascript复制blast:
F: 'm S'
b: 100000
e: 1e-5
v: 100000
filter:
max_percent_stop: 20
min_length: 10
mcl:
inflation: 1.5
path:
blastall: '/usr/bin/blastall'
formatdb: '/usr/bin/formatdb'
mcl: '/usr/local/bin/mcl'
orthomcl: '/home/aaron/software/orthomcl/bin'
scheduler: fork
split: 4
根据计算资源可以把split改为合适的数字,split类似于运行的线程数
配置数据库
需要安装好MySQL数据库 1. 如果之前已经创建过orthomcl数据库,可以用下面的perl脚本进行配置
代码语言:javascript复制$ perl scripts/orthomcl-setup-database.pl --user orthomcl --password orthomcl --host localhost --database orthomcl --outfile orthomcl.conf --no-create-database
Connecting to database orthmcl on host orthodb with user orthomcl ...OK
Config file **orthomcl.conf** created.
2. 如果之前没有配置过orthomcl数据库,需要先以root运行mysql,创建orthomcl用户
代码语言:javascript复制$ mysql -u root -p
Enter password:
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE VIEW, INDEX, DROP on *.* to orthomcl; #创建用户并授权
mysql> set password for orthomcl@localhost = password('orthomcl'); #设置用户密码
mysql> quit;
当用户创建后,再用perl脚本配置
代码语言:javascript复制$ perl scripts/orthomcl-setup-database.pl --user orthomcl --password orthomcl --host localhost --database orthomcl --outfile orthomcl.conf
Connecting to mysql and creating database **orthmcldb** on host orthodb with user orthomcl ...OK
database orthmcl created ...OK
Config file **orthomcl.conf** created.
脚本会生成orthomcl.conf文件,这个文件之后就不用坐任何修改了。
测试
代码语言:javascript复制$ perl t/test_pipeline.pl -m orthomcl.conf -s fork -t /tmp
Test using scheduler forkTESTING NON-COMPLIANT INPUT
TESTING FULL PIPELINE RUN 3
README:
Tests case of one gene (in 1.fasta and 2.fasta) not present in other files.
ok 1 - Expected matched returned groups file
...
出现上面的信息说明安装成功了!!!
运行
代码语言:javascript复制$ ./bin/orthomcl-pipeline
Error: no input-dir definedUsage: orthomcl-pipeline -i [input dir] -o [output dir] -m [orthmcl config] [Options]
...
可以加上—nocompliant就可以不显示没必要的提示信息了
代码语言:javascript复制$ ./bin/orthomcl-pipeline -i ~/test_data/zbl -o ~/test_data/zbl-out -m orthomcl.conf --nocompliant
zbl文件夹里面放入fasta格式的蛋白序列文件,一个基因组一个文件,例如genome1.fasta, genome2.fasta, 文件后缀名必需是.fasta。zbl-out文件夹里面是所有的结果,包括聚类完成的groups文件,orthologs文件,inparalogs文件以及coorthologs文件。