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
AutomaTik is an automation system for MikroTik devices with simplicity and security in mind.

AutomaTik Installation AutomaTik is an automation system for MikroTik devices with simplicity and security in mind. Winbox is the main tool for MikroT

Osman Kazdal 4 Dec 05, 2022
Buy early bsc gems with custom gas fee, slippage, amount. Auto approve token after buy. Sell buyed token with custom gas fee, slippage, amount. And more.

Pancakeswap Sniper bot Full version of Pancakeswap sniping bot used to snipe during fair coin launches. With advanced options and a graphical user int

Jesus Crypto 204 Apr 27, 2022
Simple Instagram Login Link Generator

instagram-account-login Simple Instagram Login Link Generator Info Program generates instagram login links and you may get into someone´s thought the

Kevin 5 Dec 03, 2022
Linkvertise-Bypass - Bypass Linkvertise advertisement

Linkvertise-Bypass Bypass Linkvertise advertisement 📕 instructions Copy And Pas

Flex Tools 4 Jun 10, 2022
A simple way to create a request to the coinpayment API with a valid HMAC using your private key and command

Coinpayments Verify TXID Created for Astral Discord bot A simple way to create a request to the coinpayment API with a valid HMAC using your private k

HellSec 1 Nov 07, 2022
A Bot to get RealTime Tweets to a Specific Chats from Desired Persons on Twitter to Telegram Chat.

TgTwitterStreamer A Bot to get RealTime Tweets to a Specific Chats from Desired Persons on Twitter to Telegram Chat. For Getting ENV's Refer this Link

Anonymous 69 Dec 20, 2022
My attempt at weaponizing Discord.

MayorbotC2 This is my Discord C2 bot. There are many like it, but this one is mine. MayorbotC2 is a project I absolutely forgot about until I was pilf

Joe Helle 19 May 16, 2022
A discord nuking tool made by python, this also has nuke accounts, inbuilt Selfbot, Massreport, Token Grabber, Nitro Sniper and ALOT more!

Disclaimer: Rage Multi Tool was made for Educational Purposes This project was created only for good purposes and personal use. By using Rage, you agr

†† 50 Jul 19, 2022
alpaca-trade-api-python is a python library for the Alpaca Commission Free Trading API.

alpaca-trade-api-python is a python library for the Alpaca Commission Free Trading API. It allows rapid trading algo development easily, with support for both REST and streaming data interfaces

Alpaca 1.5k Jan 09, 2023
wyscoutapi is an extremely basic API client for the Wyscout API (v2 & v3) for Python

wyscoutapi wyscoutapi is an extremely basic API client for the Wyscout API (v2 & v3). Usage Install with pip install wyscoutapi. To connect to the Wys

Ben Torvaney 11 Nov 22, 2022
Stream Telegram files to web

Telegram File Stream Bot A Telegram bot to stream files to web Demo Bot » Report a Bug | Request Feature Table of Contents About this Bot Original Rep

Wrench 572 Jan 09, 2023
PyDiscord, a maintained fork of discord.py, is a python wrapper for the Discord API.

discord.py A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. The Future of discord.py Please read the gi

Omkaar 1 Jan 16, 2022
EZXT - A ccxt wrapped client for binance & ftx

EZXT Open source & beginner-friendly ccxt wrapped client for binance & ftx Want

Shaft 10 Oct 25, 2022
Python library for Seeedstudio Grove devices

grove.py Python library for Seeedstudio Grove Devices on embeded Linux platform, especially good on below platforms: Coral Dev Board (Wiki) NVIDIA Jet

Seeed Studio 123 Dec 17, 2022
This repository is used to provide data to zzhack,

This repository is used to provide data to zzhack, but you don't have to care about anything, just write your thinking down, and you can see your thinking is rendered in zzhack perfectly

5 Apr 29, 2022
Enumerate Microsoft 365 Groups in a tenant with their metadata

Enumerate Microsoft 365 Groups in a tenant with their metadata Description The all_groups.py script allows to enumerate all Microsoft 365 Groups in a

Clément Notin 46 Dec 26, 2022
A python notification tool used for sending you text messages when certain conditions are met in the game, Neptune's Pride.

A python notification tool used for sending you text messages when certain conditions are met in the game, Neptune's Pride.

Paul Clarke 1 Jan 16, 2022
Lazy airdrop based on private temporary ids

LobsterDAO This uses a modified MerkleDistributor, which allows to issue a lazy airdrop using temporary IDs. In this example it uses Telegram chat_id

41 Sep 10, 2022
:lock: Python 2.7/3.X client for HashiCorp Vault

hvac HashiCorp Vault API client for Python 3.x Tested against the latest release, HEAD ref, and 3 previous minor versions (counting back from the late

hvac 1k Dec 29, 2022
all-in-one wrapper for NASA API's

=========== About bowshock is an all-in-one wrapper for NASA API's. Here is a list of currently supported API's : NASA Earth API NASA APOD (Astronomy

Emir Ozer 85 Nov 09, 2022