Source code for WORC.IOparser.config_io_PyRadiomics
#!/usr/bin/env python# Copyright 2016-2020 Biomedical Imaging Group Rotterdam, Departments of# Medical Informatics and Radiology, Erasmus MC, Rotterdam, The Netherlands## 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.importconfigparserimportnumpyasnpimportosimportPREDICT.addexceptionsasae
[docs]defload_config(config_file_path):ifnotos.path.exists(config_file_path):e=f'File {config_file_path} does not exist!'raiseae.PREDICTKeyError(e)settings=configparser.ConfigParser()settings.read(config_file_path)settings_dict={'ImageFeatures':dict(),'DataPaths':dict(),'General':dict()}# Extract some general settingssettings_dict['General']['Joblib_ncores']=\
settings['General'].getint('Joblib_ncores')settings_dict['General']['Joblib_backend']=\
str(settings['General']['Joblib_backend'])# Extract image feature specific settingssettings_dict['ImageFeatures']['image_type']=\
[str(item).strip()foriteminsettings['ImageFeatures']['image_type'].split(',')]settings_dict['ImageFeatures']['shape']=\
settings['ImageFeatures'].getboolean('shape')settings_dict['ImageFeatures']['histogram']=\
settings['ImageFeatures'].getboolean('histogram')settings_dict['ImageFeatures']['orientation']=\
settings['ImageFeatures'].getboolean('orientation')settings_dict['ImageFeatures']['texture_Gabor']=\
settings['ImageFeatures'].getboolean('texture_Gabor')settings_dict['ImageFeatures']['texture_GLCM']=\
settings['ImageFeatures'].getboolean('texture_GLCM')settings_dict['ImageFeatures']['texture_GLCMMS']=\
settings['ImageFeatures'].getboolean('texture_GLCMMS')settings_dict['ImageFeatures']['texture_GLRLM']=\
settings['ImageFeatures'].getboolean('texture_GLRLM')settings_dict['ImageFeatures']['texture_GLSZM']=\
settings['ImageFeatures'].getboolean('texture_GLSZM')settings_dict['ImageFeatures']['texture_NGTDM']=\
settings['ImageFeatures'].getboolean('texture_NGTDM')settings_dict['ImageFeatures']['texture_LBP']=\
settings['ImageFeatures'].getboolean('texture_LBP')settings_dict['ImageFeatures']['coliage']=\
settings['ImageFeatures'].getboolean('coliage')settings_dict['ImageFeatures']['vessel']=\
settings['ImageFeatures'].getboolean('vessel')settings_dict['ImageFeatures']['log']=\
settings['ImageFeatures'].getboolean('log')settings_dict['ImageFeatures']['phase']=\
settings['ImageFeatures'].getboolean('phase')# Parameters for computing featuressettings_dict['ImageFeatures']['parameters']=dict()# Gabor settingssettings_dict['ImageFeatures']['parameters']['gabor_settings']=dict()gabor_frequencies=[str(item).strip()foriteminsettings['ImageFeatures']['gabor_frequencies'].split(',')]gabor_frequencies=np.asarray(gabor_frequencies).astype(np.float)gabor_angles=[str(item).strip()foriteminsettings['ImageFeatures']['gabor_angles'].split(',')]gabor_angles=np.asarray(gabor_angles).astype(np.float)# Convert gabor angle to radians from anglesgabor_angles=np.radians(gabor_angles)settings_dict['ImageFeatures']['parameters']['gabor_settings']['gabor_frequencies']=\
gabor_frequenciessettings_dict['ImageFeatures']['parameters']['gabor_settings']['gabor_angles']=\
gabor_angles# GLCMsettings_dict['ImageFeatures']['parameters']['GLCM']=dict()settings_dict['ImageFeatures']['parameters']['GLCM']['levels']=\
int(settings['ImageFeatures']['GLCM_levels'])GLCM_angles=[str(item).strip()foriteminsettings['ImageFeatures']['GLCM_angles'].split(',')]settings_dict['ImageFeatures']['parameters']['GLCM']['angles']=\
[float(g)forginGLCM_angles]GLCM_distances=[str(item).strip()foriteminsettings['ImageFeatures']['GLCM_distances'].split(',')]settings_dict['ImageFeatures']['parameters']['GLCM']['distances']=\
[float(g)forginGLCM_distances]# LBPsettings_dict['ImageFeatures']['parameters']['LBP']=dict()LBP_radius=[str(item).strip()foriteminsettings['ImageFeatures']['LBP_radius'].split(',')]settings_dict['ImageFeatures']['parameters']['LBP']['radius']=\
[int(g)forginLBP_radius]LBP_npoints=[str(item).strip()foriteminsettings['ImageFeatures']['LBP_npoints'].split(',')]settings_dict['ImageFeatures']['parameters']['LBP']['N_points']=\
[int(g)forginLBP_npoints]# Phase featuressettings_dict['ImageFeatures']['parameters']['phase']=dict()phase_minwavelength=[str(item).strip()foriteminsettings['ImageFeatures']['phase_minwavelength'].split(',')]settings_dict['ImageFeatures']['parameters']['phase']['minwavelength']=\
[int(g)forginphase_minwavelength]phase_nscale=[str(item).strip()foriteminsettings['ImageFeatures']['phase_nscale'].split(',')]settings_dict['ImageFeatures']['parameters']['phase']['nscale']=\
[int(g)forginphase_nscale]# log featuressettings_dict['ImageFeatures']['parameters']['log']=dict()log_sigma=[str(item).strip()foriteminsettings['ImageFeatures']['log_sigma'].split(',')]settings_dict['ImageFeatures']['parameters']['log']['sigma']=\
[int(g)forginlog_sigma]# vessel featuressettings_dict['ImageFeatures']['parameters']['vessel']=dict()vessel_scale_range=[str(item).strip()foriteminsettings['ImageFeatures']['vessel_scale_range'].split(',')]settings_dict['ImageFeatures']['parameters']['vessel']['scale_range']=\
[float(g)forginvessel_scale_range]vessel_scale_step=[str(item).strip()foriteminsettings['ImageFeatures']['vessel_scale_step'].split(',')]settings_dict['ImageFeatures']['parameters']['vessel']['scale_step']=\
[float(g)forginvessel_scale_step]settings_dict['ImageFeatures']['parameters']['vessel']['radius']=\
int(settings['ImageFeatures']['vessel_radius'])returnsettings_dict