Web Apollo 的安装

1. 简介

Web Apollo 属于 JBrowse 的一个插件,可用于基因组注释的手工修正。由于通过在网页上进行手工修正,可以由多个不同地理位置的人员进行修正。
Web Apollo 比较难以安装,新版安装说明: http://webapollo.readthedocs.org/en/latest/; 2014-04-03 版本的安装说明: http://www.gmod.org/wiki/WebApollo_Installation。推荐参考后者。

2. Web Apollo 的安装步骤

2.1 安装 Perl 模块,PostGreSQL 数据库

安装 Web Apollo 之前,需要安装一些 perl 模块、 PostGreSQL 数据库和 Tomcat 7。

安装 Perl 模块比较麻烦耗时,有些 Perl 模块不容易安装上去,需要耐心。在其它安装过程中,可能提示缺少一些 Perl 模块,安装相应的 Perl 模块即可
$ sudo cpan -i BioPerl JSON JSON::XS PerlIO::gzip Heap::Simple Heap::Simple::XS Devel::Size Hash::Merge Bio::GFF3::LowLevel::Parser  Digest::Crc32  Cache::Ref::FIFO

安装 PostGreSQL
$ sudo yum install postgresql postgresql-devel

启动 PostGreSQL, 第一次启动则会生成初始化的文件。
$ sudo /etc/init.d/postgresql start

修改 PostGreSQL 配置文件  /var/lib/pgsql/data/pg_hba.conf,在尾部加入一行内容,表示用户 chenlianfu 通过密码连接 postgres 数据库。
$ sudo echo "local   all         chenlianfu                        md5" >> /var/lib/pgsql/data/pg_hba.conf

2.2 下载并解压缩 Web Apollo 和 Tomcat 7

推荐使用 2014-04-03 版本的 Web Apollo。
使用 CentOS yum 安装的 Tomcat 7 貌似不可用,因此推荐直接下载二进制版本的 Tomcat 7。

下载并解压缩 Web Apollo 2014-04-03
$ wget http://icebox.lbl.gov/webapollo/releases/previous_releases/WebApollo-2014-04-03.tgz
$ tar zxf WebApollo-2014-04-03.tgz -C /opt/biosoft/
$ cd /opt/biosoft/WebApollo-2014-04-03

下载并解压缩示例数据
$ wget http://icebox.lbl.gov/webapollo/data/pyu_data.tgz
$ tar zxf pyu_data.tgz

下载 Tomcat 7 的二进制版本
$ wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz
$ tar zxf apache-tomcat-7.0.57.tar.gz

修改 Tomcat 7 配置文件
$ cd apache-tomcat-7.0.57
修改 Tomcat 7 的报错设置
$ perl -p -i -e 's/(autoDeploy=.*)>/$1\n            errorReportValveClass="org.bbop.apollo.web.ErrorReportValve">/' conf/server.xml
修改 Tomcat 7 的内存设置,推荐设置 heap size 至少 1G, permgen size 至少 256M,基因组越大,设置越大。
$ perl -p -i -e 's/cygwin=false/CATALINA_OPTS="-Xms512m -Xmx1g -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256m"\ncygwin=false/' bin/catalina.sh

2.3 部署 Web Apollo

$ cd apache-tomcat-7.0.57/webapps/
$ mkdir webApollo_Pythium_ultimum
$ cd webApollo_Pythium_ultimum
$ jar -xvf /opt/biosoft/WebApollo-2014-04-03/war/WebApollo.war
$ chmod 755 jbrowse/bin/*

将 JBrowse 数据文件夹链接过来
$ ln -s /opt/biosoft/WebApollo-2014-04-03/data_Pythium_ultimum data

其实,到这一步,Web Apollo 算是安装完毕了,只需要通过 tomcat 访问其 webapps 文件夹下的内容即可。但是现在访问是没用的,还需要设置一些配置文件,告诉 tomcat 使用相应的用户来访问 PostGres 数据库内容和 JBrowse 数据文件。而这些用户与权限设置,以及 JBrowse 数据文件建立是难点。在如上两点准备完毕后,即可修改 webapp 的配置文件来连通相应的数据信息,从而得到网页展示结果。

2.4 设置 PostGres 和 Web Apollo 的用户,数据库和权限

Web Apollo 网页中的用户名和密码,以及用户对某条序列的修改权限存储于 PostGres 数据库中,因此需要建立 PostGres 的用户和数据库。

创建 postgres 用户 chenlianfu ,密码 123456。 和上面配置文件相对应。该用户必须是 Linux 系统用户
$ sudo su  postgres
$ createuser -P chenlianfu
Enter password for new role: 
Enter it again: 
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

创建 PostGres 数据库
$ createdb -U chenlianfu apollo_Pythium_ultimum

建立数据库的表
$ cd /opt/biosoft/WebApollo-2014-04-03/
$ cd tools/user/
$ psql -U chenlianfu apollo_Pythium_ultimum < user_database_postgresql.sql

创建 Web Apollo 用户 apollo,密码 123456
./add_user.pl -D apollo_Pythium_ultimum -U chenlianfu -P 123456 -u apollo -p 123456

提取基因组序列名,将序列名导入到 postgres 数据库,并使 apollo 用户具有访问这些序列的权限
$ cd ../../
$ ./tools/user/extract_seqids_from_fasta.pl -p Annotations- -i pyu_data/scf1117875582023.fa -o seqids.txt
$ ./tools/user/add_tracks.pl -D apollo_Pythium_ultimum -U chenlianfu -P 123456 -t seqids.txt
$ ./tools/user/set_track_permissions.pl -D apollo_Pythium_ultimum -U chenlianfu -P 123456 -u apollo -t seqids.txt -a

2.5 Jbrowse 数据文件制作

$ cd /opt/biosoft/WebApollo-2014-04-03/

创建 2 个文件夹,前者用于存放 Web Apollo 修改的数据与历史痕迹,后者用于存放 JBrowse 的数据
$ mkdir annotations_Pythium_ultimum data_Pythium_ultimum

对 fasta 文件进行 JBrowse Track 设置
$ ./apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/bin/prepare-refseqs.pl \
    --fasta pyu_data/scf1117875582023.fa
添加 webApollo 插件
$ ./apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/bin/add-webapollo-plugin.pl \
    -i data/trackList.json

先将示例文件中的 maker output 进行分割,成为不同 source 的 GFF3 文件
$ mkdir pyu_data/split_gff
$ ./tools/data/split_gff_by_source.pl -i pyu_data/scf1117875582023.gff -d pyu_data/split_gff/

对 GFF3 文件进行 JBrowse Track 设置
$ ./apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/bin/flatfile-to-json.pl \
    --gff pyu_data/split_gff/maker.gff --arrowheadClass trellis-arrowhead --getSubfeatures \
    --subfeatureClasses '{"wholeCDS": null, "CDS":"brightgreen-80pct", "UTR": "darkgreen-60pct", "exon":"container-100pct"}' \
    --className container-16px --type mRNA --trackLabel maker
$ for i in `ls pyu_data/split_gff/ | grep -v maker`
do
    i=${i##*/}
    i=${i/.gff/}
    ./apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/bin/flatfile-to-json.pl \
    --gff pyu_data/split_gff/$i.gff --arrowheadClass webapollo-arrowhead --getSubfeatures \
    --subfeatureClasses '{"match_part": "darkblue-80pct"}' --className container-10px --trackLabel $i
done

JBrowse Track 建立完毕,再创建索引
$ ./apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/bin/generate-names.pl

BAM 数据设置
$ mkdir data/bam
$ cp pyu_data/*.bam* data/bam/
$ ./apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/bin/add-bam-track.pl \
    --bam_url bam/simulated-sorted.bam --label simulated_bam --key "simulated BAM"

BigWig 数据设置
$ mkdir data/bigwig
$ cp pyu_data/*.bw data/bigwig/
$ ./apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/bin/add-bw-track.pl \
    --bw_url bigwig/simulated-sorted.coverage.bw --label simulated_bw --key "simulated BigWig"

rm data_Pythium_ultimu
mv data data_Pythium_ultimu

2.6 Web Apollo 配置

配置 Web Apollo 在 tomcat 中的 webapp 设置,从而展示 JBrowse 数据。同时,连接 PostGres 数据库从而设置得到 Web Apollo 用户和权限信息。
配置文件存放路径: /opt/biosoft/WebApollo-2014-04-03/apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/config

主要配置文件是 config.xml,修改内容:

设置 Web Apollo 的修改结果存放路径
<datastore_directory>/opt/biosoft/WebApollo-2014-04-03/annotations_Pythium_ultimum/</datastore_directory>

设置 intron 最小长度
<default_minimum_intron_size>40</default_minimum_intron_size>

设置 PostGres 数据库登录参数
<database>
    <driver>org.postgresql.Driver</driver>
    <url>jdbc:postgresql://localhost/apollo_Pythium_ultimum</url>
    <username>chenlianfu</username>
    <password>123456</password>
</database>

设置 JBrowse 的 refSeqs.json 文件路径
<refseqs>/opt/biosoft/WebApollo-2014-04-03/apache-tomcat-7.0.57/webapps/webApollo_Pythium_ultimum/jbrowse/data/seq/refSeqs.json</refseqs>

设置物种名,必须为 2 个单词
<organism>Pythium ultimum</organism>

设置基因组序列类型
<sequence_type>sequence:scaffold</sequence_type>

设置自定义的 feature_type, 去掉该段注释,使之生效
<status>
    <status_flag>Approved</status_flag>
    <status_flag>Needs review</status_flag>
</status>

设置 GFF3 文件的 data_adapter
<data_adapter>
    <key>GFF3</key>
    <class>org.bbop.apollo.web.dataadapter.gff3.Gff3DataAdapter</class>
    <permission>publish</permission>
    <config>/config/gff3_config.xml</config>
    <options>output=file&amp;format=gzip</options>
</data_adapter>

在主配置文件中,包含了其它配置文件的路径。对 blat_config.xml 进行修改,是 Web Apollo 的 blat 工具生效。需要 blat 命令和数据库文件。
使用 blat 软件中的 faToTwoBit 命令生成 blat 的数据库文件

$ cd /opt/biosoft/WebApollo-2014-04-03
$ faToTwoBit pyu_data/scf1117875582023.fa pyu_data/scf1117875582023.2bi
t

修改 blat_config.xml 的文件内容

设置 blat 命令路径
<blat_bin>/opt/biosoft/blat/bin/blat</blat_bin>

设置 blat 的输出文件路径
<tmp_dir>/opt/biosoft/WebApollo-2014-04-03/pyu_data/</tmp_dir>

设置数据库文件
<database>/opt/biosoft/WebApollo-2014-04-03/pyu_data/scf1117875582023.2bit</database>

设置 blat 参数
<blat_options>-minScore=100 -minIdentity=60</blat_options>

其它配置文件 canned_comments.xml, gff3_config.xml, hibernate.xml, chado_config.xml 等也要经过一些修改。

2.7 运行 Web Apollo

$ cd /opt/biosoft/WebApollo-2014-04-03
$ ./apache-tomcat-7.0.57/bin/startup.sh

开启 tomcat 服务后,即可访问 web Apollo 了。 由于将 web Apollo 安装在了服务器上,访问服务器 IP 8080端口: www.chenlianfu.com:8080/

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据