Extracts features from MuTIsWSIRunner ouput.
| 2179 | |
| 2180 | |
| 2181 | class 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): |
no outgoing calls
no test coverage detected