Trinotate半自动化安装与部署,绕过wget那可怜的下载网速。因为自动配置数据库部分用到了wget
,我租用的服务器上wget
下载过慢,所以自己尝试数据库(包)自己下载,剩余设置使用trinotate自带脚本进行配置。
如果大家服务器速度足够快,就没必要用这篇推文的办法了。
1. 软件安装
1.1 所需软件
根据Trinotate主页https://github.com/Trinotate/Trinotate.github.io/wiki
可以知道,需要安装
必需软件:Trinotate,Trinity,TransDecoder ,SQLite,NCBI BLAST+, HMMER
可选软件:signalP v4,tmhmm v2,RNAMMER
这次只安装必需软件,不安装可选软件。
1.2 安装
1.2.1 介绍
6个必需的软件,在用conda安装trinity时,也会安装好selite, blast, hmmer, transdecoder。
trinotate使用github版本,而不用conda安装(conda安装版本,注释最后一步:$TRINOTATE_HOME/util/extract_GO_assignments_from_Trinotate_xls.pl
会提示缺少文件。而且conda版本无法找到conf.txt
(自动注释autoTrinotate.pl
所需要的配置文件))。
1.2.2 安装
这里我用mamba
装trinity
,git clone
下载trinotate (v3.2.2)。
#Trinity,TransDecoder, SQLite,NCBI BLAST+,HMMER 通过conda安装trinity时都能装上
$ conda create -n trinotate mamba
$ conda activate trinotate
$ mamba install -c bioconda -y trinity
#git clone下载trinotate (v3.2.2)
~/biosoft $
git clone https://github.com/Trinotate/Trinotate.git
2. 配置trinotate数据库
2.1 配置trinotate数据库需要知道
根据Build_Trinotate_Boilerplate_SQLite_db.pl
内容,查看数据库配置需要做的内容(我也不懂perl,但是每个步骤能看个大概。如有描述错误,还请指正。)
在配置数据库前,应该知道
-
Build_Trinotate_Boilerplate_SQLite_db.pl
自动配置时,需要下载5个数据库(包),每个包下载完成后需要一些配置操作。
5个数据包链接可以从脚本获取下载链接:
## Resources:
my $SPROT_DAT_URL = "ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.dat.gz";
my $EGGNOG_DAT_URL = "http://eggnogdb.embl.de/download/eggnog_4.5/data/NOG/NOG.annotations.tsv.gz";
my $GENE_ONTOLOGY_DAT_URL = "http://purl.obolibrary.org/obo/go/go-basic.obo";
my $PFAM_DAT_URL = "ftp://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.hmm.gz";
#my $PFAM2GO_DAT_URL = "http://www.geneontology.org/external2go/pfam2go"; # ftp://ftp.geneontology.org/pub/go/external2go/pfam2go
my $PFAM2GO_DAT_URL = "http://current.geneontology.org/ontology/external2go/pfam2go";
-
Build_Trinotate_Boilerplate_SQLite_db.pl
自动配置可以接续,但是这个接续是有限制的。
可以接续:每个数据库(包)下载完成后,会创建一个文件,用作下载完成的标志。再次运行时会先检查这个标志文件,如果标志文件存在,这个数据库(包)会跳过下载。
接续限制:每个数据库(包)的下载是使用wget
下载的,而且没有加--continue
选项,如果数据库下载一半,这部分是不能接续的。
2.2 我的思路
第一步:2个大的数据库(包)先在win系统上下载,然后上传服务器。3个小数据库(包)直接在服务器下载。
第二步:对5个数据库(包)创建下载完成的标志文件,用以骗过脚本。
第三步:然后使用Build_Trinotate_Boilerplate_SQLite_db.pl
配置就可以了。
2.3 下载5个数据库(第一步)
准备数据库存放路径:
mkdir -p ~/db/Trinotate && cd ~/db/Trinotate
下载数据库,并将其存放到准备好的数据库路径
#win下准备:
#ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.dat.gz
#ftp://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.hmm.gz
#服务器上下载
wget http://eggnogdb.embl.de/download/eggnog_4.5/data/NOG/NOG.annotations.tsv.gz
wget http://purl.obolibrary.org/obo/go/go-basic.obo
wget http://current.geneontology.org/ontology/external2go/pfam2go
前两个ftp站点数据库直接复制到浏览器进行下载,也可以使用Filezilla的ftp协议匿名登录下载。
后三个数据库包用wget
或者curl
下载。
下面描述用Filezilla下载 uniprot_sprot.dat.gz
的步骤
① 将ftp://ftp.uniprot.org
复制到“主机”部分。直接点击“快速链接”。对于不安全的链接提示,点击“确定”
② 将/pub/databases/uniprot/current_release/knowledgebase/complete/
复制到“远程站点”,回车跳转路径。在当前ftp站点当前文件夹下找到uniprot_sprot.dat.gz
并下载到本地。
所有数据库(包)下载完成后,数据库文件夹下内容
~/db/Trinotate $
├── go-basic.obo
├── NOG.annotations.tsv.gz
├── pfam2go
├── Pfam-A.hmm.gz
└── uniprot_sprot.dat.gz
2.4 创建标志文件,骗过脚本(第二步)
创建脚本识别已经下载完成的文件,用以欺骗脚本,让它以为已经下载过了数据库(包)。
~/db/Trinotate $
mkdir __trino_chkpts && cd __trino_chkpts && touch download_pfam.ok eggnog_download.ok go_download.ok pfam2go_download.ok wget_sprot_dat.ok && cd ../
#此时数据库文件夹下内容
├── go-basic.obo
├── NOG.annotations.tsv.gz
├── pfam2go
├── Pfam-A.hmm.gz
├── __trino_chkpts
│ ├── download_pfam.ok
│ ├── eggnog_download.ok
│ ├── go_download.ok
│ ├── pfam2go_download.ok
│ └── wget_sprot_dat.ok
└── uniprot_sprot.dat.gz
2.5 用Build_Trinotate_Boilerplate_SQLite_db.pl
完成剩余配置(第三步)
~/db/Trinotate $
#Build_Trinotate_Boilerplate_SQLite_db.pl + 路径/数据库名称
~/biosoft/Trinotate/admin/Build_Trinotate_Boilerplate_SQLite_db.pl Trinotate20211027
#此时数据库文件夹下内容
├── Pfam-A.hmm.gz
├── Trinotate20211027.sqlite
├── uniprot_sprot.dat.gz
└── uniprot_sprot.pep
#准备蛋白数据库(选择blast或者diamond建库,我的序列不是太多,依然用blastp建库)
makeblastdb -in uniprot_sprot.pep -dbtype prot
#解压并准备Pfam数据库
gunzip Pfam-A.hmm.gz
hmmpress Pfam-A.hmm
#此时数据库文件夹下内容
├── Pfam-A.hmm
├── Pfam-A.hmm.h3f
├── Pfam-A.hmm.h3i
├── Pfam-A.hmm.h3m
├── Pfam-A.hmm.h3p
├── Trinotate20211027.sqlite
├── uniprot_sprot.dat.gz
├── uniprot_sprot.pep
├── uniprot_sprot.pep.pdb
├── uniprot_sprot.pep.phr
├── uniprot_sprot.pep.pin
├── uniprot_sprot.pep.pot
├── uniprot_sprot.pep.psq
├── uniprot_sprot.pep.ptf
└── uniprot_sprot.pep.pto
到此软件安装与数据库配置完毕。