Esempio n. 1
0
def add_existing_label_layers(
    viewer,
    label_file,
    selected_label=1,
    num_colors=10,
    brush_size=30,
    memory=False,
):
    """
    Loads an existing (nii) image as a napari labels layer
    :param viewer: Napari viewer instance
    :param label_file: Filename of the image to be loaded
    :param int selected_label: Label ID to be preselected
    :param int num_colors: How many colors (labels)
    :param int brush_size: Default size of the label brush
    :return label_layer: napari labels layer
    """
    label_file = Path(label_file)
    labels = prepare_load_nii(label_file, memory=memory)
    label_layer = viewer.add_labels(labels,
                                    num_colors=num_colors,
                                    name=label_file.stem)
    label_layer.selected_label = selected_label
    label_layer.brush_size = brush_size
    return label_layer
Esempio n. 2
0
 def load_main_downsampled_channel(self):
     self.viewer.add_image(
         prepare_load_nii(
             self.registration_paths.downsampled_brain_path,
             memory=memory,
         ),
         scale=self.image_scales,
         name="Raw data (downsampled)",
     )
Esempio n. 3
0
 def load_heatmap(self):
     self.status_label.setText("Loading...")
     self.viewer.add_image(
         prepare_load_nii(
             self.heatmap_path,
             memory=memory,
         ),
         scale=self.image_scales,
         name="Heatmap",
     )
     self.status_label.setText("Ready")
Esempio n. 4
0
    def load_atlas(self):
        if not self.region_labels:
            self.status_label.setText(f"Loading ...")
            self.region_labels = self.viewer.add_labels(
                prepare_load_nii(self.paths.annotations, memory=memory),
                name="Region labels",
                opacity=0.2,
            )
            self.region_labels.editable = False

            @self.region_labels.mouse_move_callbacks.append
            def display_region_name(layer, event):
                display_brain_region_name(layer, self.structures_df)

            self.status_label.setText(f"Ready")
Esempio n. 5
0
 def load_additional_downsampled_channels(self,
                                          search_string="downsampled_",
                                          extension=".nii"):
     for file in self.registration_directory.iterdir():
         if ((file.suffix == extension)
                 and file.name.startswith(search_string) and file != Path(
                     self.registration_paths.downsampled_brain_path)
                 and file != Path(
                     self.registration_paths.tmp__downsampled_filtered)):
             print(f"Found additional downsampled image: {file.name}, "
                   f"adding to viewer")
             name = (file.name.strip(search_string).strip(extension) +
                     " (Downsampled)")
             self.viewer.add_image(
                 prepare_load_nii(file, memory=memory),
                 name=name,
                 scale=self.image_scales,
             )
Esempio n. 6
0
    def load_amap_directory(self):
        self.select_nii_file()
        self.registration_directory = self.downsampled_file.parent
        self.status_label.setText(f"Loading ...")

        self.paths = Paths(self.registration_directory, self.downsampled_file)

        if not self.paths.tmp__inverse_transformed_image.exists():
            print(
                f"The image: '{self.downsampled_file}' has not been transformed into standard "
                f"space, and so must be transformed before segmentation.\n")
            transform_image_to_standard_space(
                self.registration_directory,
                image_to_transform_fname=self.downsampled_file,
                output_fname=self.paths.tmp__inverse_transformed_image,
                log_file_path=self.paths.tmp__inverse_transform_log_path,
                error_file_path=self.paths.tmp__inverse_transform_error_path,
            )
        else:
            print("Registered image exists, skipping registration\n")

        self.registered_image = prepare_load_nii(
            self.paths.tmp__inverse_transformed_image, memory=memory)
        self.base_layer = display_channel(
            self.viewer,
            self.registration_directory,
            self.paths.tmp__inverse_transformed_image,
            memory=memory,
            name="Image in standard space",
        )
        self.initialise_image_view()

        self.structures_df = load_structures_as_df(get_structures_path())

        self.load_button.setMinimumWidth(0)
        self.load_atlas_button.setVisible(True)
        self.save_button.setVisible(True)
        self.initialise_region_segmentation()
        self.initialise_track_tracing()
        self.status_label.setText(f"Ready")