Skip to main content

Jupyter extension for embedding the genome visualation igv.js in a notebook

Project description

igv.js Jupyter Extension

IGV is an extension for Jupyter Notebook which wraps igv.js. With this extension you can render igv.js in a cell and call its API from the notebook. The extension exposes a python API that mimics the igv.js Browser creation and control APIs. Dictionaries are used for browser and track configuration objects. Track data can be loaded from local or remote URLs, or supplied directly as lists of objects.

Installation

Requirements:

  • python >= 3.6.4
  • jupyter >= 4.2.0
pip install igv
jupyter nbextension install igv
jupyter nbextension enable igv

Usage

Examples

Example notebooks are available in the github repository. To download without cloning the repository use this link. Notebooks are available in the "examples" directory.

Initialization

To insert an IGV instance into a cell:

(1) create an igv.Browser object,and (2) call showBrowser on the instance.

Example:

import igv

b = igv.Browser({"genome": "hg19"})

The igv.Browser initializer takes a configuration object which is converted to JSON and passed to the igv.js createBrowser function. The configuration object is described in the igv.js documentation.

To instantiate the client side IGV instance in a cell call show()

b.show()

Tracks

To load a track pass a track configuration object to load_track(). Track configuration objects are described in the igv.js documentation. The configuration object will be converted to JSON and passed to the igv.js browser instance.

Data for the track can be loaded by URL or passed directly as an array of JSON objects.

Remote URL

b.load_track(
    {
        "name": "Segmented CN",
        "url": "https://data.broadinstitute.org/igvdata/test/igv-web/segmented_data_080520.seg.gz",
        "format": "seg",
        "indexed": False
    })

Local File

Tracks can be loaded from local files using the Jupyter web server by prepending "files" to the path. The path is relative to the notebook file.

b.load_track(
    {
        "name": "Local VCF",
        "url": "files/data/example.vcf",
        "format": "vcf",
        "type": "variant",
        "indexed": False
    })

Embedded Features

Features can also be passed directly to tracks.

b.load_track({
    "name": "Copy number",
    "type": "seg",
    "displayMode": "EXPANDED",
    "height": 100,
    "isLog": True,
    "features": [
        {
            "chr": "chr20",
            "start": 1233820,
            "end": 1235000,
            "value": 0.8239,
            "sample": "TCGA-OR-A5J2-01"
        },
        {
            "chr": "chr20",
            "start": 1234500,
            "end": 1235180,
            "value": -0.8391,
            "sample": "TCGA-OR-A5J3-01"
        }
    ]
})

Navigation

Zoom in by a factor of 2

b.zoom_in()

Zoom out by a factor of 2

b.zoom_out()

Jump to a specific locus

b.search('chr1:3000-4000')

Jump to a specific gene. This uses the IGV search web service, which currently supports a limited number of genomes: hg38, hg19, and mm10. To configure a custom search service see the igv.js documentation

b.search('myc')

SVG output

Saving the current IGV view as an SVG image requires two calls.

b.get_svg()

b.display_svg()

Events

Note: This is an experimental feature.

def locuschange(data):
    b.locus = data

b.on("locuschange", locuschange)

b.zoom_in()

return b.locus

Development

To build and install from source:

python setup.py build
pip install -e .
jupyter nbextension install --py igv
jupyter nbextension enable --py igv

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

igv-0.9.4.tar.gz (390.4 kB view details)

Uploaded Source

Built Distributions

igv-0.9.4-py2.7.egg (394.4 kB view details)

Uploaded Source

igv-0.9.4-py2-none-any.whl (392.2 kB view details)

Uploaded Python 2

File details

Details for the file igv-0.9.4.tar.gz.

File metadata

  • Download URL: igv-0.9.4.tar.gz
  • Upload date:
  • Size: 390.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for igv-0.9.4.tar.gz
Algorithm Hash digest
SHA256 efaad9bbc213ac59582d7ada4022259db4de5e904b2bd12ba5a2f74127ae38b7
MD5 ae408ba21cced44d6e452e50964655e3
BLAKE2b-256 cca336940ff83ea68e0d67e9ece5449c1a424cc7b89c653c694da1ebc941d14f

See more details on using hashes here.

File details

Details for the file igv-0.9.4-py2.7.egg.

File metadata

  • Download URL: igv-0.9.4-py2.7.egg
  • Upload date:
  • Size: 394.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for igv-0.9.4-py2.7.egg
Algorithm Hash digest
SHA256 a0d4cf6b4abbcca2167bc920e274e1a9dcfda86fa997e90e399ec12ec4d4ee6a
MD5 48e0a37fde3c34c64b6e034ff4d6934a
BLAKE2b-256 8a086b471cd261c58cc49c05f1d208bfe996af0fd316fd157f7a9a9c1907eae1

See more details on using hashes here.

File details

Details for the file igv-0.9.4-py2-none-any.whl.

File metadata

  • Download URL: igv-0.9.4-py2-none-any.whl
  • Upload date:
  • Size: 392.2 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for igv-0.9.4-py2-none-any.whl
Algorithm Hash digest
SHA256 37a521548b640d83b9f8f228bf37f5f2301cabe41f77f24c3a7536dde4ca8896
MD5 f4e89e5360d9ccdbaf0d1760058a84f0
BLAKE2b-256 2b562b0835b4b2bcb195817be442260e81d00fffee751ac685cb83752554c263

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page