CBT_project/
│
├── notebooks/
│   └── experiment.ipynb
│
├── core/
│   ├── cylinder.py
│   │   ├── create_coordinate_grid
│   │   ├── snap_to_discrete_values
│   │   ├── generate_cylinder_n_torch
│   │   ├── generate_cylinder_o_torch
│   │   └── generate_cylinder_numpy
│   │
│   ├── intersection.py
│   │   ├── bresenham3d
│   │   └── center_line_intersections_torch
│   │
│   ├── scoring.py
│   │   ├── cl_score_torch
│   │   ├── get_overlap_ratio
│   │   └── compute_overlap_ratio_from_cylinder_mask
│   │
│   ├── objective.py
│   │   ├── cylinder_circle_line_intersection_loss_deductions_torch
│   │   └── objective_function
│   │ 
│   └── optimizer.py
│       └── run_pso_torch
│
├── imaging/
│   ├── nifti_io.py 
│   ├── preprocessing.py

│   └── orientation.py
│
├── visualization/
│   ├── plot_cylinder.py
│   └── plot_overlay.py
│
├── utils/
│   └── helpers.py
│
├── config/
│   ├── constants.py
│   └── device.py
│
├── run_optimization.py
│
└── __init__.py