Source code for pyfibre.addons.shg_pl_trans.shg_pl_trans_analyser

import logging

from traits.api import Instance

from pyfibre.io.object_io import (
    load_fibre_segments, load_cell_segments)
from pyfibre.utilities import log_time

from .metric_analysers import PLMetricAnalyser
from .shg_analyser import SHGAnalyser
from .shg_pl_trans_image import SHGPLTransImage


logger = logging.getLogger(__name__)


[docs]class SHGPLTransAnalyser(SHGAnalyser): multi_image = Instance(SHGPLTransImage) def _load_segments(self): """Load FibreSegment and CellSegment instances created during the analysis""" self._fibre_segments = load_fibre_segments( self._data_file, intensity_image=self.multi_image.shg_image) self._cell_segments = load_cell_segments( self._data_file, intensity_image=self.multi_image.pl_image) def _figures_kwargs(self): kwargs = super(SHGPLTransAnalyser, self)._figures_kwargs() kwargs['cell_regions'] = [cell.region for cell in self._cell_segments] return kwargs
[docs] @log_time('PL METRICS') def create_metrics(self, sigma): """Perform metric analysis on segmented image Parameters ---------- sigma: float Returns ------- databases: list of pd.DataFrame """ super(SHGPLTransAnalyser, self).create_metrics(sigma) logger.debug(" Performing PL Image analysis") metric_analyser = PLMetricAnalyser( filename=self.multi_image.name, image=self.multi_image.pl_image, sigma=sigma, segments=self._cell_segments ) segment_metrics, global_metrics = metric_analyser.analyse() global_database = self._databases[0] global_database = global_database.append( global_metrics, ignore_index=False) logger.debug(" Cell segment analysis complete") self._databases = tuple( [global_database, self._databases[1], self._databases[2], segment_metrics] )