前言
使用到的软件
docker 文档 : https://www.docker.com/
HiGlass 文档:http://docs.higlass.io/higlass_docker.html#running-locally
https://github.com/higlass/higlass-dockerhiglass-docker 地址:https://github.com/higlass/higlass-docker
nginx 文档: https://www.cnginx.com/
docker安装步骤
#卸载旧版本
sudo apt-get remove docker docker-engine docker-ce docker.io
#更新索引包
sudo apt-get update
#安装 apt 依赖包,用于通过HTTPS来获取仓库
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
#添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#设置stable存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#更新一下apt包索引
sudo apt-get update
#安装最新版本的Docker CE
sudo apt-get install -y docker-ce
#验证-查看docker运行状态
systemctl status docker
#验证 - 查看docker版本
docker -v
#如果安装指定版本可使用如下命令
#列出各个可用版本
apt-cache madison docker-ce
#安装指定版本
sudo apt-get install docker-ce=<VERSION>
安装HiGlass docker镜像
拉取HiGlass docker镜像
需要花点时间
sudo docker pull higlass/higlass-docker:v0.6.1
创建容器数据卷目录
#创建/higlass/hg-data 用来 docker容器中的higlass文件目映射
sudo mkdir -p /higlass/hg-data
#创建/higlass/tmp,用来用户上传文件操作目录
sudo mkdir -p /higlass/tmp
启动容器
运行以下命令
sudo docker run --detach \
--publish 8989:80 \
--volume ~/higlass/hg-data:/data \
--volume ~/higlass/tmp:/tmp \
--name higlass-container \
higlass/higlass-docker:v0.6.1
#--publish 8989:80 宿主机端口8989与容器80端口映射
#--volume ~/higlass/hg-data:/data \ 宿主机目录/higlass/hg-data和容器/data目录映射
#--volume ~/higlass/tmp:/data \ 宿主机目录/higlass/tmp和容器/tmp目录映射
配置nginx用于对外访问
安装nginx
sudo apt-get install nginx
配置config
位置:/etc/nginx/sites-available/default
sudo vim /etc/nginx/sites-available/default
文件中 location / 添加如下内容原来的重启,作用将服务器80端口的访问代理到 higlass容器的端口
#尝试了定义 location /higlass {} 模块中定义去使用,但是蛋疼的是higlass内部web服务中的的一些css、js访问不到,要是非要使用这个可以自行到docker容器中去把这个路径改一下使用。还不如单开一个nginx的server处理higlass。
#替换内容
location / {
proxy_pass http://localhost:8989/;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto https; #配置报文转发协议为https
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Cookie $http_cookie;
proxy_connect_timeout 30;
proxy_set_header Referer $http_referer;
#proxy_cookie_path [/项目名] [代理路径地址]; #[/项目名] [代理路径地址] 保证https和http的cookie一致
}
重启nginx
sudo service nginx restart
访问客户端地址
#这里直接映射了服务器的80端口所以直接访问IP地址或域名就可以了
http://xxx.xxx.xxx/
效果
一般在项目中内嵌使用的话没有用到这个客户端,是在其他前端框架中嵌入显示界面调用这个higlass服务端的api接口去展示一些内容
访问管理端
设置管理端管理员账号密码
在 higlass-docker 中可查看到信息
sudo docker exec -it higlass-container higlass-server/manage.py createsuperuser
如图:
访问
http://xxx.xxx.xxxx/admin
管理端添加文件展示
遇到个问题就是设置了登陆403没搞懂,有的时候是正确的。
进入之后就可以通过界面上传要展示的文件,要注意不同格式个文件对应的配置项也不同
|-------|----------------|----------------------|
| 文件类型 | filetype | datatype |
| mcool | cooler | matrix |
| bedpe | bed2ddb | 2d-rectangle-domains |
| wig | chromsizes-tsv | chromsizes |
加入之后再客户端界面就可以选择了,没加入一个都会生成一个唯一uuid,这个就可以用来与其他系统进行对接联动。
ubuntu命令行添加文件展示
将文件移动到容器数据卷 higlass/tmp下面执行命令
#mcool格式
sudo docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename /tmp/mcool/test.mcool --filetype cooler --datatype matrix
#bedpe格式
sudo docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename /tmp/test.bedpe --filetype bed2ddb --datatype 2d-rectangle-domains
#wig格式
sudo docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename /tmp/test.wig --filetype chromsizes-tsv --datatype chromsizes
客户端效果图
待续......