コード例 #1
0
 def test_03a_run_forward_sim_2d(self):
     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.ibo.reload_state()
     self.ibo.init_forward_problem(seed_position=self.seed_position_2d,
                                   sim_params=self.params_sim,
                                   model_params_fixed=self.params_fix,
                                   model_params_varying=self.params_target)
     self.ibo.run_forward_sim(plot=True)
コード例 #2
0
 def test_06a_run_inverse_problem_2d(self):
     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.ibo.reload_state()
     self.ibo.init_inverse_problem(seed_position=self.seed_position_2d,
                                   sim_params=self.params_sim,
                                   model_params_varying=self.params_init,
                                   optimization_type=3)
     self.ibo.run_inverse_problem(self.opt_params)
コード例 #3
0
 def test_02a_prepare_domain_2d(self):
     self.ibo = ImageBasedOptimizationAtlas(
         self.base_dir_2d,
         path_to_labels_atlas=self.path_to_labels_atlas,
         path_to_image_atlas=self.path_to_image_atlas,
         image_z_slice=self.image_slice,
         plot=False)
     self.ibo.prepare_domain(plot=True)
コード例 #4
0
 def test_01_init_domain(self):
     self.ibo = ImageBasedOptimizationAtlas(
         self.base_dir_2d,
         path_to_labels_atlas=self.path_to_labels_atlas,
         path_to_image_atlas=self.path_to_image_atlas,
         image_z_slice=self.image_slice,
         plot=False)
     self.ibo2 = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.assertEqual(self.ibo.path_to_image_atlas_orig,
                      self.ibo2.path_to_image_atlas_orig)
     self.assertEqual(self.ibo.dim, self.ibo2.dim)
コード例 #5
0
class TestImageBasedOptimizationAtlas(TestCase):
    def setUp(self):
        self.base_dir_2d = os.path.join(config.output_dir_testing,
                                        'ImageBasedOptimizationAtlas_2d')
        self.base_dir_3d = os.path.join(config.output_dir_testing,
                                        'ImageBasedOptimizationAtlas_3d')

        self.path_to_labels_atlas = os.path.join(config.test_data_dir,
                                                 'brain_atlas_image_3d.mha')
        self.path_to_image_atlas = os.path.join(config.test_data_dir,
                                                'brain_atlas_image_t1_3d.mha')
        self.image_slice = 87

        self.params_sim = {
            "sim_time": 10,
            "sim_time_step": 1,
        }

        self.params_fix = {
            "E_GM": 3000E-6,
            "E_WM": 3000E-6,
            "E_CSF": 1000E-6,
            "E_VENT": 1000E-6,
            "nu_GM": 0.45,
            "nu_WM": 0.45,
            "nu_CSF": 0.45,
            "nu_VENT": 0.3
        }

        self.params_target = {
            "D_WM": 0.1,
            "D_GM": 0.02,
            "rho_WM": 0.1,
            "rho_GM": 0.1,
            "coupling": 0.15
        }

        self.params_init = {
            "D_WM": 0.001,
            "D_GM": 0.001,
            "rho_WM": 0.001,
            "rho_GM": 0.001,
            "coupling": 0.001
        }

        self.bounds = [[0.001, 0.001, 0.001], [0.5, 0.5, 0.5]]

        # large tolerance for quick tests
        self.opt_params = {
            'bounds': self.bounds,
            'method': "L-BFGS-B",
            'tol': 1,
            'options': {
                'disp': True,
                'gtol': 1
            }
        }

        self.seed_position_2d = [148, -67]
        self.seed_position_3d = [118, -109, 72]

    def test_01_init_domain(self):
        self.ibo = ImageBasedOptimizationAtlas(
            self.base_dir_2d,
            path_to_labels_atlas=self.path_to_labels_atlas,
            path_to_image_atlas=self.path_to_image_atlas,
            image_z_slice=self.image_slice,
            plot=False)
        self.ibo2 = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.assertEqual(self.ibo.path_to_image_atlas_orig,
                         self.ibo2.path_to_image_atlas_orig)
        self.assertEqual(self.ibo.dim, self.ibo2.dim)

    def test_02a_prepare_domain_2d(self):
        self.ibo = ImageBasedOptimizationAtlas(
            self.base_dir_2d,
            path_to_labels_atlas=self.path_to_labels_atlas,
            path_to_image_atlas=self.path_to_image_atlas,
            image_z_slice=self.image_slice,
            plot=False)
        self.ibo.prepare_domain(plot=True)

    #
    # def test_02b_prepare_domain_3d(self):
    #     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_3d,
    #                                            path_to_labels_atlas=self.path_to_labels_atlas,
    #                                            path_to_image_atlas=self.path_to_image_atlas,
    #                                            image_z_slice=None, plot=False)
    #     self.ibo.prepare_domain(plot=True)

    def test_03a_run_forward_sim_2d(self):
        self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.ibo.reload_state()
        self.ibo.init_forward_problem(seed_position=self.seed_position_2d,
                                      sim_params=self.params_sim,
                                      model_params_fixed=self.params_fix,
                                      model_params_varying=self.params_target)
        self.ibo.run_forward_sim(plot=True)

    # def test_03b_run_forward_sim_3d(self):
    #     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_3d)
    #     self.ibo.reload_state()
    #     self.ibo.init_forward_problem(seed_position=self.seed_position_3d,
    #                                   sim_params=self.params_sim,
    #                                   model_params_fixed=self.params_fix,
    #                                   model_params_varying=self.params_target)
    #     self.ibo.run_forward_sim(plot=True)

    def test_04a_create_target_fields_2d(self):
        self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.ibo.reload_state()
        self.ibo.create_target_fields()

    def test_05a_plotting_2d(self):
        self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.ibo.reload_state()
        self.ibo.plot_all()

    def test_06a_run_inverse_problem_2d(self):
        self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.ibo.reload_state()
        self.ibo.init_inverse_problem(seed_position=self.seed_position_2d,
                                      sim_params=self.params_sim,
                                      model_params_varying=self.params_init,
                                      optimization_type=3)
        self.ibo.run_inverse_problem(self.opt_params)

    def test_07a_run_optimized_sim_2d(self):
        self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.ibo.reload_state()
        print(self.ibo.params_inverse)
        self.ibo.init_optimized_problem()
        self.ibo.run_optimized_sim()

    def test_08_compare_original_optimized(self):
        self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.ibo.reload_state()
        self.ibo.compare_original_optimized(plot=True)

    def test_09_postprocess(self):
        self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
        self.ibo.reload_state()
        self.ibo.post_process()
        self.ibo.write_analysis_summary()
コード例 #6
0
 def test_09_postprocess(self):
     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.ibo.reload_state()
     self.ibo.post_process()
     self.ibo.write_analysis_summary()
コード例 #7
0
 def test_08_compare_original_optimized(self):
     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.ibo.reload_state()
     self.ibo.compare_original_optimized(plot=True)
コード例 #8
0
 def test_07a_run_optimized_sim_2d(self):
     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.ibo.reload_state()
     print(self.ibo.params_inverse)
     self.ibo.init_optimized_problem()
     self.ibo.run_optimized_sim()
コード例 #9
0
 def test_05a_plotting_2d(self):
     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.ibo.reload_state()
     self.ibo.plot_all()
コード例 #10
0
 def test_04a_create_target_fields_2d(self):
     self.ibo = ImageBasedOptimizationAtlas(self.base_dir_2d)
     self.ibo.reload_state()
     self.ibo.create_target_fields()