Metadata-Version: 2.1
Name: igv
Version: 0.9.4
Summary: Jupyter extension for embedding the genome visualation igv.js in a notebook
Home-page: https://github.com/igvteam/igv.js-jupyter
Author: Jim Robinson
License: MIT
Description: # igv.js Jupyter Extension
        
        IGV is an extension for [Jupyter Notebook](http://jupyter.org/) which
        wraps [igv.js](https://github.com/igvteam/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
        
        
        ```bash
        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](https://github.com/igvteam/igv.js-jupyter/archive/master.zip).   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:
        
        ```python
        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](https://github.com/igvteam/igv.js/wiki/Browser-Configuration-2.0).
        
        
        To instantiate the client side IGV instance in a cell call show()
        
        
        ```python
        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](https://github.com/igvteam/igv.js/wiki/Tracks-2.0).
        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
        
        ```python
        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.  
        
        ```python
        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.
        
        ```python
        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
        
        ```python
        b.zoom_in()
        ```
        
        Zoom out by a factor of 2
        
        ```python
        b.zoom_out()
        ```
        
        Jump to a specific locus
        
        ```python
        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](https://github.com/igvteam/igv.js/wiki/Browser-Configuration-2.0#search-object-details)
        
        ```python
        b.search('myc')
        
        ```
        
        ### SVG output
        
        Saving the current IGV view as an SVG image requires two calls.  
        
        ```python
        b.get_svg()
        
        b.display_svg()
        
        ```
        
        
        ### Events
        
        **_Note: This is an experimental feature._**
        
        ```python
        
        def locuschange(data):
            b.locus = data
        
        b.on("locuschange", locuschange)
        
        b.zoom_in()
        
        return b.locus
        
        ```
        
        #### Development
        
        To build and install from source:
        
        ```bash
        python setup.py build
        pip install -e .
        jupyter nbextension install --py igv
        jupyter nbextension enable --py igv
        
        ```
        
Keywords: igv,bioinformatics,genomics,visualization,ipython,jupyter
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Framework :: IPython
Description-Content-Type: text/markdown
