Code Duplication    Length = 50-50 lines in 2 locations

demos/unpaired_ct_lung/demo_data.py 1 location

@@ 103-152 (lines=50) @@
100
path_to_test = os.path.join(path_to_data_folder, "test")
101
path_to_valid = os.path.join(path_to_data_folder, "valid")
102
103
if os.path.exists(path_to_test) is not True:
104
105
    os.mkdir(path_to_test)
106
    os.mkdir(os.path.join(path_to_test, "fixed_images"))
107
    os.mkdir(os.path.join(path_to_test, "fixed_labels"))
108
    os.mkdir(os.path.join(path_to_test, "moving_images"))
109
    os.mkdir(os.path.join(path_to_test, "moving_labels"))
110
111
    ratio_of_test_and_valid_samples = 0.4
112
113
    unique_case_names = []
114
    for file in images_fnames:
115
        case_name_as_list = file.split("_")[0:2]
116
        case_name = case_name_as_list[0] + "_" + case_name_as_list[1]
117
        unique_case_names.append(case_name)
118
    unique_case_names = np.unique(unique_case_names)
119
120
    test_and_valid_cases = random.sample(
121
        list(unique_case_names),
122
        int(ratio_of_test_and_valid_samples * len(unique_case_names)),
123
    )
124
    test_cases = test_and_valid_cases[
125
        0 : int(int(ratio_of_test_and_valid_samples * len(unique_case_names) / 2))
126
    ]
127
    valid_cases = test_and_valid_cases[
128
        int(int(ratio_of_test_and_valid_samples * len(unique_case_names) / 2)) + 1 :
129
    ]
130
131
    def move_test_cases_into_correct_path(test_cases, path_to_train, path_to_test):
132
        folder_names = os.listdir(path_to_train)
133
        os.chdir(path_to_train)
134
        for case in test_cases:
135
            for folder in folder_names:
136
                file_names = os.listdir(os.path.join(path_to_train, folder))
137
                for file in file_names:
138
                    if case in file:
139
                        os.chdir(os.path.join(path_to_train, folder))
140
                        source = file
141
                        destination = os.path.join(path_to_test, folder)
142
                        shutil.move(source, destination)
143
144
    move_test_cases_into_correct_path(test_cases, path_to_train, path_to_test)
145
146
    os.mkdir(path_to_valid)
147
    os.mkdir(os.path.join(path_to_valid, "fixed_images"))
148
    os.mkdir(os.path.join(path_to_valid, "fixed_labels"))
149
    os.mkdir(os.path.join(path_to_valid, "moving_images"))
150
    os.mkdir(os.path.join(path_to_valid, "moving_labels"))
151
152
    move_test_cases_into_correct_path(valid_cases, path_to_train, path_to_valid)
153
154
######## NAMING FILES SUCH THAT THEIR NAMES MATCH FOR PAIRING ########
155

demos/paired_ct_lung/demo_data.py 1 location

@@ 98-147 (lines=50) @@
95
path_to_test = os.path.join(path_to_data_folder, "test")
96
path_to_valid = os.path.join(path_to_data_folder, "valid")
97
98
if os.path.exists(path_to_test) is not True:
99
100
    os.mkdir(path_to_test)
101
    os.mkdir(os.path.join(path_to_test, "fixed_images"))
102
    os.mkdir(os.path.join(path_to_test, "fixed_labels"))
103
    os.mkdir(os.path.join(path_to_test, "moving_images"))
104
    os.mkdir(os.path.join(path_to_test, "moving_labels"))
105
106
    ratio_of_test_and_valid_samples = 0.2
107
108
    unique_case_names = []
109
    for file in images_fnames:
110
        case_name_as_list = file.split("_")[0:2]
111
        case_name = case_name_as_list[0] + "_" + case_name_as_list[1]
112
        unique_case_names.append(case_name)
113
    unique_case_names = np.unique(unique_case_names)
114
115
    test_and_valid_cases = random.sample(
116
        list(unique_case_names),
117
        int(ratio_of_test_and_valid_samples * len(unique_case_names)),
118
    )
119
    test_cases = test_and_valid_cases[
120
        0 : int(int(ratio_of_test_and_valid_samples * len(unique_case_names) / 2))
121
    ]
122
    valid_cases = test_and_valid_cases[
123
        int(int(ratio_of_test_and_valid_samples * len(unique_case_names) / 2)) + 1 :
124
    ]
125
126
    def move_test_cases_into_correct_path(test_cases, path_to_train, path_to_test):
127
        folder_names = os.listdir(path_to_train)
128
        os.chdir(path_to_train)
129
        for case in test_cases:
130
            for folder in folder_names:
131
                file_names = os.listdir(os.path.join(path_to_train, folder))
132
                for file in file_names:
133
                    if case in file:
134
                        os.chdir(os.path.join(path_to_train, folder))
135
                        source = file
136
                        destination = os.path.join(path_to_test, folder)
137
                        shutil.move(source, destination)
138
139
    move_test_cases_into_correct_path(test_cases, path_to_train, path_to_test)
140
141
    os.mkdir(path_to_valid)
142
    os.mkdir(os.path.join(path_to_valid, "fixed_images"))
143
    os.mkdir(os.path.join(path_to_valid, "fixed_labels"))
144
    os.mkdir(os.path.join(path_to_valid, "moving_images"))
145
    os.mkdir(os.path.join(path_to_valid, "moving_labels"))
146
147
    move_test_cases_into_correct_path(valid_cases, path_to_train, path_to_valid)
148
149
######## NAMING FILES SUCH THAT THEIR NAMES MATCH FOR PAIRING ########
150