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

Class DatasetFeatureExtractor

hips/SlideFeatureExtractor.py:2181–2331  ·  view source on GitHub ↗

Extracts features from MuTIsWSIRunner ouput.

Source from the content-addressed store, hash-verified

2179
2180
2181class DatasetFeatureExtractor(object):
2182 """
2183 Extracts features from MuTIsWSIRunner ouput.
2184 """
2185 def __init__(
2186 self,
2187 input_dir: str,
2188 output_dir: str,
2189 *,
2190 wsi_dir: str = None,
2191 region_extractor_kwargs: dict = None,
2192 nuclei_extractor_kwargs: dict = None,
2193 extras_extractor_kwargs: dict = None,
2194 monitor: str = "",
2195 logger: Any = None,
2196 _debug: bool = False,
2197 _reverse: bool = False,
2198 ):
2199 """"""
2200 self.input_dir = input_dir
2201 self.output_dir = output_dir
2202 self.wsi_dir = wsi_dir
2203 self.region_extractor_kwargs = region_extractor_kwargs or {}
2204 self.nuclei_extractor_kwargs = nuclei_extractor_kwargs or {}
2205 self.collagen_extractor_kwargs = extras_extractor_kwargs or {}
2206 self.slide_names = os.listdir(input_dir)
2207 self.monitor = monitor
2208 self.logger = logger or logging.getLogger(__name__)
2209 self._debug = _debug
2210 self._reverse = _reverse
2211 self._slmonitor = self.monitor
2212
2213 self.slide_names.sort(reverse=self._reverse)
2214
2215 collect_errors.logger = self.logger
2216 collect_errors._debug = self._debug
2217
2218 self._create_directory_structure()
2219
2220 def run(self):
2221 """"""
2222 self.extract_region_features()
2223 self.extract_nuclear_features(emode='roi')
2224 self.extract_nuclear_features(emode='global')
2225 self.extract_collagen_features()
2226
2227 def extract_collagen_features(self):
2228 """"""
2229 for slidx, slide_name in enumerate(self.slide_names):
2230 collect_errors.reset()
2231 self._slmonitor = (
2232 f"{self.monitor}: "
2233 f"Slide {slidx + 1} of {len(self.slide_names)} "
2234 f"({slide_name} - CollagenFeats)"
2235 )
2236 self._extract_collagen_features_for_slide(slide_name)
2237
2238 def extract_region_features(self):

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected