Skip to content

Server component for HiGlass that manages and serves tiled data


Notifications You must be signed in to change notification settings



Repository files navigation

HiGlass Server

The HiGlass Server supports HiGlass and HiPiler by providing APIs for accessing and uploading tiles generated by Clodius.

demo api DOI

Note: that the HiGlass Server itself only provides an API, and does not serve any HTML.



  • Python >=v3.6


The easiest way to run HiGlass with HiGlass Server is with Docker. More information is available at higlass-docker or check out the Dockerfile.

This project also includes a Dockerfile in the docker-context directory that can be used to run a locally checked out copy of higlass-server as follows:

docker build -t higlass-server -f docker-context/Dockerfile .
docker run -d --cap-add SYS_ADMIN --device /dev/fuse --security-opt apparmor:unconfined --name higlass-server higlass-server


To install HiGlass Server manually follow the steps below. Note we strongly recommend to create a virtual environment using Virtualenvwrapper for example. Skip step 2 if you don't work with virtual environments.

git clone && cd higlass-server

Manually with virtualenvwrapper

mkvirtualenv -a $(pwd) -p $(which python3) higlass-server && workon higlass-server
pip install --upgrade -r ./requirements.txt
python migrate
python runserver

Manually with conda

conda env create -f environment.yml
conda activate higlass-server
python migrate
python runserver

To enable the register_url api endpoint, HiGlass depends on a project called httpfs to cache external url files. Tests depend on this process running. Set it up as follows:

pip install simple-httpfs

mkdir -p media/http
mkdir -p media/https
simple-httpfs media/http
simple-httpfs media/https

Or simply use ./

Uploading Files

Although there is an API endpoint for uploading files, but it is more direct to use a script:

wget -P data/$COOLER
wget -P data/$HITILE

python ingest_tileset --filename data/$COOLER --filetype cooler --datatype matrix --uid cooler-demo
python ingest_tileset --filename data/$HITILE --filetype hitile --datatype vector --uid hitile-demo

We can now use the API to get information about a tileset, or to get the tile data itself:

curl http://localhost:8000/api/v1/tileset_info/?d=hitile-demo
curl http://localhost:8000/api/v1/tiles/?d=hitile-demo.0.0.0


Start the server:

python runserver localhost:8001
// or
npm start

Test the server:

// or
npm test

Bump version of server:

bumpversion patch

Update source code:



pybbi installation fails on macOS: Check out nvictus/pybbi#2

macOS 10.15 dependencies

  • brew install hdf5
  • brew install libpng
  • brew install jpeg
  • FUSE for Mac


The code in this repository is provided under the MIT License.


Server component for HiGlass that manages and serves tiled data









  • Python 81.9%
  • Jupyter Notebook 16.5%
  • Shell 1.1%
  • Dockerfile 0.5%