def get_mcmc_results(dataset_name, model_name): model_defined_maps = mdt.load_volume_maps(output_base_pjoin( dataset_name, model_name, 'samples', 'model_defined_maps')) univariate_normal_maps = mdt.load_volume_maps(output_base_pjoin( dataset_name, model_name, 'samples', 'univariate_normal')) if model_name == 'Tensor': return model_defined_maps['Tensor.FA'], model_defined_maps['Tensor.FA.std'] elif model_name == 'BallStick_r1': return model_defined_maps['FS'], model_defined_maps['FS.std'] # return univariate_normal_maps['w_stick0.w'], univariate_normal_maps['w_stick0.w.std'] elif model_name == 'BallStick_r2': return model_defined_maps['FS'], model_defined_maps['FS.std'] # return univariate_normal_maps['w_stick0.w'], univariate_normal_maps['w_stick0.w.std'] elif model_name == 'BallStick_r3': return model_defined_maps['FS'], model_defined_maps['FS.std'] # return univariate_normal_maps['w_stick0.w'], univariate_normal_maps['w_stick0.w.std'] elif model_name == 'NODDI': return univariate_normal_maps['w_ic.w'], univariate_normal_maps['w_ic.w.std'] elif model_name == 'CHARMED_r1': return model_defined_maps['FR'], model_defined_maps['FR.std'] elif model_name == 'CHARMED_r2': return model_defined_maps['FR'], model_defined_maps['FR.std'] elif model_name == 'BinghamNODDI_r1': return univariate_normal_maps['w_in0.w'], univariate_normal_maps['w_in0.w.std']
def get_mcmc_std(results_pjoin, model_name): model_defined_maps = mdt.load_volume_maps( results_pjoin(model_name, 'samples', 'model_defined_maps')) univariate_normal_maps = mdt.load_volume_maps( results_pjoin(model_name, 'samples', 'univariate_normal')) if model_name == 'Tensor': return model_defined_maps['Tensor.FA.std'] elif model_name == 'BallStick_r1': return model_defined_maps['FS.std'] elif model_name == 'BallStick_r2': return model_defined_maps['FS.std'] elif model_name == 'BallStick_r3': return model_defined_maps['FS.std'] elif model_name == 'NODDI': return univariate_normal_maps['w_ic.w.std'] elif model_name == 'CHARMED_r1': return model_defined_maps['FR.std'] elif model_name == 'BinghamNODDI_r1': return univariate_normal_maps['w_in0.w.std']
def get_mean_std(protocol_name, model_name, snr, trial_ind): model_defined_maps = mdt.load_volume_maps( output_base_pjoin(protocol_name, model_name, 'output', str(snr), str(trial_ind), model_name, 'samples', 'model_defined_maps')) univariate_normal_maps = mdt.load_volume_maps( output_base_pjoin(protocol_name, model_name, 'output', str(snr), str(trial_ind), model_name, 'samples', 'univariate_normal')) if model_name == 'Tensor': return model_defined_maps['Tensor.FA.std'] elif model_name == 'BallStick_r1': return model_defined_maps['FS.std'] elif model_name == 'BallStick_r2': return model_defined_maps['FS.std'] elif model_name == 'BallStick_r3': return model_defined_maps['FS.std'] elif model_name == 'NODDI': return univariate_normal_maps['w_ic.w.std'] elif model_name == 'CHARMED_r1': return model_defined_maps['FR.std'] elif model_name == 'BinghamNODDI_r1': return univariate_normal_maps['w_in0.w.std']
def _start_maps_visualizer(self): folder = self.selectedOutputFolder.text( ) + '/' + self._get_current_model_name() maps = mdt.load_volume_maps(folder) a_map = maps[list(maps.keys())[0]] config = MapPlotConfig() config.dimension = 2 if len(a_map.shape) > 2: config.slice_index = a_map.shape[2] // 2 start_gui(data=SimpleDataInfo.from_paths([folder]), config=config, app_exec=False)
def test_lls_multishell_b6k_max(self): known_values = { 'CHARMED_r1': { 'LogLikelihood': { 'mean': -8038.29248046875, 'std': 4703.6005859375 } }, 'CHARMED_r2': { 'LogLikelihood': { 'mean': -7001.50927734375, 'std': 4062.600341796875 } }, 'CHARMED_r3': { 'LogLikelihood': { 'mean': -6514.17529296875, 'std': 3659.7138671875 } } } for model_name in ['CHARMED_r1', 'CHARMED_r2', 'CHARMED_r3']: pjoin = mdt.make_path_joiner( os.path.join(self._tmp_dir, self._tmp_dir_subdir, 'multishell_b6k_max')) user_volumes = mdt.load_volume_maps( pjoin('output', 'multishell_b6k_max_example_slices_24_38_mask', model_name)) msg_prefix = 'b1k_b2k - {}'.format(model_name) roi = mdt.create_roi( user_volumes['LogLikelihood'], pjoin('multishell_b6k_max_example_slices_24_38_mask')) for map_name, test_values in known_values[model_name].items(): np.testing.assert_allclose(test_values['mean'], np.mean(roi), rtol=1e-4, err_msg='{} - {} - mean'.format( msg_prefix, map_name)) np.testing.assert_allclose(test_values['std'], np.std(roi), rtol=1e-4, err_msg='{} - {} - std'.format( msg_prefix, map_name))
def test_lls_multishell_b6k_max(self): known_values = { 'CHARMED_r1': { 'LogLikelihood': { 'mean': -447.95446, 'std': 36.09088 } }, 'CHARMED_r2': { 'LogLikelihood': { 'mean': -436.13861, 'std': 25.13305 } }, 'CHARMED_r3': { 'LogLikelihood': { 'mean': -432.15878, 'std': 21.87481 } } } for model_name in ['CHARMED_r1', 'CHARMED_r2', 'CHARMED_r3']: pjoin = mdt.make_path_joiner( os.path.join(self._tmp_dir, self._tmp_dir_subdir, 'multishell_b6k_max')) user_volumes = mdt.load_volume_maps( pjoin('output', 'multishell_b6k_max_example_slices_24_38_mask', model_name)) msg_prefix = 'b1k_b2k - {}'.format(model_name) roi = mdt.create_roi( user_volumes['LogLikelihood'], pjoin('multishell_b6k_max_example_slices_24_38_mask')) for map_name, test_values in known_values[model_name].items(): np.testing.assert_allclose(test_values['mean'], np.mean(roi), rtol=1e-4, err_msg='{} - {} - mean'.format( msg_prefix, map_name)) np.testing.assert_allclose(test_values['std'], np.std(roi), rtol=1e-4, err_msg='{} - {} - std'.format( msg_prefix, map_name))
def get_mle_results(dataset_name, model_name): maps = mdt.load_volume_maps(output_base_pjoin(dataset_name, model_name)) if model_name == 'Tensor': return maps['Tensor.FA'], maps['Tensor.FA.std'] elif model_name == 'BallStick_r1': return maps['w_stick0.w'], maps['w_stick0.w.std'] elif model_name == 'BallStick_r2': return maps['FS'], maps['FS.std'] elif model_name == 'NODDI': return maps['w_ic.w'], maps['w_ic.w.std'] elif model_name == 'CHARMED_r1': return maps['FR'], maps['FR.std'] elif model_name == 'CHARMED_r2': return maps['FR'], maps['FR.std'] elif model_name == 'BinghamNODDI_r1': return maps['w_in0.w'], maps['w_in0.w.std']
def get_mle_std(results_pjoin, model_name): maps = mdt.load_volume_maps(results_pjoin(model_name)) if model_name == 'Tensor': return maps['Tensor.FA.std'] elif model_name == 'BallStick_r1': return maps['w_stick0.w.std'] elif model_name == 'BallStick_r2': return maps['FS.std'] elif model_name == 'BallStick_r3': return maps['FS.std'] elif model_name == 'NODDI': return maps['w_ic.w.std'] elif model_name == 'CHARMED_r1': return maps['FR.std'] elif model_name == 'BinghamNODDI_r1': return maps['w_in0.w.std']
def test_lls_b1k_b2k(self): known_values = { 'BallStick_r1': { 'LogLikelihood': { 'mean': -327297.53125, 'std': 359791.5625 } }, 'Tensor': { 'LogLikelihood': { 'mean': -5891.28515625, 'std': 7691.93408203125 } }, 'NODDI': { 'LogLikelihood': { 'mean': -19352.4609375, 'std': 14489.8623046875 } } } for model_name in ['BallStick_r1', 'Tensor', 'NODDI']: pjoin = mdt.make_path_joiner( os.path.join(self._tmp_dir, self._tmp_dir_subdir, 'b1k_b2k')) user_volumes = mdt.load_volume_maps( pjoin('output', 'b1k_b2k_example_slices_24_38_mask', model_name)) msg_prefix = 'b1k_b2k - {}'.format(model_name) roi = mdt.create_roi(user_volumes['LogLikelihood'], pjoin('b1k_b2k_example_slices_24_38_mask')) for map_name, test_values in known_values[model_name].items(): np.testing.assert_allclose(test_values['mean'], np.mean(roi), rtol=1e-4, err_msg='{} - {} - mean'.format( msg_prefix, map_name)) np.testing.assert_allclose(test_values['std'], np.std(roi), rtol=1e-4, err_msg='{} - {} - std'.format( msg_prefix, map_name))
def test_lls_b1k_b2k(self): known_values = { 'BallStick_r1': { 'LogLikelihood': { 'mean': -1215.52355, 'std': 924.27117 } }, 'Tensor': { 'LogLikelihood': { 'mean': -182.73164, 'std': 20.02311 } }, 'NODDI': { 'LogLikelihood': { 'mean': -451.16198, 'std': 37.77514 } } } for model_name in ['BallStick_r1', 'Tensor', 'NODDI']: pjoin = mdt.make_path_joiner( os.path.join(self._tmp_dir, self._tmp_dir_subdir, 'b1k_b2k')) user_volumes = mdt.load_volume_maps( pjoin('output', 'b1k_b2k_example_slices_24_38_mask', model_name)) msg_prefix = 'b1k_b2k - {}'.format(model_name) roi = mdt.create_roi(user_volumes['LogLikelihood'], pjoin('b1k_b2k_example_slices_24_38_mask')) for map_name, test_values in known_values[model_name].items(): np.testing.assert_allclose(test_values['mean'], np.mean(roi), rtol=1e-4, err_msg='{} - {} - mean'.format( msg_prefix, map_name)) np.testing.assert_allclose(test_values['std'], np.std(roi), rtol=1e-4, err_msg='{} - {} - std'.format( msg_prefix, map_name))
def get_mode_std(protocol_name, model_name, snr, trial_ind): maps = mdt.load_volume_maps( output_base_pjoin(protocol_name, model_name, 'output', str(snr), str(trial_ind), model_name)) if model_name == 'Tensor': return maps['Tensor.FA.std'] elif model_name == 'BallStick_r1': return maps['w_stick0.w.std'] elif model_name == 'BallStick_r2': return maps['FS.std'] elif model_name == 'BallStick_r3': return maps['FS.std'] elif model_name == 'NODDI': return maps['w_ic.w.std'] elif model_name == 'CHARMED_r1': return maps['FR.std'] elif model_name == 'BinghamNODDI_r1': return maps['w_in0.w.std']
def get_mle_std(output_dir, model_name): maps = mdt.load_volume_maps(output_dir) if model_name == 'Tensor': return maps['Tensor.FA.std'] elif model_name == 'BallStick_r1': return maps['w_stick0.w.std'] elif model_name == 'BallStick_r2': # return maps['FS.std'] return maps['w_stick0.w.std'] elif model_name == 'BallStick_r3': # return maps['FS.std'] return maps['w_stick0.w.std'] elif model_name == 'NODDI': return maps['w_ic.w.std'] elif model_name == 'CHARMED_r1': return maps['FR.std'] elif model_name == 'CHARMED_r2': return maps['FR.std'] elif model_name == 'CHARMED_r3': return maps['FR.std'] elif model_name == 'BinghamNODDI_r1': return maps['w_in0.w.std']