/higlass

Fast contact matrix visualization for the web.

Primary LanguageJavaScriptMIT LicenseMIT

Build Status Live Docs DOI

Introduction

HiGlass is a web-based viewer for genome interaction maps featuring synchronized navigation of multiple views as well as continuous zooming and panning for navigation across genomic loci and resolutions. It supports visual comparison of Hi-C and other genomic data from different experimental conditions and can be used to efficiently identify salient outcomes of experimental perturbations, generate new hypotheses, and share the results with the community.

A live instance can be found at http://higlass.io. A Docker container is available for running an instance locally, although we recommend using the higlass-manage package to start, stop and configure local instances.

For documentation about how to use and install HiGlass, please visit http://docs.higlass.io.

Citation

Kerpedjiev, P., Abdennur, N., Lekschas, F., McCallum, C., Dinkla, K., Strobelt, H., ... & Gehlenborg, N. HiGlass: Web-based Visual Exploration and Analysis of Genome Interaction Maps. Genome Biology (2018): 19:125. https://doi.org/10.1186/s13059-018-1486-1

Example

Development

To run higlass from its source code simply run the following:

npm install
npm run start

Tests

The tests for the React components and API functions are located in the test directory. To save time and only run relevant tests, open karma.conf.js and select the test files to run before running test-watch.

npm run test-watch

Troubleshooting:

  • If the installation fails due to sharp > node-gyp try installing the node packages using python2:

    npm i --python=/usr/bin/python2 && rm -rf node_modules/node-sass && npm i
    

API

HiGlass provides an API for controlling the component from within a Javascript script. Complete documentation is availabe at docs.higlass.io. Example:

<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="https://unpkg.com/higlass@1.0.1/dist/styles/hglib.css" type="text/css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.6.2/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.6.2/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.6.2/pixi.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-bootstrap/0.31.0/react-bootstrap.min.js"></script>
<script src="https://unpkg.com/higlass@1.0.1/dist/scripts/hglib.js"></script>

<div
    id="development-demo"
    style="position: absolute; left: 1rem; top: 1rem; bottom: 1rem; right: 1rem">
</div>

<script>
var testViewConfig =
{
  "editable": true,
  "trackSourceServers": [
    "http://higlass.io/api/v1"
  ],
  "exportViewUrl": "http://higlass.io/api/v1/viewconfs",
  "views": [
    {
      "uid": "view1",
      "tracks": {
        "center": [
              {
                "name": "Rao et al. (2014) GM12878 MboI (allreps) 1kb",
                "server": "http://higlass.io/api/v1",
                "tilesetUid": "CQMd6V_cRw6iCI_-Unl3PQ",
                "type": "heatmap"
              }
        ]
      },
      "genomePositionSearchBox": {
        "autocompleteServer": "http://higlass.io/api/v1",
        "chromInfoServer": "http://higlass.io/api/v1",
        "visible": true,
        "chromInfoId": "hg19",
        "autocompleteId": "OHJakQICQD6gTD7skx4EWA"
      }
    }
  ],

}


const api = hglib.createHgComponent(
    document.getElementById('development-demo'),
    testViewConfig,
    { bounded: true }
);
</script>

Related

License

HiGlass is provided under the MIT License.