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
Remedy when Amazon ECR is not running basic scans for container CVEs.

Welcome to your CDK Python project! This is a blank project for Python development with CDK. The cdk.json file tells the CDK Toolkit how to execute yo

4n6ir 4 Nov 05, 2022
VideocompBot - This is TG Video Compress BoT. Prouduct By BINARY Tech 💫

VideocompBot - This is TG Video Compress BoT. Prouduct By BINARY Tech 💫

1 Jan 04, 2022
A stock information collector and parser for Taiwan and US market. Automatically send LINE message if the pre-defined rules are triggered.

agastock 開發動機 就在海運飆漲的2021年7月,差點跪在地上喜迎財富自由的當下,EPS超高好消息不斷的長榮竟然套在202元一去不回,有圖有真相(哭) 忽然體會到追高殺低不是辦法,魯蛇我得靠邏輯分析也能出頭天,經過三個月無數個不出門的周末,產出簡單的爬蟲和分析工具。 上過金融研訓院的量化交易

Gavin Lee 12 Nov 16, 2022
AWS SQS event redrive Lambda With Python

AWS SQS event redrive Lambda This repository contains one simple AWS Lambda function in Python to redrive AWS SQS events from source queue to destinat

1 Oct 19, 2021
A Python Client for News API

newsapi-python A Python client for the News API. License Provided under MIT License by Matt Lisivick. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRAN

Matt Lisivick 281 Dec 29, 2022
Irenedao-nft-generator - Original scripts used to generate IreneDAO NFTs

IreneDAO NFT Generator Scripts to generate IreneDAO NFT. Make sure you have Pill

libevm 60 Oct 27, 2022
discord vc exploit to lightly lag vcs

discord-vc-reconnector discord vc exploit to lag vcs how to use open the py file, then open devtools on discord, go to network and join a vc, dont sta

Tesco 30 Aug 09, 2022
Kang Sticker bot

Kang Sticker Bot A simple Telegram bot which creates sticker packs from other stickers, images, documents and URLs. Based on kangbot Deploy Credits: s

Hafitz Setya 11 Jan 02, 2023
Lol qq parser - A League of Legends parser for QQ data

lol_qq_parser A League of Legends parser for QQ data Sources This package relies

Tolki 3 Jul 13, 2022
Discord Remote Administration Tool

Discord Remote Administration Tool

Rdimo 82 Aug 15, 2022
Telegram bot untuk mencari jawaban dibrainly, support inline juga

Brainly-Telebot Bot Untuk Mencari Jawaban Dibrainly Jika ingin clone. Boleh kok Dibuat dengan python menggunakan MTproto Library. Yaitu Pyrogram Bot y

... 7 Mar 17, 2022
Raphtory-client - The python client for the Raphtory project

Raphtory Client This is the python client for the Raphtory project Install via p

Raphtory 5 Apr 28, 2022
Enables you to execute scripts and perform API requests in MikroTik router

HomeAssistant component: MikroTik API The mikrotik_api platform enables you to execute scripts and perform API requests in MikroTik router To enable M

Pavel S 6 Aug 12, 2022
An unofficial wrapper for Engineer Man's Piston API

Pistonpy Pistonpy is an API wrapper for the Piston code execution engine by Engineer Man. Key Features Simple modern and efficient Pythonic API using

AalbatrossGuy 4 Jan 03, 2022
Reddit bot for r/khiphop

khiphop-bot Description This project is a collection of scripts that better the state of the r/khiphop subreddit, which represents Korean Hip-Hop and

1 Dec 21, 2021
WhatSender is a python package that allows you to send Whatsapp messages at a given time.

WhatSender is a python package that allows you to send Whatsapp messages at a given time.

IdoBarel 0 Apr 21, 2022
A tool for extracting plain text from Wikipedia dumps

WikiExtractor WikiExtractor.py is a Python script that extracts and cleans text from a Wikipedia database dump. The tool is written in Python and requ

Giuseppe Attardi 3.2k Dec 31, 2022
Provide fine-grained push access to GitHub from a JupyterHub

github-app-user-auth Provide fine-grained push access to GitHub from a JupyterHub. Goals Allow users on a JupyterHub to grant push access to only spec

Yuvi Panda 20 Sep 13, 2022
Astro Bot With Golang

Astro-Bot Features: Astronomy Picture of the day Horoscope People In Space How we built it Our team was broken, one person didn't do anything the othe

Vaarun Sinha 1 Nov 21, 2021
Twitter bot that finds new friends in Twitter.

PythonTwitterBot Twitter Bot Thats Find New Friends pip install textblob pip install tweepy pip install googletrans check requirements.txt file Env

IbukiYoshida 4 Aug 11, 2021