All Projects → higlass → higlass-docker

higlass / higlass-docker

Licence: MIT License
Builds a docker container wrapping higlass-server and higlass-client in nginx

Programming Languages

shell
77523 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to higlass-docker

clodius
Clodius is a tool for breaking up large data sets into smaller tiles that can subsequently be displayed using an appropriate viewer.
Stars: ✭ 32 (+52.38%)
Mutual labels:  hi-c, higlass, gehlenborglab
3d-genome-processing-tutorial
A 3D genome data processing tutorial for ISMB/ECCB 2017
Stars: ✭ 44 (+109.52%)
Mutual labels:  hi-c, higlass, gehlenborglab
higlass-server
Server component for HiGlass that manages and serves tiled data
Stars: ✭ 17 (-19.05%)
Mutual labels:  hi-c, higlass, gehlenborglab
gosling.js
Grammar of Scalable Linked Interactive Nucleotide Graphics
Stars: ✭ 89 (+323.81%)
Mutual labels:  higlass, gehlenborglab
gos
a declarative (epi)genomics visualization library for Python
Stars: ✭ 49 (+133.33%)
Mutual labels:  gehlenborglab
adjclust
Adjacency-constrained hierarchical clustering of a similarity matrix
Stars: ✭ 15 (-28.57%)
Mutual labels:  hi-c
gcMapExplorer
Genome Contact Map Explorer - gcMapExplorer. Visit:
Stars: ✭ 15 (-28.57%)
Mutual labels:  hi-c
halyos
Redesigning the Patient Portal Experience with SMART on FHIR.
Stars: ✭ 20 (-4.76%)
Mutual labels:  gehlenborglab
vitessceR
R API and htmlwidget for Vitessce
Stars: ✭ 19 (-9.52%)
Mutual labels:  gehlenborglab
TADLib
A Library to Explore Chromatin Interaction Patterns for Topologically Associating Domains
Stars: ✭ 23 (+9.52%)
Mutual labels:  hi-c
dcHiC
dcHiC: Differential compartment analysis for Hi-C datasets
Stars: ✭ 28 (+33.33%)
Mutual labels:  hi-c
mustache
Multi-scale Detection of Chromatin Loops from Hi-C and Micro-C Maps using Scale-Space Representation
Stars: ✭ 38 (+80.95%)
Mutual labels:  hi-c
hickit
TAD calling, phase imputation, 3D modeling and more for diploid single-cell Hi-C (Dip-C) and general Hi-C
Stars: ✭ 79 (+276.19%)
Mutual labels:  hi-c
docker-4dn-hic
Docker for 4DN Hi-C processing pipeline
Stars: ✭ 42 (+100%)
Mutual labels:  hi-c
instaGRAAL
Large genome reassembly based on Hi-C data, continuation of GRAAL
Stars: ✭ 32 (+52.38%)
Mutual labels:  hi-c
HiC data
A (continuously updated) collection of references to Hi-C data. Predominantly human/mouse Hi-C data, with replicates.
Stars: ✭ 107 (+409.52%)
Mutual labels:  hi-c
hic
Analysis of Chromosome Conformation Capture data (Hi-C)
Stars: ✭ 45 (+114.29%)
Mutual labels:  hi-c
genomedisco
Software for comparing contact maps from HiC, CaptureC and other 3D genome data.
Stars: ✭ 23 (+9.52%)
Mutual labels:  hi-c
coolpuppy
A versatile tool to perform pile-up analysis on Hi-C data in .cool format.
Stars: ✭ 42 (+100%)
Mutual labels:  hi-c
vizarr
A minimal, purely client-side program for viewing Zarr-based images with Viv & ImJoy.
Stars: ✭ 54 (+157.14%)
Mutual labels:  gehlenborglab

DOI

higlass-docker

Builds a docker container wrapping higlass-client and higlass-server in nginx, tests that it works, and if there are no errors in the PR, pushes the image to DockerHub.

Running Locally

You can see HiGlass in action at higlass.io.

It is also easy to launch your own. Install Docker, and then:

docker pull higlass/higlass-docker # Ensure that you have the latest.
docker run --detach \
           --publish 8888:80 \
           --volume ~/hg-data:/data \
           --volume ~/hg-tmp:/tmp \
           --name higlass-container \
           higlass/higlass-docker

The two --volume options are necessary to prevent the files you upload from consuming all of relatively small space allocated for the root volume.

For ingest, you'll need to put your files in one of the shared directories: Then it will be available to scripts running inside the container.

# For example...
COOLER=dixon2012-h1hesc-hindiii-allreps-filtered.1000kb.multires.cool
wget -P ~/hg-tmp https://s3.amazonaws.com/pkerp/public/$COOLER

# Confirm that the file is visible inside the container:
docker exec higlass-container ls /tmp

# Ingest:
docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename /tmp/$COOLER --filetype cooler --datatype matrix

You can now hit the API to confirm that the file was ingested successfully by first listing the available tilesets

curl http://localhost:8888/api/v1/tilesets/

And then trying to actually get some data from the tileset. In the examples below, $ID is the uuid shown in the list of tilesets above.

# Summary:
curl http://localhost:8888/api/v1/tileset_info/?d=$ID
# Details:
curl http://localhost:8888/api/v1/tiles/?d=$ID.0.0.0

Troubleshooting

  • Error to launch the container because the container name is already in use (docker: Error response from daemon: Conflict. The container name "/higlass-container" is already in use by container ...). Use docker rm higlass-container and launch the container again.

Django admin interface

The admin interface lets you interact with and inspect the data stored in the local higlass instance. To access the admin interface you need to first create an admin user:

docker exec -it higlass-container higlass-server/manage.py createsuperuser

The admin interface can then be accessed at: http://localhost:8888/admin/

Deployment

Only one Docker container is required, but in production, you'll probably want other containers for nginx, redis, etc. Docker Compose is the usual tool for this, but at the present it does not support an analog to the --from-cache option. Instead, for the moment, we are doing this:

curl https://raw.githubusercontent.com/hms-dbmi/higlass-docker/start_production.sh | bash

For more details, read README-DEPLOY.

Development

To develop higlass-client and higlass-server, check out the corresponding repos.

To work on the Docker deployment, checkout this repo, install Docker, and then:

./test_runner.sh

# You can see the containers that have started:
docker ps

# View all the logs from the container:
docker exec container-TIMESTAMP ./logs.sh

# and you can connect to a running container:
docker exec --interactive --tty container-TIMESTAMP bash

# or remove all containers (use with caution):
docker ps -a -q | xargs docker stop | xargs docker rm

To manually test the a new image at http://localhost:8888 run:

./test_build.sh <NAME>

# You can log into the instance with:
docker exec -it cont-<NAME> bash

Releasing updates

The CI workflow automatically pushes new builds to Dockerhub. All that's necessary is to update the changelog bump the version number and push to master:

  1. Switch to master branch. Update the CHANGELOG to make sure the latest entry is labelled with the upcoming version number.

  2. Bump the version number:

bumpversion [patch,minor,major]
  1. Push the branch and tags to GitHub. This will kick off the build and release CI workflow.
git push origin master --tags

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].