Simple web browser to visualize HiC tracks

Overview

HiCBrowser : A simple web browser to visualize Hi-C and other genomic tracks

Fidel Ramirez, José Villaveces, Vivek Bhardwaj

Installation

You can install HiCBrowser using pip :

pip install git+https://github.com/deeptools/HiCBrowser

You can also download/clone this GitHub repository and run the setup.py script inside :

cd HiCBrowser
python setup.py install -f

If you have Docker installed on your computer you can also use our Docker HiCBrowser Image. You can start a production ready HiCBrowser instance with:

docker run --rm -i -t -p 80:80 bgruening/docker-hicbrowser

For more information about the Docker image please refer to https://github.com/maxplanck-ie/docker-hicbrowser#usage

Usage

Install HiCExplorer

HiCBrowser works using HiCExplorer in the background. Thus, you need to install HiCExplorer first.

If HiCExplorer and or HiCBrowser is not properly installed (by running setup.py) it may be required to set the $PYTHONPATH. Specially for development it is quite convenient not to install the packages:

# ON COMMAND LINE
export PYTHONPATH=/path/to/HiCExplorer:/path/to/HiCBrowser

Test run

The folder example_browser contains all data and config files to run the browser. This is Drosophila melanogaster data only for chromosome X. To start the example server simply type:

cd example_browser
bash run_server.sh

Prepare files

HiCBrowser needs three config files.

  • region tracks : To visualize all genomic tracks for given regions. (eg. gene_tracks.ini)
  • gene tracks : To visualize TADs near given gene. (eg. region_tracks.ini)
  • browser config file : To providing information about directories to save images and the two tracks above. (eg. browserConfig.ini)

We have provided example for each of these files with the package, as shown above. For a full documentation of what types of data can be plotted in the region tracks and for extended examples please look at the documentation of the plotTADs function of HiCExplorer

Run

To run the browser, simply run runBrowser command, as shown below.

# --config = browser config file
# --port = localhost port to run the server

runBrowser --config browserConfig.ini --port 8888 --numProcessors 10 

Help

Contact our google Group [email protected] for further help with HiCBrowser or HiCExplorer.

Comments
  • HIC browser image is not appearing properly

    HIC browser image is not appearing properly

    Hi All First, thank you very much for creating a web based tool so we can visualize our tracks on it. It is awesome. However, I have been struggling to visualize my data. I have followed the suggestions on installing Hicbrowser and editing the config file but it is not working properly. I am using an ubuntu operating system and google chrome to visualize the example tracks such as H3K36me3.bw and H3K27me3.bw from modendcode. The tracks are loading but they are cutting off and the visualization is not useful after they load. I will be very grateful for your concern if you guys can kindly point me the errors in my file and show me the right way to edit the config file. I am very new to this.

    Here are the details of my config files:

    filename: browserConfig.ini

    [general] tracks= gene_tracks.ini TAD intervals= domains.bed genes= dm3_genes.bed.gz

    [browser] tracks=tracks.ini

    filename: gene_tracks.ini

    [TADs] file = _domains.bed title = peaks color = red width = 3 file_type = boundaries

    [x-axis] fontsize=10

    [spacer]

    [genes] file = <my_genes>.bed title = genes color = darkblue width = 15 labels = on type = genes file_type = bed fontsize = 10

    filename: tracks.ini

    [hic] file = Li_et_al_2015.h5 title = Li_et_al_2015 colormap = RdYlBu_r depth = 100000 min_value =2.8 max_value = 3.0 file_type = hic_matrix show_masked_bins = yes scale factor = 1

    [x-axis] fontsize=20 where=top

    [spacer]

    [x-axis] fontsize=10 where=top

    [spacer]

    [bigwig] file = H3K36me3.bw title = H3K36me3 color = black width = 1.5 min_value = 0 max_value = auto number of bins = 500 nans to zeros = True type = points show data range = yes scale factor = 0.25 file_type = bigwig

    [spacer]

    [bigwig] file = H3K27me3.bw title = H3K27me3 color = red width = 1.5 min_value = 0 max_value = auto number of bins = 500 nans to zeros = True type = points show data range = yes scale factor = 0.25 file_type = bigwig

    Appreciate your help. screenshot from 2018-05-07 15-13-36

    Thanking you Rocky

    opened by mparida85 8
  • it+git//github.com/maxplanck-ie/HiCBrowse@master' does not exist.

    it+git//github.com/maxplanck-ie/HiCBrow[email protected]' does not exist.

    Hi, I would be interested to use HiCBrowser but get this error:

    pip install git+git//github.com/maxplanck-ie/[email protected]

    Invalid requirement: 'git+git//github.com/maxplanck-ie/[email protected]' It looks like a path. File 'git+git//github.com/maxplanck-ie/[email protected]' does not exist.

    opened by elyas101 3
  • Moved issue: runBrowser: Can't search genes and can't load [simple bed]

    Moved issue: runBrowser: Can't search genes and can't load [simple bed]

    Hello,

    I have two problems with HiCBrowser and the runBrowser command.

    • First, the gene search panel is not working, although the browserConfig.ini is pointing to a bed file working as intended as a [gene] track. The gene names are displayed in the browser, but when searching for the name of one of these genes, I get the following error:

    Your search - FBtr0114187 - did not match any gene. Check the browser for examples of valid gene names as they may be an id.

    While the genes= file.bed in browserConfig.ini has that specific line: 211000022278158 591 1036 FBtr0114187 0 + 1036 1036 0 1 445, 0,

    • Second, the loading of [simple bed] data is failing, as I have Image Not Found displayed in the browser, although the bed file is ok and the chromosome names are corresponding to the other files. Here's the example of a [simple bed] object that fails to load in the regions_tracks.ini:
    [simple bed]
    file = /home/richard/Claudia/HAS/dm6_genes.bed
    title = HAS
    color = black
    # optional boder color. Set to none for no border color
    #border_color = black
    width = 10
    # optional. If not given is guessed from the file ending
    file_type = bed
    

    Ask you me if you need the browserConfig.ini, region_tracks.ini and the corresponding bed files.

    Ping @gtrichard I moved your issue because it was posted in the wrong repository.

    Orginal posting: https://github.com/deeptools/HiCExplorer/issues/176

    opened by joachimwolff 3
  • Still Supported?

    Still Supported?

    Hello,

    I was wondering if this is still supported or not. I have had issues installing and getting the browser running. the runBrowser command cannot find trackPlot.py in hicexplorer and indeed it does not exist there. Is there another way to use this program?

    Thanks

    opened by matanel-y 1
  • scaling of gene name track height

    scaling of gene name track height

    depending on the number of genes in the selected genic region the gene annotation track is either clipped or the genes are displayed at very large scale. Would a dynamic scaling be possible (track height defined by number of overlapping genes).

    opened by rgilsbach 1
  • Too many loading messages

    Too many loading messages

    HiCBrowser throws too many messages while loading.

    Name of all genes. All messages from HicExplorer Name of all tracks TWICE.. Loading saving messages..

    I propose removing everything, except name of all tracks (once) and loading/saving messages..

    opened by vivekbhr 1
  • Make front page neutral

    Make front page neutral

    The landing page of HiCBrowser says Drosophila chorogenome navigator.. We have to change it to something neutral (like the obvious : "HiCBrowser" or something..)

    On the same issue : we need to create another landing page for the in-house hosted HiCBrowser instance...

    opened by vivekbhr 0
  • [WIP] Update

    [WIP] Update

    Hi, I wanted to update the Browser to be able to have a browser which matches pygenometracks. But I do not know anything about javascript. I fixed the browser part but I did not understand what is the goal of having 2 different things (one for the browser and one for the gene) because in the browser you can put gene names... So for the moment I did not update the gene part. Also, when you change the brower_tracks.ini, if you stop the server and relaunch it with the same port, the display is not updated. Where is it stored? Is there a way to start from scratch except just changing the port?

    opened by lldelisle 1
  • Use a production WSGI server instead.

    Use a production WSGI server instead.

    Hi,

    I am trying to run HiCBrowser but keep getting this error message:

    • Serving Flask app "hicbrowser.views" (lazy loading)

    • Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead.

    • Debug mode: off

      raise ValueError("cannot have a multithreaded and " ValueError: cannot have a multithreaded and multi process server.

    I am not sure whether this is due to the port number used. I was wondering if anyone already experienced this and was able to resolve it?

    The command I have been running is the following:

    runBrowser --config browserConfig.ini --port 5001 --numProcessors 8 runBrowser --config browserConfig.ini --port 8888 --numProcessors 8

    FYI, I am using a cluster to run this command.

    opened by elyas101 1
  • move to .yaml for config?

    move to .yaml for config?

    Current config (.ini) file has it's own format, while yaml is a popular and easy to use format. Plus I am not sure if current config allows a hierarchy in the dictionary keys obtained after parsing. If we have a hierarchy of keys we can merge the gene config and browser config file into one and then we require only one config at browser startup.

    For example:

    gene_view:
        boundaries_bed:
            file: /path/to/file
            title: TADs
            color: red
        genes:
            file: /data/test/hicBrowser/GRCm38_genes2.bed 
            title: genes
            color: darkblue
    region_view:
        hic_file:
            file: /data/test/hicBrowser/mF1216_merged_10k.h5 
            title: mF1216
            colormap: RdYlBu_r
            depth: 1000000
        bigwig:
            file: /data/test/hicBrowser/H3k4me3.bw 
            title: H3K4me3
    
    
    opened by vivekbhr 1
  • no need for browser_config.ini

    no need for browser_config.ini

    apart from the config file for the gene view and region view, there is no need for a third config file. HiCBrowser should directly be run with these two config files..

    opened by vivekbhr 2
  • uwsgi integration

    uwsgi integration

    This branch is used in the HiCBrowser Docker image, as we are using nginx as proxy server and uwsgi as application server inside of the image.

    Unfortunately, I was not able to get uwsgi and the ./runBrowserpy script working simultaneously. The app has some wired behaviors so I needed to include the main call in the views.py script.

    I hope someone is more a flask expert and can help resolving this. Until than I will leave this PR open and update this branch manually with the master branch if needed.

    opened by bgruening 4
Releases(1.0)
Owner
The deepTools ecosystem
deepTools and related packages
The deepTools ecosystem
This asynchronous telegram bot sells books.

Selling_Books_Bot Description Say, you have a bunch of items you need no more and you want to sell it all out. That's where you're going to have to us

Roman 1 Oct 24, 2021
Console XMPP client in python

poezio Homepage: https://poez.io Forge Page: https://lab.louiz.org/poezio/poezio Poezio is a console Jabber/XMPP client. The initial goal was to provi

48 Dec 19, 2022
IMDb + Auto + Unlimited Filter BoT

Telegram Movie Bot Features Auto Filter Manuel Filter IMDB Admin Commands Broadcast Index IMDB search Inline Search Random pics ids and User info Stat

Jos Projects 82 Dec 27, 2022
Who are we? We are the Hunters of all Torrent in this world.🗡️.Fork from SlamDevs

MIRROR HUNTER This Mirror Bot is a multipurpose Telegram Bot writen in Python for mirroring files on the Internet to our beloved Google Drive. Repo la

Anime Republic 130 May 28, 2022
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API

pycord A fork of discord.py. PyCord is a modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. Key Features Mo

Pycord Development 2.3k Dec 31, 2022
Recommendation systems are among most widely preffered marketing strategies.

Recommendation systems are among most widely preffered marketing strategies. Their popularity comes from close prediction scores obtained from relationships of users and items. In this project, two r

Sübeyte 8 Oct 06, 2021
A mood based crypto tracking application.

Crypto Bud - API A mood based crypto tracking application. The main repository is private. I am creating the API before I connect everything to the ma

Krishnasis Mandal 1 Oct 23, 2021
Simple library for logging to Loggly

#Hoover A python wrapper used to hit the Loggly. API For more information on Hoover see http://wiki.loggly.com/hooverguide ##Install With this git rep

Hoover Loggly 34 May 19, 2021
Oussama has taken his first dose of vaccine D days ago

Oussama has taken his first dose of vaccine D days ago. He may take the second dose no less than L days and no more than R days since his first dose. Determine if Oussama is too early, too late, or i

INDIA - ENSAM Rabat 2 Feb 01, 2022
For specific function. For my own convenience. Remind owner to share data to another DITO user.

For specific function. For my own convenience. Remind owner to share data to another DITO user.

Meigo 1 Dec 14, 2021
Space Bot, a Discord bot built for HackerSpace Club of PES University

Space Bot Space Bot, a Discord bot built for HackerSpace Club of PES University What can Space Bot do? Space Bot allows you to lookup any mentor or to

HackerSpace @PESU 7 Oct 23, 2022
A bot framework for Reddit to manage threads, wiki pages, widgets, menus and more.

Sub Manager Sub Manager is a bot framework for Reddit to automate a variety of tasks on one or more subreddits, and can be configured and run without

r/SpaceX 3 Aug 26, 2022
This bot will pull a stream of tweets based on rules you set and automatically reply to them.

Twitter reply bot This bot will pull a stream of tweets based on rules you set and automatically reply to them. I built this bot in order to help comb

Brains 1 Feb 13, 2022
Program that uses Python to monitor grade updates in the Genesis Platform

Genesis-Grade-Monitor Program that uses Python to monitor grade updates in the Genesis Platform Guide: Install by either cloning the repo or downloadi

Steven Gatanas 1 Feb 12, 2022
Add Me To Your Group Enjoy With Me. Pyrogram bot. https://t.me/TamilSupport

SongPlayRoBot 3X Fast Telethon Based Bot ⚜ Open Source Bot 👨🏻‍💻 Demo : SongPlayRoBot 💃🏻 Easy To Deploy 🤗 Click Below Image to Deploy DEPLOY Grou

IMVETRI 850 Dec 30, 2022
Auto Join: A GitHub action script to automatically invite everyone to the organization who comment at the issue page.

Auto Invite To Org By Issue Comment A GitHub action script to automatically invite everyone to the organization who comment at the issue page. What is

Max Base 6 Jun 08, 2022
Join & Leave spam for aminoapps using aminoboi

JLspam.py Join & Leave spam for https://aminoapps.com using aminoboi Instalação apt-get update -y apt-get upgrade -y apt-get install git pkg install

Moleey 1 Dec 21, 2021
A python library for building user interfaces in discord.

blurple.py A front-end framework for discord.py Blurple.py is a framework built on top of discord.py, giving you the tools you need to build discord b

4 Oct 25, 2021
Jupyter notebooks and AWS CloudFormation template to show how Hudi, Iceberg, and Delta Lake work

Modern Data Lake Storage Layers This repository contains supporting assets for my research in modern Data Lake storage layers like Apache Hudi, Apache

Damon P. Cortesi 25 Oct 31, 2022
A simple Telegram bot, written in Python, that you can use to shill (i.e. send messages) your token, or whatever, to channels.

Telegram Shill Bot Ever wanted a Shill Bot but wankers keep scamming for one OR wanted to charge you an arm and a leg? This is a simple bot written in

53 Nov 25, 2022