MCPcopy Create free account
hub / github.com/PathologyDataScience/HiPS / SlideNucleiFeatureExtractor

Class SlideNucleiFeatureExtractor

hips/SlideFeatureExtractor.py:1375–2178  ·  view source on GitHub ↗

Extracts nuclear features from MuTIsWSIRunner ouput.

Source from the content-addressed store, hash-verified

1373
1374
1375class SlideNucleiFeatureExtractor(object):
1376 """
1377 Extracts nuclear features from MuTIsWSIRunner ouput.
1378 """
1379 def __init__(
1380 self,
1381 slide_dir: str,
1382 output_dir: str,
1383 *,
1384 feature_sets: Set[str] = None,
1385 slide_name: str = None,
1386 monitor: str = "",
1387 logger: Any = None,
1388 kdtree_kwargs: dict = None,
1389 ripleyk_radii: Iterable[Union[int, float]] = None,
1390 additional_ripleyk_kwargs: dict = None,
1391 topk_salient_rois: int = 128,
1392 _roi_side: int = 1024,
1393 _min_nucl_size: int = 5,
1394 _nucleus_superclasses: Iterable[str] = None,
1395 ):
1396 """
1397 This summarizes the slide as a nuclear feature matrix, as well
1398 as some basic region pixel counts.
1399 """
1400 self.slide_dir = slide_dir
1401 self.output_dir = output_dir
1402 self.slide_name = slide_name or os.path.basename(slide_dir)
1403 self.monitor = monitor
1404 self.logger = logger or logging.getLogger(__name__)
1405 self.kdtree_kwargs = kdtree_kwargs
1406 self.ripleyk_radii = ripleyk_radii or (32, 64, 128)
1407 self.additional_ripleyk_kwargs = additional_ripleyk_kwargs or {}
1408 assert max(self.ripleyk_radii) <= _roi_side / 2, (
1409 "Maximum Ripley's K radius must be less than half the ROI side."
1410 )
1411 self.topk_salient_rois = topk_salient_rois
1412
1413 self._roi_side = _roi_side
1414 self._nucleus_superclasses = _nucleus_superclasses or [
1415 'EpithelialSuperclass',
1416 'StromalSuperclass',
1417 'TILsSuperclass',
1418 ]
1419
1420 # pipeline of methods, each gets a different set of features
1421 self.features_using_nuclei_graph = {
1422 "nuclear_ripleyk_self_vs_self",
1423 "nuclear_ripleyk_self_vs_other",
1424 "orientation_entropies",
1425 }
1426 available_feature_sets = {
1427 "saliency",
1428 "region_areas",
1429 "nuclei_counts",
1430 "tils_score_variants",
1431 "fibroblast_activation",
1432 "tils_activation",

Calls

no outgoing calls

Tested by

no test coverage detected