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']
Пример #4
0
    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)
Пример #5
0
    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))
Пример #6
0
    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']
Пример #9
0
    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))
Пример #10
0
    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']
Пример #12
0
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']