快速寻找同源基因---自动化运行OrthoMCL

2020-04-14 14:20:16 浏览数 (1)

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文件。

0 人点赞