ubuntu(18.04)中架设HiGlass docker镜像服务,已尝试mcool、bedpe、wig格式文件

前言

使用到的软件

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

客户端效果图

待续......

相关推荐
木心术127 分钟前
TypeScript实战进阶:从基础类型到高级类型编程
javascript·ubuntu·typescript
SPC的存折27 分钟前
2、Docker命令与镜像、容器管理
linux·运维·服务器·docker·容器·eureka
香蕉鼠片2 小时前
Docker
运维·docker·容器
Cat_Rocky4 小时前
docker简单学习
学习·docker·容器
zjeweler4 小时前
linux服务器部署openclaw最新最细教程(非docker版)
linux·服务器·docker·openclaw
杨浦老苏5 小时前
开源自主AI智能体助手Frona
人工智能·docker·ai·群晖
sheeta19985 小时前
TypeScript references 配置与 emit 要求详解
javascript·ubuntu·typescript
ancktion6 小时前
ubuntu多gcc版本切换
linux·运维·ubuntu
东北甜妹6 小时前
Docker 基础
linux·docker·开源
贵沫末7 小时前
Claude Code使用
ubuntu