diff --git a/mesmerize/plotting/web_widgets/datapoint_tracer.py b/mesmerize/plotting/web_widgets/datapoint_tracer.py index 3101a94a..60475a1e 100644 --- a/mesmerize/plotting/web_widgets/datapoint_tracer.py +++ b/mesmerize/plotting/web_widgets/datapoint_tracer.py @@ -1,7 +1,7 @@ from bokeh.plotting import figure, Figure from bokeh.models.glyphs import Image, MultiLine from bokeh.models import HoverTool, ColumnDataSource, TapTool, Slider, TextInput, Select, \ - BoxAnnotation, Patches + BoxAnnotation, Patches, Div from bokeh.models.mappers import LogColorMapper from bokeh.layouts import gridplot, column, row import os @@ -15,7 +15,8 @@ from mesmerize.plotting.web_widgets.core import BokehCallbackSignal, WebPlot import logging import pickle - +from pathlib import Path +import skimage.io logger = logging.getLogger() @@ -33,6 +34,13 @@ tools='tap,hover,pan,wheel_zoom,box_zoom,reset', ) +div = Div(text="""
+ +
""", +width=420, height=315) + +seq_path = Path('/work/kushal/jpeg_seq_mono_jp2') + def get_numerical_columns(dataframe: pd.DataFrame): return [c for c in dataframe.columns if c.startswith('_')] @@ -75,7 +83,6 @@ def __init__( **{ **_default_image_figure_params, **image_figure_params, - 'output_backend': "webgl" } ) @@ -86,6 +93,7 @@ def __init__( image=[empty_img], x=0, y=0, dw=10, dh=10, + palette="Inferno256", level="image" ) @@ -208,23 +216,24 @@ def set_sample(self, dataframe: pd.DataFrame): self.label_sample_id.update(value=self.sample_id) def _set_video(self, vid_path: Union[Path, str]): - self.tif = tifffile.TiffFile(vid_path) + #self.tif = tifffile.TiffFile(vid_path) self.current_frame = 0 - self.frame = self.tif.asarray(key=self.current_frame) + #self.frame = self.tif.asarray(key=self.current_frame) + self.frame = skimage.io.imread(seq_path.joinpath('0'.zfill(6) + '.jp2')) # this is basically used for vmin mvax self.color_mapper = LogColorMapper( - palette=auto_colormap(256, 'gnuplot2', output='bokeh'), - low=np.nanmin(self.frame), - high=np.nanmax(self.frame) + palette=auto_colormap(256, 'jet', output='bokeh'), + low=0,#np.nanmin(self.frame), + high=200#np.nanmax(self.frame) ) self.image_glyph.data_source.data['image'] = [self.frame] - self.image_glyph.glyph.color_mapper = self.color_mapper + #self.image_glyph.glyph.color_mapper = self.color_mapper # shows the file size in gigabytes - self.label_filesize.update(value=str(os.path.getsize(vid_path) / 1024 / 1024 / 1024)) + #self.label_filesize.update(value=str(os.path.getsize(vid_path) / 1024 / 1024 / 1024)) def _get_roi_coors(self, r: pd.Series): roi_type = r['roi_type'] @@ -272,9 +281,9 @@ def _update_plot_options(self): def _set_current_frame(self, i: int): self.current_frame = i - frame = self.tif.asarray(key=self.current_frame, maxworkers=20) - - self.image_glyph.data_source.data['image'] = [frame] + #frame = self.tif.asarray(key=self.current_frame, maxworkers=20) + self.frame = skimage.io.imread(seq_path.joinpath(str(i).zfill(6) + '.jp2')) + self.image_glyph.data_source.data['image'] = [self.frame] def _get_trimmed_dataframe(self) -> pd.DataFrame: """