nnUNet_calvingfront_detection / nnunet /utilities /task_name_id_conversion.py
ho11laqe's picture
init
ecf08bc
raw history blame
No virus
3.51 kB
# Copyright 2020 Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from nnunet.paths import nnUNet_raw_data, preprocessing_output_dir, nnUNet_cropped_data, network_training_output_dir
from batchgenerators.utilities.file_and_folder_operations import *
import numpy as np
def convert_id_to_task_name(task_id: int):
startswith = "Task%03.0d" % task_id
if preprocessing_output_dir is not None:
candidates_preprocessed = subdirs(preprocessing_output_dir, prefix=startswith, join=False)
else:
candidates_preprocessed = []
if nnUNet_raw_data is not None:
candidates_raw = subdirs(nnUNet_raw_data, prefix=startswith, join=False)
else:
candidates_raw = []
if nnUNet_cropped_data is not None:
candidates_cropped = subdirs(nnUNet_cropped_data, prefix=startswith, join=False)
else:
candidates_cropped = []
candidates_trained_models = []
if network_training_output_dir is not None:
for m in ['2d', '3d_lowres', '3d_fullres', '3d_cascade_fullres']:
if isdir(join(network_training_output_dir, m)):
candidates_trained_models += subdirs(join(network_training_output_dir, m), prefix=startswith, join=False)
all_candidates = candidates_cropped + candidates_preprocessed + candidates_raw + candidates_trained_models
unique_candidates = np.unique(all_candidates)
if len(unique_candidates) > 1:
raise RuntimeError("More than one task name found for task id %d. Please correct that. (I looked in the "
"following folders:\n%s\n%s\n%s" % (task_id, nnUNet_raw_data, preprocessing_output_dir,
nnUNet_cropped_data))
if len(unique_candidates) == 0:
raise RuntimeError("Could not find a task with the ID %d. Make sure the requested task ID exists and that "
"nnU-Net knows where raw and preprocessed data are located (see Documentation - "
"Installation). Here are your currently defined folders:\nnnUNet_preprocessed=%s\nRESULTS_"
"FOLDER=%s\nnnUNet_raw_data_base=%s\nIf something is not right, adapt your environemnt "
"variables." %
(task_id,
os.environ.get('nnUNet_preprocessed') if os.environ.get('nnUNet_preprocessed') is not None else 'None',
os.environ.get('RESULTS_FOLDER') if os.environ.get('RESULTS_FOLDER') is not None else 'None',
os.environ.get('nnUNet_raw_data_base') if os.environ.get('nnUNet_raw_data_base') is not None else 'None',
))
return unique_candidates[0]
def convert_task_name_to_id(task_name: str):
assert task_name.startswith("Task")
task_id = int(task_name[4:7])
return task_id