--- a +++ b/pathfinder.py @@ -0,0 +1,81 @@ +import json +import utils +import os +import utils_lung + +if utils.hostname() == 'user': + with open('SETTINGS_user.json') as data_file: + paths = json.load(data_file) +else: + with open('SETTINGS.json') as data_file: + paths = json.load(data_file) + +# kaggle data +STAGE = int(paths["STAGE"]) + +if STAGE == 1: + METADATA_PATH = paths["METADATA_PATH_1"] + + DATA_PATH = paths["DATA_PATH_1"] + utils.check_data_paths(DATA_PATH) + + SAMPLE_SUBMISSION_PATH = paths["SAMPLE_SUBMISSION_PATH_1"] + if not os.path.isfile(SAMPLE_SUBMISSION_PATH): + raise ValueError('no stage 1 sample submission file') + +elif STAGE == 2: + METADATA_PATH = paths["METADATA_PATH_2"] + + DATA_PATH = paths["DATA_PATH_2"] + utils.check_data_paths(DATA_PATH) + + SAMPLE_SUBMISSION_PATH = paths["SAMPLE_SUBMISSION_PATH_2"] + if not os.path.isfile(SAMPLE_SUBMISSION_PATH): + raise ValueError('no stage 2 sample submission file') + +LABELS_PATH = paths["LABELS_PATH"] +if not os.path.isfile(LABELS_PATH): + raise ValueError('no file with train labels') + + +TEST_LABELS_PATH = paths["TEST_LABELS_PATH"] +if not os.path.isfile(TEST_LABELS_PATH): + raise ValueError('no file with test labels') + +VALIDATION_SPLIT_PATH = paths["VALIDATION_SPLIT_PATH"] +if not os.path.isfile(VALIDATION_SPLIT_PATH): + raise ValueError('no VALIDATION_SPLIT_PATH file') + +FINAL_SPLIT_PATH = paths["FINAL_SPLIT_PATH"] +if not os.path.isfile(FINAL_SPLIT_PATH): + raise ValueError('no FINAL_SPLIT_PATH file') + +# luna data +LUNA_DATA_PATH = paths["LUNA_DATA_PATH"] +utils.check_data_paths(LUNA_DATA_PATH) + +LUNA_SEG_DATA_PATH = paths["LUNA_SEG_DATA_PATH"] +utils.check_data_paths(LUNA_SEG_DATA_PATH) + +LUNA_LABELS_PATH = paths["LUNA_LABELS_PATH"] +if not os.path.isfile(LUNA_LABELS_PATH): + raise ValueError('no file with luna annotations') + +LUNA_CANDIDATES_PATH = paths["LUNA_CANDIDATES_PATH"] +if not os.path.isfile(LUNA_CANDIDATES_PATH): + raise ValueError('no LUNA file candidates_V2.csv') + +LUNA_VALIDATION_SPLIT_PATH = paths["LUNA_VALIDATION_SPLIT_PATH"] +if not os.path.isfile(LUNA_VALIDATION_SPLIT_PATH): + raise ValueError('no LUNA validation split file') + +LUNA_NODULE_ANNOTATIONS_PATH = paths["LUNA_NODULE_ANNOTATIONS"] +utils.check_data_paths(LUNA_NODULE_ANNOTATIONS_PATH) + +LUNA_PROPERTIES_PATH = paths['LUNA_PROPERTIES_PATH'] +if not os.path.isfile(LUNA_PROPERTIES_PATH): + raise ValueError('no LUNA properties file') + +VALIDATION_LB_MIXED_SPLIT_PATH = paths['VALIDATION_LB_MIXED_SPLIT_PATH'] +if not os.path.isfile(VALIDATION_LB_MIXED_SPLIT_PATH): + raise ValueError('no mixed validation and LB file')