Skip to content

Instantly share code, notes, and snippets.

@clintval
Created March 7, 2018 23:07
Show Gist options
  • Select an option

  • Save clintval/0eda7ddce6ec13e52d21bd9af0e95f14 to your computer and use it in GitHub Desktop.

Select an option

Save clintval/0eda7ddce6ec13e52d21bd9af0e95f14 to your computer and use it in GitHub Desktop.
Generate a static image of a Jupyter IGV canvas
class IgvCanvasToStatic(object):
def __init__(self):
self._javascript = """
// Converts canvas to an image
function convertCanvasToImage(canvas)
{
var image = canvas.toDataURL("image/png");
return '<img src="' + image + '"/>';
}
// Grab all IGV canvas objects
var ideogram = document.getElementsByClassName('igv-ideogram-canvas');
var myCanvas = document.getElementsByClassName('igv-content-canvas');
// Convert each canvas and append to list
var images = [];
for (var i = 0; i < myCanvas.length; i++ )
{
if (i == 0) {
images.push(convertCanvasToImage(ideogram[i]));
}
images.push(convertCanvasToImage(myCanvas[i]));
}
// combine list and output to a python object
var panel = images.join('');
IPython.notebook.kernel.execute("panel = '" + panel + "'")
"""
@classmethod
def run(self):
from Ipython.display import Javascript
return Javascript(self._javascript)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment