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&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/