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 is a unofficial library for making bots in rubika.

rubika this is a unofficial library for making bots in rubika using this library you can make your own0 rubika bot and control that those bots that ma

Bahman 50 Jan 02, 2023
VoiceMaster-Discord-Bot - Fork from original Discord bot with max channel limit, staff role and more

VoiceMaster VoiceMaster is a discord bot created to change the way servers work,

2 Feb 28, 2022
Tamil Voicechat UserBot. Powerd By TamilBots. Https://T.me/TamilSupport

Tamil Voicechat UserBot A Telegram UserBot to Play music 🎶 in Voice Chats. It's recommended to use an USA number.(if your real number is suspended I'

Tamil Bots 78 Nov 01, 2022
Bot for tenhou.net riichi mahjong server written in Python

[Tests coverage] Bot was tested with Python 3.7+ and PyPy3, we are not supporting Python 2. What do we have here? Mahjong hands calculation You can fi

190 Jan 06, 2023
An unofficial client library for Google Music.

gmusicapi: an unofficial API for Google Play Music gmusicapi allows control of Google Music with Python. from gmusicapi import Mobileclient api = Mob

Simon Weber 2.5k Dec 15, 2022
Set of classes and tools to communicate with a Noso wallet using NosoP

NosoPy Set of classes and tools to communicate with a Noso wallet using NosoP(Noso Protocol). The data that can be retrieved consist of: Node informat

Noso Project 1 Jan 10, 2022
a small cli to generate AWS Well Architected Reports on the road

well-architected-review This repo intends to publish some scripts related to Well Architected Reviews. war.py extracts in txt & xlsx files all the WAR

4 Mar 18, 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
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
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
This bot can stream audio or video files and urls in telegram voice chats :)

Voice Chat Streamer This bot can stream audio or video files and urls in telegram voice chats :) 🎯 Follow me and star this repo for more telegram bot

Anjana Madu 63 Dec 25, 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
D(HE)ater is a security tool can perform DoS attack by enforcing the DHE key exchange.

D(HE)ater D(HE)ater is an attacking tool based on CPU heating in that it forces the ephemeral variant of Diffie-Hellman key exchange (DHE) in given cr

Balasys 138 Dec 15, 2022
A discord.py bot template with Cogs implemented.

discord-cogs-template A discord.py bot template with Cogs implemented. Instructions Before you start ⚠ Basic knowledge of python is required. Steps If

censor 2 Sep 02, 2022
Amanda-A next gen powerful telegram group manager bot for manage your groups and have fun with other cool modules.

Amanda-A next gen powerful telegram group manager bot for manage your groups and have fun with other cool modules.

Team Amanda 4 Oct 21, 2022
An advanced Twitter scraping & OSINT tool written in Python that doesn't use Twitter's API, allowing you to scrape a user's followers, following, Tweets and more while evading most API limitations.

TWINT - Twitter Intelligence Tool No authentication. No API. No limits. Twint is an advanced Twitter scraping tool written in Python that allows for s

TWINT Project 14.2k Jan 03, 2023
This is simple maker for level card in discord bot.

mariocard This is simple maker for level card in discord bot in discord.py or pycord. Installing Python 3.8 or higher is required # Linux/macOS pip3 i

3 Jan 29, 2022
This will create new discord accounts and add them to your server

Discord-Botter This tool will create new discord accounts add them to your server, this tool needs a captcha api like capmonster.cloud or anti-captcha

Shahzain 27 Nov 30, 2022
Trading Strategies (~50%) developed by GreenT on QuantConnect platform over the autumn quarter

Trading Strategies ~50% of codes from the Applied Financial Technology Course. Contributors: Claire W. Derrick T. Frank L. Utkarsh T. Course Leads: Dy

Utkarsh 2 Feb 07, 2022
Spodcast is a caching Spotify podcast to RSS proxy

Spodcast Spodcast is a caching Spotify podcast to RSS proxy. Using Spodcast you can follow Spotify-hosted netcasts/podcasts using any player which sup

Frank de Lange 260 Jan 01, 2023