def test_t2_star_map(self): ys, _, _, _ = self._generate_mock_data() scan = Cones(ys) # No mask tissue = FemoralCartilage() map1 = scan.generate_t2_star_map(tissue, num_workers=util.num_workers()) assert map1 is not None, "map should not be None" mask = MedicalVolume(np.ones(ys[0].shape), np.eye(4)) # Use a mask tissue.set_mask(mask) map2 = scan.generate_t2_star_map(tissue, num_workers=util.num_workers()) assert map2 is not None, "map should not be None" assert map1.volumetric_map.is_identical(map2.volumetric_map) # Use a mask as a path tissue = FemoralCartilage() mask_path = os.path.join(self.data_dirpath, "test_t2_star_map_mask.nii.gz") NiftiWriter().save(mask, mask_path) map2 = scan.generate_t2_star_map(tissue, num_workers=util.num_workers(), mask_path=mask_path) assert map2 is not None, "map should not be None" assert map1.volumetric_map.is_identical(map2.volumetric_map)
def test_t2_star_map(self): scan = self.SCAN_TYPE(dicom_path=self.dicom_dirpath) scan.interregister(target_path=QDESS_ECHO1_PATH, target_mask_path=TARGET_MASK_PATH) # run analysis with femoral cartilage, without mask in tissue, but mask as additional input. tissue = FemoralCartilage() map1 = scan.generate_t2_star_map(tissue, TARGET_MASK_PATH) assert map1 is not None, "map should not be None" # add mask to femoral cartilage and run nr = NiftiReader() tissue.set_mask(nr.load(TARGET_MASK_PATH)) map2 = scan.generate_t2_star_map(tissue) assert map2 is not None, "map should not be None" # map1 and map2 should be identical assert (map1.volumetric_map.is_identical(map2.volumetric_map))
def test_generate_t2_map(self): ys, _, _, _, _ = self._generate_mock_data() scan = Mapss(ys) mask = MedicalVolume(np.ones(ys[0].shape), np.eye(4)) mask_path = os.path.join(self.data_dirpath, "test_t2_mask.nii.gz") NiftiWriter().save(mask, mask_path) tissue = FemoralCartilage() map1 = scan.generate_t2_map(tissue) assert map1 is not None tissue.set_mask(mask) map2 = scan.generate_t2_map(tissue, num_workers=util.num_workers()) assert map2 is not None assert map1.volumetric_map.is_identical(map2.volumetric_map) map2 = scan.generate_t2_map(tissue, mask_path=mask, num_workers=util.num_workers()) assert map2 is not None assert map1.volumetric_map.is_identical(map2.volumetric_map)
def test_quant_val_fitting(self): """Test quantitative fitting (T1-rho, T2)""" scan = self.SCAN_TYPE(dicom_path=self.dicom_dirpath) actions = [scan.generate_t1_rho_map, scan.generate_t2_map] for action in actions: tissue = FemoralCartilage() map1 = action(tissue, MANUAL_SEGMENTATION_MASK_PATH) assert map1 is not None, "%s: map1 should not be None" % str( action) nr = NiftiReader() tissue.set_mask(nr.load(MANUAL_SEGMENTATION_MASK_PATH)) map2 = action(tissue) assert map2 is not None, "%s: map2 should not be None" % str( action) # map1 and map2 should be identical assert map1.volumetric_map.is_identical( map2.volumetric_map ), "%s: map1 and map2 should be identical" % str(action)