Source code for transcriptic.analysis.imaging

from io import BytesIO

from transcriptic import api

    from PIL import Image
except ImportError:
    raise ImportError(
        "Please run `pip install transcriptic[analysis] if you "
        "would like to use the Transcriptic analysis module."

[docs]class ImagePlate(object): """ An ImagePlate object generalizes the parsing of datasets derived from the plate camera for easy visualization. Parameters ---------- dataset: dataset Single dataset selected from datasets object Attributes ---------- raw: BytesIO Raw buffer of image bytes image: PIL.Image Image object as rendered by PIL """ def __init__(self, dataset): if dataset.attributes["instruction"]["operation"]["op"] != "image_plate": raise RuntimeError("No image_plate operation found for given dataset.") = self.raw = BytesIO() req = api.raw_image_data( # Buffer download of data chunk_sz = 512 for chunk in req.iter_content(chunk_sz): self.raw.write(chunk) # Reset seek to 0 self.image =
[docs] def display(self): """ Displays the original full-sized image. Helpful when used in an IPython kernel Returns ------- HTML Returns a HTML iframe of the full-size image which is rendered nicely in IPython (if IPython is present) """ try: # pylint: disable=import-error from IPython.display import HTML return HTML( """<iframe src="%s")" frameborder="0" \ allowtransparency="true" style="height:500px;" seamless> \ </iframe>""" % api.get_route("view_raw_image", ) except: # If IPython module is not present or unable to show, display using # default PIL image show