RGAugury:用于全基因组预测植物抗性基因类似物 (RGA) 的管道论文地址:https://bmcgenomics.biomedcentral.com/articles/10.1186/s12864-016-3197-x
依赖软件和本软件的安装使用说明在https://bitbucket.org/yaanlpc/rgaugury/wiki/Home
https://bitbucket.org/yaanlpc/rgaugury/src/master/
RGAugury的安装
没有root,没有conda的包,需要自己从头安装或者使用docker安装。
git clone https://bitbucket.org/yaanlpc/rgaugury.git
cd rgaugury
部分参考https://www.jianshu.com/p/433cd619f9c0
安装依赖环境
依赖的软件
- BLAST+包下载以“x64-linux.tar.gz”扩展名结尾的文件
- Hmmer3在 pfam_scan 包之前安装 Hmmer
- 新的 Interproscan 通常需要Java 11,请确保它已正确安装。
- pfam_scan包,确保 pfam_scan.pl 可以在任何地方直接运行而无需添加路径前缀。检查此链接以更轻松地安装依赖项。
- phobius1.01包,这是一个 32 位程序,需要确保 64 位 Linux 操作系统已经安装了 32 位运行时(libstdc++6:i386)才能加载。请参阅此线程以获取更多帮助。
- ncoils包已经嵌入到这个包中,考虑到源代码的一个小的修改,使其适应管道,因此我们不希望你使用原始的。
- git是可选的,您可以直接克隆我们的存储库。我们强烈建议您使用 git 来克隆此存储库,因为可以以正确的方式保留文件的权限。
- jdk,JDK 1.8 是在 v57 上使用 InterproScan 时的必备组件。
- interproscan , 基于 HMM 的域/主题识别包
- CViT,一个基于 Perl 的基因组连锁特征可视化工具包。确保所有必需的 perl 模块都已成功安装,并且在使用独立于 RGAugury 的 CViT 时没有报告错误。
安装依赖的包
安装perl模块
cpanm Log::Log4perl
cpanm GD
cpanm Config::IniFiles
cpanm Moose
cpanm BioPerl
后两个模块安装比较费时间
需要配置的环境变量的信息如下
export PATH=$PATH:/home/lipch/bin/phobius1.01 # to specify the path of phobius.pl script and binary.
export PATH=$PATH:/home/lipch/bin/hmmer3/bin # binary path
export PATH=$PATH:/home/lipch/bin/blast/bin # binary path of blast+ package
export PATH=$PATH:/home/lipch/RGAugury_pipeline # this package scripts path
export PATH=$PATH:/home/lipch/RGAugury_pipeline/coils #the path to scoils-ht, which is a modified version of coils to adapt to RGAugury pipeline.
export PATH=$PATH:/home/lipch/database/interproscan-x.xx-xx.0 #download latest one as your wish. Do not add the path of "bin" under interproscan directory.
export PATH=$PATH:/home/lipch/Downloads/PfamScan #to specify the path for script of pfam_scan.pl
export PATH=$PATH:/home/lipch/bin/cvit.1.2.1 #to specify the path of cvit.pl in CViT package, make sure cvit.pl can be found by 'which' command.
export COILSDIR=/home/lipch/RGAugury_pipeline/coils # or create a plain file with putting this command only but a directory all user can access and drop it to /etc/profile.d/, file permission changes to 755, otherwise export it to user's profile and point to another user authorized directory
export PERL5LIB=/home/lipch/Downloads/PfamScan:$PERL5LIB #perl module for pfam_scan.pl
export PFAMDB=/home/lipch/database/pfam #这个路径是下面下载的~/database/pfam的绝对路径
下载需要的数据库
手动修改interproscan-5.57-90.0/interproscan.properties文件的precalculated.match.lookup.service.url=https://www.ebi.ac.uk/interpro/match-lookup
把https://www.ebi.ac.uk/interpro/match-lookup
删除,只保留前面的precalculated.match.lookup.service.url=
pfam数据库的下载
mkdir ~/database/pfam
wget https://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.hmm.gz
wget https://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.hmm.dat.gz
wget http://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/active_site.dat.gz
pigz -d Pfam-A.hmm.gz
pigz -d Pfam-A.hmm.dat.gz
hmmpress Pfam-A.hmm
准备输入文件
蛋白文件的格式,除了编号后面不要有其他内容
>AT1G52660.1
MGKDFKSLVTRCIYVGKMNDNAKKLKIATEELKDLGNNVMKRVKLCEEQQQMKRLDKVQTWLRQADTVIKEAEEYFLMSSSSSSSGLISSSHKMEKKICKKLKEVQEIKSRGMFEVVAESTGGIGGGAGGGLTIKDSDEQTIGLEAVSGLVWRCLTMENT
gff3文件和基因组序列可以不提供
Chr1 phytozomev10 mRNA 3631 5899 . + . ID=AT1G01010.1;
Chr1 phytozomev10 UTR 3631 3759 . + . ID=AT1G01010.1;
Chr1 phytozomev10 CDS 3760 3913 . + 0 ID=AT1G01010.1;
Chr1 phytozomev10 CDS 3996 4276 . + 2 ID=AT1G01010.1;
Chr1 phytozomev10 CDS 4486 4605 . + 0 ID=AT1G01010.1;
Chr1 phytozomev10 CDS 4706 5095 . + 0 ID=AT1G01010.1;
Chr1 phytozomev10 CDS 5174 5326 . + 0 ID=AT1G01010.1;
Chr1 phytozomev10 CDS 5439 5630 . + 0 ID=AT1G01010.1;
gff3格式要求,第一列必须染色体必须是Chr1或Chr01这种格式,scaffold不会被识别。
第3列可以包含的字符是mRNA,UTR,CDS,exon这4种类型,而且每个基因必须有1行是mRNA.
我的gff3包含five_prime_UTR和three_prime_UTR,需要替换为UTR。
sed 's/five_prime_UTR/UTR/g;s/three_prime_UTR/UTR/g' genome.gff3 >genome.gff
使用下面的代码提取符合规则的gff3行
awk '$1 ~/Chr/ && $3 =="mRNA"||$3=="CDS"||$3=="exon"||$3=="UTR" {print $0}' genome.gff >genome.new.gff3
删除行尾的.
字符,只提取序列的ID
sed -i 's/\.$//g' genome.pep.fa
seqkit seq -i genome.pep.fa -o genome.protein.fa
运行RGAuguay的命令
perl ~/soft/RGAugury/rgaugury/RGAugury.pl -p genome.protein.fa -gff genome.new.gff3 -g genome.fa -c 16 -pfx prefix
参数说明:
- -p 蛋白序列,必须提供
- -gff gff3文件,可以不提供
- -g 基因组序列,可以不提供
- -c cpu数量,默认是2
- -f 输出结果文件的前缀,默认是.
- -e 控制比对的e值,默认是1e-5
- -d 数据库,默认是pfam,gene3d
- -n cds文件,可以不提供
输出结果解析
软件运行流程示意图
第一步是blast,后续是分别使用4个数据库进行分析。
并通过整合五个程序产生的结果来识别 RGA:BLAST、InterProScan、pfam_scan、nCoil 和 Phobius。四种不同 RGA 类型的带注释候选被导出为纯文件。以并行模式执行的分析以蓝色标记。中间结果用虚线框表示。
GFF3:通用特征格式版本 3;
CC:卷曲螺旋;
LRR:富含亮氨酸的重复;
NB-ARC:APAF-1、R基因产物和CED-4共享的核苷酸结合接头;
STTK:丝氨酸/苏氨酸和酪氨酸激酶;
LysM:溶素基序;
TM:跨膜
最终识别出的蛋白质中有 7 个与 RGA 相关的结构域和基序,包括 NB-ARC 或 NBS、LRR、TM、STTK、LysM、CC 和 TIR。
是并行的其中一个数据库失败,其他数据库可能仍正常运行。可以把输出的错误的文件删除后,重新运行程序,会自动跳过已经的分析。
blast输出的文件有:
.preRGA.candidates.by.Blast.fasta
.preRGA.candidates.by.Blast.lst
.RGA.blastp.1e-5.out
pfam的输出文件有:
.LRR.res.pfam.txt
.candidates_RGA_pfam_out
报错汇总:
-
FATAL: can't find "Pfam-A.hmm" and/or "Pfam-A.hmm" binaries and/or "Pfam-A.hmm.dat" file in "/media/owner/b45f8e7a-003c-4573-8841-bcb5f76f281f/sn/rgaugury/database/pfamdb" at /media/owner/b45f8e7a-003c-4573-8841-bcb5f76f281f/sn/rgaugury/PfamScan/pfam_scan.pl line 68.
就是你配置了PFAMDB环境变量,路径里也有这个文件,为啥报错呢?
解决方法:在你上面放Pfam-A.hmm
路径里运行hmmpress Pfam-A.hmm
,用来生成数据库。 -
[uk.ac.ebi.interpro.scan.business.sequence.BerkeleyPrecalculatedProteinLookup:381] ERROR - Lookup version check failed ... interproscanVersion:
类似上述的java的报错,原因是interproscan里的配置文件有误,因为服务器的任务节点无法联网,所以就需要关闭interproscan的网络查找功能。找到interproscan.sh所在的路径修改里面的interproscan.properties
文件。把precalculated.match.lookup.service.url=https://www.ebi.ac.uk/interpro/match-lookup
修改为precalculated.match.lookup.service.url=
即可。