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
Asynchronous multi-platform robot framework written in Python

NoneBot ✨ 跨平台 Python 异步机器人框架 ✨ 文档 · 安装 · 开始使用 · 文档打不开? 简介 NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持。

NoneBot 3.1k Jan 04, 2023
A Serverless Application Model stack that persists the $XRP price to the XRPL every minute as a TrustLine. There are no servers, it is effectively a "smart contract" in Python for the XRPL.

xrpl-price-persist-oracle-sam This is a XRPL Oracle that publishes external data into the XRPL. This Oracle was inspired by XRPL-Labs/XRPL-Persist-Pri

Joseph Chiocchi 11 Dec 17, 2022
IOGen - An Open source discord token generator

_____ ____ _____ |_ _/ __ \ / ____| | || | | | |

0xVichy#1234 85 Nov 03, 2022
Script for downloading Coursera.org videos and naming them.

Coursera Downloader Coursera Downloader Introduction Features Disclaimer Installation instructions Recommended installation method for all Operating S

Coursera Downloader 9k Jan 02, 2023
Valorant store offer discord-bot

Valorant store checker - Discord Bot Discord bot that shows your daily store offer without open the VALORANT by using the Ingame API. written using Py

STACIA 226 Jan 02, 2023
A python bot that scrapes free udemy coupons and sends them to Telegram.

About: A python telegram bot that scrapes information about fresh free Udemy coupons content from couponscorpion.com and sends it to teleram channel h

Irina Gayday 1 Dec 19, 2021
Bot-moderator for Telegram group chats

Project title A little info about your project and/ or overview that explains what the project is about. 🌟 Hello everyone! This is the repository of

Maxim Zavalniuk 6 Nov 01, 2022
Evernote SDK for Python

Evernote SDK for Python Evernote API version 1.28 This SDK is intended for use with Python 2.X For Evernote's beta Python 3 SDK see https://github.com

Evernote 612 Dec 30, 2022
A Discord Bot - has a few commands. Built using python - Discord.py - RIP.

Discord_Bot A Discord Bot has been built here. It is capable of running a few commands. The below present screenshot should suffice in terms of explai

Manab Kumar Biswas 1 May 22, 2022
Photogrammetry Web API

OpenScanCloud Photogrammetry Web API Overview / Outline: The OpenScan Cloud is intended to be a decentralized, open and free photogrammetry web API. T

Thomas 86 Jan 05, 2023
Bitcoin tracker hecho con python.

Bitcoin Tracker Precio del Bitcoin en tiempo real. Script simple hecho con python. Rollercoin RollerCoin es un juego en el que puedes ganar bitcoin (y

biyivi 3 Jan 04, 2022
Random-backlog-tweet - Pick a page from a sitemap at random and prep a tweet button for it

Random-backlog-tweet - Pick a page from a sitemap at random and prep a tweet button for it

Paul O'Leary McCann 0 Dec 01, 2022
A Discord token grabber written in Python3, with awesome obfuscation and anti-debug protection.

☣️ Plague ☣️ Plague is a Discord token grabber written in Python3, obfuscated with Kramer, protected from traffic analysers with Scarecrow and using t

Billy 125 Dec 20, 2022
Cedric Owens 16 Sep 27, 2022
An App to get Ko-Fi payment updates on Telegram.

Deployments. Heroku.com 🚀 Replit.com 🌀 Make sure your app runs 24*7 Zeet.co 💪 Use this :~ Get Bot token from @botfather 🤖 Get ID where you want to

Jainam Oswal 16 Nov 12, 2022
Project template for using aws-cdk, Chalice and React in concert, including RDS Postgresql and AWS Cognito

What is This? This repository is an opinonated project template for using aws-cdk, Chalice and React in concert. Where aws-cdk and Chalice are in Pyth

Rasmus Jones 4 Nov 07, 2022
Discondelete, is a Discord self-bot to delete dm's or purge all messages from a guild.

Discondelete Discondelete, is a Discord self-bot to delete dm's or purge all messages from a guild. Report Bug · Request Feature Table of Contents Abo

core 4 Feb 28, 2022
Anchor Protocol Script that can save you from being liquidated!

Why My day job requires a fairly good amount of automation from time to time. Besides, I do like computers to work on what I cannot while I'm sleeping

126 Oct 16, 2022
A simple Discord bot wrote with Python. Kizmeow let you track your NFT project and display some useful information

Kizmeow-OpenSea-and-Etherscan-Discord-Bot 中文版 | English Ver A Discord bot wrote with Python. Kizmeow let you track your NFT project and display some u

Xeift 93 Dec 31, 2022
This Is A Python Program To Showcase Two Modules (Gratient And Fade)

Hellooo, It's PndaBoi Here! This Is A Python Program To Showcase Two Modules (Gratient And Fade). I Really Like Both Of These Modules So I Decided To

PndaBoi! 6 May 31, 2022