Spaces:
No application file
No application file
| import os | |
| import numpy as np | |
| class DataFetcher: | |
| def __init__(self, data_directory, cluster): | |
| self.data_directory = data_directory | |
| self.cluster = cluster | |
| def len_bcss(self): | |
| return len(os.listdir(os.path.join(self.data_directory, 'BCSS/0_Public-data-Amgad2019_0.25MPP', 'masks'))) | |
| def len_camelyon(self): | |
| self.cam_len = [len(os.listdir(os.path.join(self.data_directory, 'CAMELYON/CAMELYON16/images/'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'CAMELYON/CAMELYON17/images/')))] | |
| return self.cam_len[0] + self.cam_len[1] | |
| def len_cellseg(self): | |
| self.cellseg_len = [ | |
| len(os.listdir(os.path.join(self.data_directory, 'CellSeg/NeurIPS22-CellSeg', 'Testing/Hidden/images/'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'CellSeg/NeurIPS22-CellSeg', 'Testing/Public/images/'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'CellSeg/NeurIPS22-CellSeg', 'Training/images/'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'CellSeg/NeurIPS22-CellSeg', 'Tuning/images/'))) | |
| ] | |
| return sum(self.cellseg_len) | |
| def len_cocahis(self): | |
| return 82 | |
| def len_conic(self): | |
| return len(os.listdir(os.path.join(self.data_directory, 'CoNIC/labels_png/'))) | |
| def len_cpm(self): | |
| self.cpm_len = [len(os.listdir(os.path.join(self.data_directory, 'CPM_15_and_17/cpm15/Labels_png/'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'CPM_15_and_17/cpm17/test/Labels_png/'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'CPM_15_and_17/cpm17/train/Labels_png/')))] | |
| return self.cpm_len[0] + self.cpm_len[1] + self.cpm_len[2] | |
| def len_crag(self): | |
| self.crag_len = [len(os.listdir(os.path.join(self.data_directory, 'CRAG/cell_CRAG/train2017/labels/'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'CRAG/cell_CRAG/val2017/labels/')))] | |
| return self.crag_len[0] + self.crag_len[1] | |
| def len_cryonuseg(self): | |
| return 30 | |
| def len_glas(self): | |
| return 60 + 20 + 85 | |
| def len_icia2018(self): | |
| return 10 | |
| def len_janowczyk(self): | |
| return 141 | |
| def len_kpi(self): | |
| if self.cluster != "denbi": | |
| data_directories = [os.path.join(self.data_directory, 'KPI/', 'Task1_patch_level/data'), os.path.join(self.data_directory, 'KPI/', 'val/Task1_patch_level/data')] | |
| else: | |
| data_directories = [os.path.join(self.data_directory, 'KPI/', 'KPIs24 Training Data/Task1_patch_level/data'), os.path.join(self.data_directory, 'KPI/', 'KPIs24 Validation Data/Task1_patch_level/data')] | |
| arr_length = 2 | |
| for (i0, data_directory) in enumerate(data_directories): | |
| dir_list = sorted(os.listdir(data_directory)) | |
| arr_length += len(dir_list) | |
| for (i1, d1) in enumerate(dir_list): | |
| subdir_list = sorted(os.listdir(os.path.join(data_directory, d1))) | |
| arr_length += len(subdir_list) | |
| pointer = np.zeros(arr_length, dtype=int) | |
| length = np.zeros(arr_length, dtype=int) | |
| pointer[0] = len(data_directories) | |
| len_last_dir_list = 0 | |
| len_last_subdir_list = 0 | |
| for (i0, data_directory) in enumerate(data_directories): | |
| dir_list = sorted(os.listdir(data_directory)) | |
| len_last_dir_list = len(dir_list) | |
| pointer[pointer[i0]] = pointer[i0] + len_last_dir_list | |
| for (i1, d1) in enumerate(dir_list): | |
| subdir_list = sorted(os.listdir(os.path.join(data_directory, d1))) | |
| len_last_subdir_list = len(subdir_list) | |
| for (i2, d2) in enumerate(subdir_list): | |
| file_list = os.listdir(os.path.join(data_directory, d1, d2,'img')) | |
| length[pointer[pointer[i0] + i1] + i2] = len(file_list) | |
| length[pointer[i0] + i1] += len(file_list) | |
| length[i0] += len(file_list) | |
| if i1 < len(dir_list) - 1: | |
| pointer[pointer[i0] + i1 + 1] = pointer[pointer[i0] + i1] + len(subdir_list) | |
| if i0 < len(data_directories) - 1: | |
| pointer[i0 + 1] = pointer[pointer[i0] + len_last_dir_list - 1] + len_last_subdir_list | |
| self.pointer = pointer | |
| self.length = length | |
| # pointer = array([ 2, 36, 6, 11, 16, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 42, 44, 46, 0, 0, 0, 0, 0, 0, 0, 0]) | |
| # length = array([5214, 1643, 558, 607, 2263, 1786, 92, 96, 141, 86, 143, 135, 134, 71, 129, 138, 143, 187, 166, 146, 133, 111, 156, 177, 152, 147, 150, 93, 156, 218, 128, 358, 390, 313, 370, 355, 274, 299, 209, 861, 144, 130, 182, 117, 106, 103, 415, 446]) | |
| return self.length[0] + self.length[1] | |
| def len_kumar(self): | |
| self.kumar_len = [len(os.listdir(os.path.join(self.data_directory, 'Kumar', 'train/Labels_png'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'Kumar', 'test_same/Labels_png'))), | |
| len(os.listdir(os.path.join(self.data_directory, 'Kumar', 'test_diff/Labels_png')))] | |
| return self.kumar_len[0] + self.kumar_len[1] + self.kumar_len[2] | |
| def len_monusac(self): | |
| return len(os.listdir(os.path.join(self.data_directory, 'MoNuSAC/masks/'))) | |
| def len_monuseg(self): | |
| return 37 | |
| def len_nuclick(self): | |
| return 1213 + 250 + 462 + 150 | |
| def len_paip2023(self): | |
| return 50 + 50 + 3 + 3 | |
| def len_pannuke(self): | |
| return 2656 #7466 | |
| def len_segpath(self): | |
| return 10647 + 26509 + 24805 + 12273 + 14135 + 13231 + 25909 + 31178 | |
| def len_segpc(self): | |
| return 298 + 199 | |
| def len_tiger(self): | |
| return 1879 | |
| def len_tnbc(self): | |
| return 7 + 3 + 5 + 8 + 4 + 3 + 3 + 4 + 6 + 4 + 3 | |
| def len_wsss4luad(self): | |
| return 40 | |
| def get_cpm(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'CPM_15_and_17/') | |
| if idx < self.cpm_len[0]: | |
| mask_names = os.listdir(data_directory + 'cpm15/Labels_png/') | |
| image_name = data_directory + 'cpm15/Images/' + mask_names[idx][:8] + ".png" | |
| mask_name = data_directory + 'cpm15/Labels_png/' + mask_names[idx] | |
| elif idx < self.cpm_len[0] + self.cpm_len[1]: | |
| mask_names = os.listdir(data_directory + 'cpm17/test/Labels_png/') | |
| image_name = data_directory + 'cpm17/test/Images/' + mask_names[idx-self.cpm_len[0]][:8] + ".png" | |
| mask_name = data_directory + 'cpm17/test/Labels_png/' + mask_names[idx-self.cpm_len[0]] | |
| else: | |
| mask_names = os.listdir(data_directory + 'cpm17/train/Labels_png/') | |
| image_name = data_directory + 'cpm17/train/Images/' + mask_names[idx-self.cpm_len[0]-self.cpm_len[1]][:8] + ".png" | |
| mask_name = data_directory + 'cpm17/train/Labels_png/' + mask_names[idx-self.cpm_len[0]-self.cpm_len[1]] | |
| return image_name, mask_name | |
| def get_bcss(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'BCSS/0_Public-data-Amgad2019_0.25MPP/') | |
| if self.cluster != "denbi": | |
| mask_names = os.listdir(data_directory + 'masks/') | |
| image_name = data_directory + 'rgbs_colorNormalized/' + mask_names[idx] | |
| mask_name = data_directory + 'masks/' + mask_names[idx] | |
| else: | |
| image_names = os.listdir(data_directory + 'images/') | |
| image_name = data_directory + 'images/' + image_names[idx] | |
| mask_name = data_directory + 'masks/' + image_names[idx] | |
| return image_name, mask_name | |
| def get_camelyon(self, idx): | |
| if idx < self.cam_len[0]: | |
| data_directory = os.path.join(self.data_directory, 'CAMELYON/CAMELYON16/') | |
| else: | |
| data_directory = os.path.join(self.data_directory, 'CAMELYON/CAMELYON17/') | |
| idx -= self.cam_len[0] | |
| image_names = os.listdir(data_directory + 'images/') | |
| image_name = data_directory + 'images/' + image_names[idx] | |
| mask_name = data_directory + 'masks/' + image_names[idx][:-4] + '_mask.tif' | |
| return image_name, mask_name | |
| def get_cellseg(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'CellSeg/NeurIPS22-CellSeg/') | |
| if idx < self.cellseg_len[0]: | |
| image_names = os.listdir(data_directory + 'Testing/Hidden/images/') | |
| image_name = data_directory + 'Testing/Hidden/images/' + image_names[idx] | |
| mask_name = data_directory + 'Testing/Hidden/osilab_seg/' + image_names[idx][:14] + '_label.tiff' | |
| elif idx < self.cellseg_len[0] + self.cellseg_len[1]: | |
| image_names = os.listdir(data_directory + 'Testing/Public/images/') | |
| image_name = data_directory + 'Testing/Public/images/' + image_names[idx-self.cellseg_len[0]] | |
| mask_name = data_directory + 'Testing/Public/labels/' + image_names[idx-self.cellseg_len[0]][:12] + '_label.tiff' | |
| elif idx < self.cellseg_len[0] + self.cellseg_len[1] + self.cellseg_len[2]: | |
| image_names = os.listdir(data_directory + 'Training/images/') | |
| image_name = data_directory + 'Training/images/' + image_names[idx-self.cellseg_len[0]-self.cellseg_len[1]] | |
| mask_name = data_directory + 'Training/labels/' + image_names[idx-self.cellseg_len[0]-self.cellseg_len[1]][:10] + '_label.tiff' | |
| else: | |
| image_names = os.listdir(data_directory + 'Tuning/images/') | |
| image_name = data_directory + 'Tuning/images/' + image_names[idx-self.cellseg_len[0]-self.cellseg_len[1]-self.cellseg_len[2]] | |
| mask_name = data_directory + 'Tuning/labels/' + image_names[idx-self.cellseg_len[0]-self.cellseg_len[1]-self.cellseg_len[2]][:10] + '_label.tiff' | |
| return image_name, mask_name | |
| def get_cocahis(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'CoCaHis/') | |
| #image_names = os.listdir(data_directory + 'images/') | |
| image_name = data_directory + 'images/' + "HE_raw_" + str(idx) + ".png" | |
| if self.cluster != "denbi": | |
| mask_name = data_directory + 'GT/' + "GT_GT_majority_vote_" + str(idx) + ".png" | |
| else: | |
| mask_name = data_directory + 'labels/' + 'GT_GT_majority_vote_' + str(idx) + ".png" | |
| return image_name, mask_name | |
| def get_conic(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'CoNIC/') | |
| mask_names = os.listdir(data_directory + 'labels_png/') | |
| image_name = data_directory + 'images_png/' + mask_names[idx][:4] + ".png" | |
| mask_name = data_directory + 'labels_png/' + mask_names[idx] | |
| return image_name, mask_name | |
| def get_crag(self, idx): | |
| data_directory = os.path.join(self.data_directory, "CRAG/cell_CRAG/") | |
| if idx < self.crag_len[0]: | |
| mask_names = os.listdir(data_directory + 'train2017/labels/') | |
| image_name = data_directory + 'train2017/' + mask_names[idx] | |
| mask_name = data_directory + 'train2017/labels/' + mask_names[idx] | |
| else: | |
| mask_names = os.listdir(data_directory + 'val2017/labels/') | |
| image_name = data_directory + 'val2017/' + mask_names[idx-self.crag_len[0]] | |
| mask_name = data_directory + 'val2017/labels/' + mask_names[idx-self.crag_len[0]] | |
| return image_name, mask_name | |
| def get_cryonuseg(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'CryoNuSeg/') | |
| image_names = os.listdir(data_directory + 'tissue images/') | |
| image_name = data_directory + 'tissue images/' + image_names[idx] | |
| mask_name = data_directory + 'Annotator 1 (biologist second round of manual marks up)/Annotator 1 (biologist second round of manual marks up)/label masks modify/' + image_names[idx] | |
| return image_name, mask_name | |
| def get_glas(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'GlaS/Warwick_QU_Dataset/') | |
| if idx < 60: | |
| image_name = data_directory + 'testA_' + str(idx + 1) + '.bmp' | |
| mask_name = data_directory + 'testA_' + str(idx + 1) + '_anno.bmp' | |
| elif idx < 60 + 20: | |
| image_name = data_directory + 'testB_' + str(idx - 59) + '.bmp' | |
| mask_name = data_directory + 'testB_' + str (idx - 59) + '_anno.bmp' | |
| else: | |
| image_name = data_directory + 'train_' + str(idx - 79) + '.bmp' | |
| mask_name = data_directory + 'train_' + str(idx - 79) + '_anno.bmp' | |
| return image_name, mask_name | |
| def get_icia2018(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'ICIA2018/ICIAR2018_BACH_Challenge/WSI/') | |
| image_name = data_directory + 'A' + str(idx + 1).zfill(2) + '.svs' | |
| mask_name = data_directory + 'A' + str(idx + 1).zfill(2) + '.npy' | |
| return image_name, mask_name | |
| def get_janowczyk(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'Janowczyk/') | |
| if self.cluster != "denbi": | |
| names = os.listdir(data_directory) | |
| image_names = [n for n in names if "original" in n] | |
| image_names.sort() | |
| image_name = data_directory + image_names[idx] | |
| mask_name = data_directory + image_names[idx][:-12] + 'mask.png' | |
| else: | |
| image_names = os.listdir(data_directory + "images/") | |
| image_names.sort() | |
| image_name = data_directory + "images/" + image_names[idx] | |
| mask_name = data_directory + "masks/" + image_names[idx][:-12] + 'mask.png' | |
| return image_name, mask_name | |
| def get_kpi(self, idx): | |
| if self.cluster != "denbi": | |
| data_directories = [os.path.join(self.data_directory, 'KPI/', 'Task1_patch_level/data'), os.path.join(self.data_directory, 'KPI/', 'val/Task1_patch_level/data')] | |
| else: | |
| data_directories = [os.path.join(self.data_directory, 'KPI/', "KPIs24 Training Data/Task1_patch_level/data"), os.path.join(self.data_directory, 'KPI/', "KPIs24 Validation Data/Task1_patch_level/data")] | |
| position = 0 | |
| if idx < self.length[0]: | |
| data_directory = data_directories[0] | |
| position = self.pointer[0] | |
| else: | |
| data_directory = data_directories[1] | |
| idx -= self.length[0] | |
| position = self.pointer[1] | |
| dir_list = sorted(os.listdir(data_directory)) | |
| for (i1, d1) in enumerate(dir_list): | |
| if idx < self.length[position + i1]: | |
| position = self.pointer[position + i1] | |
| subdir_list = sorted(os.listdir(os.path.join(data_directory, d1))) | |
| for (i2, d2) in enumerate(subdir_list): | |
| if idx < self.length[position + i2]: | |
| file_list = sorted(os.listdir(os.path.join(data_directory, d1, d2,'img'))) | |
| image_name = os.path.join(data_directory, d1, d2, 'img', file_list[idx]) | |
| mask_name = os.path.join(data_directory, d1, d2, 'mask', file_list[idx].replace('img', 'mask')) | |
| return image_name, mask_name | |
| else: | |
| idx -= self.length[position + i2] | |
| else: | |
| idx -= self.length[position + i1] | |
| def get_kumar(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'Kumar/') | |
| if idx < self.kumar_len[0]: | |
| mask_names = os.listdir(data_directory + 'train/Labels_png/') | |
| image_name = data_directory + 'train/Images/' + mask_names[idx][:23] + ".tif" | |
| mask_name = data_directory + 'train/Labels_png/' + mask_names[idx] | |
| elif idx < self.kumar_len[0] + self.kumar_len[1]: | |
| mask_names = os.listdir(data_directory + 'test_same/Labels_png/') | |
| image_name = data_directory + 'test_same/Images/' + mask_names[idx-self.kumar_len[0]][:23] + ".tif" | |
| mask_name = data_directory + 'test_same/Labels_png/' + mask_names[idx-self.kumar_len[0]] | |
| else: | |
| mask_names = os.listdir(data_directory + 'test_diff/Labels_png/') | |
| image_name = data_directory + 'test_diff/Images/' + mask_names[idx-self.kumar_len[0]-self.kumar_len[1]][:23] + ".tif" | |
| mask_name = data_directory + 'test_diff/Labels_png/' + mask_names[idx-self.kumar_len[0]-self.kumar_len[1]] | |
| return image_name, mask_name | |
| def get_monusac(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'MoNuSAC/') | |
| mask_names = os.listdir(data_directory + 'masks/') | |
| mask_name = data_directory + 'masks/' + mask_names[idx] | |
| types = ["Epithelial", "Lymphocyte", "Macrophage", "Neutrophil"] | |
| image_name = data_directory + 'images/' + mask_names[idx] | |
| for t in types: | |
| if mask_names[idx].endswith(t + '.png'): | |
| image_name = data_directory + 'images/' + mask_names[idx][:-len(t)-5] | |
| if os.path.exists(image_name + '.tif'): | |
| image_name += '.tif' | |
| else: | |
| image_name += '.png' | |
| break | |
| return image_name, mask_name | |
| def get_monuseg(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'MoNuSeg/MoNuSeg 2018 Training Data/') | |
| mask_names = os.listdir(data_directory + 'Masks/') | |
| mask_name = data_directory + 'Masks/' + mask_names[idx] | |
| image_name = data_directory + 'Tissue Images/' + mask_names[idx][:23] + '.tif' | |
| return image_name, mask_name | |
| def get_nuclick(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'NuClick/') | |
| if idx < 1213: | |
| mask_names = os.listdir(data_directory + 'Hemato_Data/Train/masks/') | |
| image_name = data_directory + 'Hemato_Data/Train/images/' + mask_names[idx][:-9] + ".png" | |
| mask_name = data_directory + 'Hemato_Data/Train/masks/' + mask_names[idx] | |
| elif idx < 1213 + 250: | |
| mask_names = os.listdir(data_directory + 'Hemato_Data/Validation/masks/') | |
| image_name = data_directory + 'Hemato_Data/Validation/images/' + mask_names[idx-1213][:-9] + ".png" | |
| mask_name = data_directory + 'Hemato_Data/Validation/masks/' + mask_names[idx-1213] | |
| elif idx < 1213 + 250 + 462: | |
| mask_names = os.listdir(data_directory + 'IHC_nuclick/IHC/masks_png/Train/') | |
| image_name = data_directory + 'IHC_nuclick/IHC/images/Train/' + mask_names[idx-1213-250] | |
| mask_name = data_directory + 'IHC_nuclick/IHC/masks_png/Train/' + mask_names[idx-1213-250] | |
| else: | |
| mask_names = os.listdir(data_directory + 'IHC_nuclick/IHC/masks_png/Validation/') | |
| image_name = data_directory + 'IHC_nuclick/IHC/images/Validation/' + mask_names[idx-1213-250-462] | |
| mask_name = data_directory + 'IHC_nuclick/IHC/masks_png/Validation/' + mask_names[idx-1213-250-462] | |
| return image_name, mask_name | |
| def get_paip2023(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'PAIP2023/') | |
| if idx < 50: | |
| image_name = data_directory + 'tr_p' + str(idx + 1).zfill(3) + '.png' | |
| mask_name = data_directory + "non_tumor/" + 'tr_p' + str(idx + 1).zfill(3) + '_nontumor.png' | |
| elif idx < 50 + 50: | |
| image_name = data_directory + 'tr_p' + str(idx - 50 + 1).zfill(3) + '.png' | |
| mask_name = data_directory + "tumor/" + 'tr_p' + str(idx - 50 + 1).zfill(3) + '_tumor.png' | |
| elif idx < 50 + 50 + 3: | |
| image_name = data_directory + 'tr_c' + str(idx - 100 + 1).zfill(3) + '.png' | |
| mask_name = data_directory + "non_tumor/" + 'tr_c' + str(idx -100 + 1).zfill(3) + '_nontumor.png' | |
| else: | |
| image_name = data_directory + 'tr_c' + str(idx - 103 + 1).zfill(3) + '.png' | |
| mask_name = data_directory + "tumor/" + 'tr_c' + str(idx -103 + 1).zfill(3) + '_tumor.png' | |
| return image_name, mask_name | |
| def get_pannuke(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'PanNuke/') | |
| image_name = data_directory + 'images_png/' + str(idx).zfill(4) + ".png" | |
| mask_name = data_directory + 'masks_png/' + str(idx).zfill(4) + ".png" | |
| return image_name, mask_name | |
| def get_segpath(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'SegPath/') | |
| if idx < 10647: | |
| image_and_mask_names = os.listdir(data_directory + 'endothelial_cells/ERG_Endothelium/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'endothelial_cells/ERG_Endothelium/' + image_names[idx] | |
| mask_name = data_directory + 'endothelial_cells/ERG_Endothelium/' + image_names[idx][:-6] + 'mask.png' | |
| elif idx < 10647 + 26509: | |
| image_and_mask_names = os.listdir(data_directory + 'epithelial_cells/panCK_Epithelium/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'epithelial_cells/panCK_Epithelium/' + image_names[idx-10647] | |
| mask_name = data_directory + 'epithelial_cells/panCK_Epithelium/' + image_names[idx-10647][:-6] + 'mask.png' | |
| elif idx < 10647 + 26509 + 24805: | |
| image_and_mask_names = os.listdir(data_directory + 'leukocytes/CD45RB_Leukocyte/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'leukocytes/CD45RB_Leukocyte/' + image_names[idx-10647-26509] | |
| mask_name = data_directory + 'leukocytes/CD45RB_Leukocyte/' + image_names[idx-10647-26509][:-6] + 'mask.png' | |
| elif idx < 10647 + 26509 + 24805 + 12273: | |
| image_and_mask_names = os.listdir(data_directory + 'lymphocytes/CD3CD20_Lymphocyte/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'lymphocytes/CD3CD20_Lymphocyte/' + image_names[idx-10647-26509-24805] | |
| mask_name = data_directory + 'lymphocytes/CD3CD20_Lymphocyte/' + image_names[idx-10647-26509-24805][:-6] + 'mask.png' | |
| elif idx < 10647 + 26509 + 24805 + 12273 + 14135: | |
| image_and_mask_names = os.listdir(data_directory + 'myeloid_cells/MNDA_MyeloidCell/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'myeloid_cells/MNDA_MyeloidCell/' + image_names[idx-10647-26509-24805-12273] | |
| mask_name = data_directory + 'myeloid_cells/MNDA_MyeloidCell/' + image_names[idx-10647-26509-24805-12273][:-6] + 'mask.png' | |
| elif idx < 10647 + 26509 + 24805 + 12273 + 14135 + 13231: | |
| image_and_mask_names = os.listdir(data_directory + 'plasma_cells/MIST1_PlasmaCell/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'plasma_cells/MIST1_PlasmaCell/' + image_names[idx-10647-26509-24805-12273-14135] | |
| mask_name = data_directory + 'plasma_cells/MIST1_PlasmaCell/' + image_names[idx-10647-26509-24805-12273-14135][:-6] + 'mask.png' | |
| elif idx < 10647 + 26509 + 24805 + 12273 + 14135 + 13231 + 25909: | |
| image_and_mask_names = os.listdir(data_directory + 'red_blood_cells/CD235a_RBC/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'red_blood_cells/CD235a_RBC/' + image_names[idx-10647-26509-24805-12273-14135-13231] | |
| mask_name = data_directory + 'red_blood_cells/CD235a_RBC/' + image_names[idx-10647-26509-24805-12273-14135-13231][:-6] + 'mask.png' | |
| else: | |
| image_and_mask_names = os.listdir(data_directory + 'smooth_muscle_cells/aSMA_SmoothMuscle/') | |
| image_names = [x for x in image_and_mask_names if "HE" in x] | |
| image_name = data_directory + 'smooth_muscle_cells/aSMA_SmoothMuscle/' + image_names[idx-10647-26509-24805-12273-14135-13231-25909] | |
| mask_name = data_directory + 'smooth_muscle_cells/aSMA_SmoothMuscle/' + image_names[idx-10647-26509-24805-12273-14135-13231-25909][:-6] + 'mask.png' | |
| return image_name, mask_name | |
| def get_segpc(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'SegPC/TCIA_SegPC_dataset/') | |
| if idx < 298: | |
| mask_names = os.listdir(data_directory + 'train/masks_png/') | |
| image_name = data_directory + 'train/x/' + mask_names[idx][:-4] + ".bmp" | |
| mask_name = data_directory + 'train/masks_png/' + mask_names[idx] | |
| else: | |
| mask_names = os.listdir(data_directory + 'validation/masks_png/') | |
| image_name = data_directory + 'validation/x/' + mask_names[idx-298][:-4] + ".bmp" | |
| mask_name = data_directory + 'validation/masks_png/' + mask_names[idx-298] | |
| return image_name, mask_name | |
| def get_tiger(self, idx): | |
| data_directory = os.path.join(self.data_directory, 'TIGER/wsirois/roi-level-annotations/tissue-cells/') | |
| image_names = os.listdir(data_directory + 'images/') | |
| image_name = data_directory + 'images/' + image_names[idx] | |
| mask_name = data_directory + 'masks/' + image_names[idx] | |
| return image_name, mask_name | |
| def get_tnbc(self, idx): | |
| if self.cluster == "denbi": | |
| data_directory = os.path.join(self.data_directory, 'TNBC/TNBC_NucleiSegmentation/') | |
| else: | |
| data_directory = os.path.join(self.data_directory, 'TNBC/TNBC_dataset/') | |
| bucket = 1 | |
| idx = idx + 1 | |
| if idx > 7: | |
| bucket += 1 | |
| idx -= 7 | |
| if idx > 3: | |
| bucket += 1 | |
| idx -= 3 | |
| if idx > 5: | |
| bucket += 1 | |
| idx -= 5 | |
| if idx > 8: | |
| bucket += 1 | |
| idx -= 8 | |
| if idx > 4: | |
| bucket += 1 | |
| idx -= 4 | |
| if idx > 3: | |
| bucket += 1 | |
| idx -= 3 | |
| if idx > 3: | |
| bucket += 1 | |
| idx -= 3 | |
| if idx > 4: | |
| bucket += 1 | |
| idx -= 4 | |
| if idx > 6: | |
| bucket += 1 | |
| idx -= 6 | |
| if idx > 4: | |
| bucket += 1 | |
| idx -= 4 | |
| image_name = data_directory + 'Slide_' + str(bucket).zfill(2) + '/' + str(bucket).zfill(2) + '_' + str(idx) + '.png' | |
| mask_name = data_directory + 'GT_' + str(bucket).zfill(2) + '/' + str(bucket).zfill(2) + '_' + str(idx) + '.png' | |
| return image_name, mask_name |