ABrowse (Advanced Genome Browser,其实取这个名字是为了按字母排序的时候我们能排在前面^^)是一款轻量级的通用基因组浏览器框架,我们开发它的目的是为 了帮助生物学家们搭建一个方便易用的基因组浏览器。 ABrowse 的可视化功能全部在浏览器端实现,可以为用户提供非常好的交互式体验。该框架目前支持的数据格式有 GTF、BedGraph、 SAM(SAM 格式支持见下面屏幕截图中的 RNASeq Mapping Sample Track) 以及一种我们自定义的存储可变剪切位点的数据格式。这些数据通过 ABrowse 提供的界面导入本地 mongoDB 中,开发者可以根据我们的 API 增加对更多数据格式的支持。 ABrowse 支持为同一种数据格式提供多种不同的可视化形式,通过我们提供的 JavaScript API,开发者可以为数据格式增加更多的可视化形式。
本软件为 Browser-Server 架构,后端使用了 Spring Boot 框架,前端为 HTML5 + JavaScript 实现。 src/main/resources/docs/ 目录中有更多文档。
- openjdk 1.8.0 (1.8.0 以后版本,或者 oracle-jdk 应该也可以正常工作,但作者未测试过)
- Apache Maven 3.6.1 (其他版本应该也可以正常工作,但作者未测试过)
- MariaDB 10.0 (MySQL 或者 MariaDB 的其他版本应该也可以正常工作,但作者未测试过)
- MongoDB 2.6.10 (其他版本应该也可以正常工作,但作者未测试过)
- 一款支持 SVG 和 HTML5 的浏览器(这谁没有呢~ 我们推荐 chrome 或者火狐或者 safari)
作为演示版本,以下语句请不要改动(如果需要使用其他密码,请修改 src/main/resources/application.properties 文件中的 spring.datasource.password 属性)
# 创建 abrowse 数据库
create database abrowse;
# 创建 abrowse 用户,仅限从 localhost 登录,密码为 abs_passwd
grant all privileges on abrowse.* to 'abrowse'@'localhost' identified by 'abs_passwd';
# 创建 abrowse 用户,仅限从 127.0.0.1 登录,密码为 abs_passwd
grant all privileges on abrowse.* to 'abrowse'@'127.0.0.1' identified by 'abs_passwd';
# 更新权限
flush privileges;
## 导入全局配置
mongoimport -d abrowsedemo -c config_genome --file src/main/resources/docs/conf/global.abrowse.json --jsonArray
## 导入人类基因组配置
mongoimport -d abrowsedemo -c config_genome --file src/main/resources/docs/conf/human.abrowse.json --jsonArray
git clone /~https://github.com/klcola/abrowse.git
cd abrowse
# 如果是第一次编译,maven 会自动下载很多依赖的 jar 包,所以本步骤可能会花比较长的时间
mvn clean install
java -jar target/abrowse-2.0-alpha.jar
如果一切正常,这个时候打开浏览器,在地址栏输入 http://127.0.0.1:8383/ ,就可以看到 abrowse 的页面了。当然画布里什么内容也没有,那是 因为我们还没有导入数据。
现在给 abrowse 系统添加一个管理员用户,请一定要运行完上一步的编译项目再来运行这一步,否则表结构不会自动生成。
use abrowse;
insert into role values (1, 'ROLE_ADMIN');
insert into role values (10000000, 'ROLE_USER');
# abrowse_demo 是密码,gly 是用户名,这两个都可以改成你自己的
insert into user values (1, 'abrowse_demo', 'gly');
insert into user_roles values (1, 1);
点击登录输入管理员用户名 gly,密码 abrowse_demo,登录后,点击 "退出gly" 按钮左边的齿轮按钮,就看到如下界面
可以先进入 "删除 Track" 页面将旧的空 Track 删除,然后下载 Ensembl gtf 文件
wget ftp://ftp.ensembl.org/pub/release-99/gtf/homo_sapiens/Homo_sapiens.GRCh38.99.gtf.gz
gzip -d Homo_sapiens.GRCh38.99.gtf.gz
进入 "导入 GTF 格式文件" 页面,如下图填写信息,注意 TrackName 不能 有空格,Track Display Name 可以有空格,Track Description 可以有空格,也可以不填。Homo_sapiens.GRCh38.99.gtf 文件位置根据实际情况填写,填好点击 "导入" 按钮即可。
templates 页面命名规则: 反斜线 / 被替换为双下划线 __
例如:
/admin/user_management/create_user
admin__user_management__create_user
thymeleaf 变量命名规则: Map 的遍历变量以 Entry 结尾,例如:
<select name="trackGroupName" id="trackGroupName" class="selectpicker">
<option th:each="trackGroupEntry : ${configGenome.trackGroupMap}" th:value="${trackGroupEntry.value.name}"
th:text="${trackGroupEntry.value.displayName}">
</option>
</select>
git 默认对于文件名大小写不敏感,如下命令配置 git 使其对文件名大小写敏感:
git config core.ignorecase false
ABrowse 支持多语言,请参考 src/resources/i18n/ 目录
本程序是自由软件:您可以根据自由软件基金会发布的GNU通用公共许可证条款,重新发布和/或修改它,或者是许可证的第三版, 或者(根据您的选择)任何更新的版本。我们发布这个程序是希望它有用,但没有任何保证;甚至没有对适销性或对特定用途的适用性的默示保证。 有关更多细节,请参阅GNU通用公共许可证。本程序应该带有一份GNU通用公共许可证。如果没有,请参见 http://www.gnu.org/licenses/ 。