Page cover
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Medical Labeling Editor

Ango Hub provides a medical labeling editor, in which annotators can label medical files in the NRRD and NIFTI formats.

DICOM files are annotated in the DICOM labeling editor.

Overview

Supported File Types

The 3D Medical labeling editor supports NRRD and NIFTI assets with the following file extensions:

  • .nrrd

  • .nii

  • .nii.gz

NRRD files must be compatible 3D medical volumes with supported spatial metadata. See NRRD File Compatibility for the exact NRRD files Ango Hub can and cannot open.

Supported Labeling Tools

The 3D Medical labeling editor supports following labeling tools:

Tools

  • Bounding Box

  • Rotated Bounding Box

  • Polygon

  • Polyline

  • Point

  • Voxel Brush

  • Angle

Classifications

  • Radio

  • Checkbox

  • Single-Select Dropdown

  • Multi-Select Dropdown

  • Single-Select Tree

  • Multi-Select Tree

  • Text

Relations

  • Single Relation

  • Group Relation

View layouts

Click Layout at the left of the Function Bar to change the arrangement of the views.

  • 2x2 is the default layout: Axial at the top left, 3D at the top right, Coronal at the bottom left, and Sagittal at the bottom right.

  • 1x3 shows three equal-width views in one horizontal row, with Axial, Coronal, and Sagittal from left to right by default.

  • 1+3 shows one full-width view above three equal-width views, with 3D above Axial, Coronal, and Sagittal by default.

Open the menu in a view and choose Select view to change what it displays, including selecting 3D in the 1x3 layout. Ango Hub remembers the last layout and the view choices for each layout across medical tasks in the same project in your browser.

The 3D Viewer shows a 3D reconstruction of the annotations created so far when the toggle in its top left is active.

Tool/Class List

You select your class (tool) from the ones created in the project settings in the tool list. Only one class can be selected at a time. The selected class is highlighted in blue.

If the icon is filled in, this means that there are voxels in the current asset which have been painted with the related class.

By clicking on the eye icon next to a class name, you can hide brush traces belonging to the class. Clicking on the three dots and then on the trash can will delete all segmentations from the class.

Once a class is selected, you can annotate on the asset using its functions – brush, pen, threshold, and more, by clicking on the function from the Function Bar.

Jumping to a class's largest segmentation in all views

Click on the three dots next to the class name and then on Jump. All visible views will jump to the slice containing the highest amount of voxels painted with the class you specified.

Voxel Brush Tool Attributes

Voxel brush attributes will not appear until at least a voxel has been painted with the voxel brush tool in question. This is to prevent attributes from being set when no object is present.

If you have added nested classifications (aka "attributes") to a Voxel Brush class in the project settings, the class will have a downward arrow, and can be expanded:

From this section, you are able to set attributes for the class in this asset.

Function Bar

By default:

  • Crosshair Toggle: toggles the crosshair on or off. Read more about the crosshair here.

  • Reformat: toggles oblique reformat mode for NRRD assets. Read more about Reformat here.

  • Window Options: Change the window width and level. Read more about window options here.

  • Smoothing: Opens the Smoothing tool, allowing you to smooth out your annotations. Read more about smoothing here.

  • Island Tools: Tools related to deleting and changing categories of islands. Read more about island tools here.

  • Threshold Tool: Paint all pixels with values falling between two values you specify. Read more about threshold here.

  • Logical Operators: Perform logical operation on labeling classes, like invert, subtract, add, copy, and more. Read more about logical operators here.

  • Fill Between Slices: read more about this function here.

  • Level Tracing: With a labeling tool selected, press T or click the Level Tracing button to toggle it on or off. When toggled on, hovering on a voxel will display a trace of the voxels at the same level of the hovered voxel. Clicking confirms the selection.

  • Grow: When toggled on, click and drag on the asset to perform a "grow" motion. You may alter the sensitivity of this tool from the settings on the left-hand side of the screen. If you wish to limit the effect of the grow tool to a specific Hounsfield unit range, also activate the Threshold function and select your range.

  • Borders: Toggle whether the brush traces shown should be filled in or not. The change is merely cosmetic and has no bearing on the export.

  • Keypoints: When enabled, clicking anyhere on the view creates a new keypoint. Read more about keypoints here.

  • 3D Bounding Box: When enabled, clicking and dragging on the asset will create a 3D bounding box. Read more about 3D bounding boxes here.

  • Slice Navigator: Slider allowing you to move between slices in the view. Drag the slider up and down to move between slices, or click on the up and down arrows on the top left of the view. Additionally containing the name of the current view, current slice/total number of slices, and in assets with reference volumes, whether the currently-viewed volume is a main or a reference one.

Additionally, when a tool is selected:

  • Brush Tool: Create a segmentation by painting.

  • Pen Tool: Create a segmentation by drawing a closed loop.

  • Adaptive Brush: When active, the shape of the brush will act as a "bucket" tool. You may change the sensitivity of this tool from the left-hand side of the screen.

3D Viewer

By enabling the 3D toggle, you'll be able to see a 3D reconstruction of the annotations completed so far in the top-right view, including supported medical objects such as points, polylines, polygons, bounding boxes, rotated bounding boxes, and voxel brush traces.

  • Rotate the view by dragging with the mouse cursor

  • Zoom in and out with the scroll wheel

  • Pan with Ctrl + Left Mouse Button

Note that the view does not get updated in real time. You will need to click on the refresh button in the top left of the 3D view to update the view with the latest changes.

By default, the 3D viewer will display axis indicators and a 3D cube around your segmentations. You may turn each off from the 3D viewer's three-line menu.

Data Probe

When hovering over a voxel in a view with the mouse cursor, the Data Probe, at the bottom left of the screen, will display information about the voxel being hovered on.

Voxel Location refers to the location of the voxel, in voxels, assuming voxel 0, 0, 0 is the left-most, front-most, bottom-most voxel in the Coronal view.

Voxel Category (if any) refers to the class the voxel belongs to.

Patient Coordinates refers to the real world coordinates of the voxel from the indicated plane. For example, R 6.35 signifies that the voxel is 6.35 millimeters from the R (Right) plane. The different planes are L (Left), R (Right), A (Anterior), P (Posterior), I (Inferior), S (Superior).

Hounsfield Value refers to the Hounsfield density value of the pixel being hovered.

View Options

Each of the three main views has a three-line menu at the top from which you can access options related to that view.

Display Options

  • Fit to View will make the entire currently visible volume fit in the current view.

  • Pin enlarges the view to cover the entire screen. This can also be accomplished by double-clicking on the view. Double-click again to return to the previous stage.

  • Set as Main (on reference volumes only). Sets the current reference volume as the main volume to be annotated. This will erase all annotations in the current task.

  • Select view allows you to change the view for the volume you are currently viewing in the view.

  • Select volume allows you to switch between your main volume and a reference volume, or to another reference volume. The project manager must have imported references volumes for this feature to work. See the following page for more: Importing Reference Medical Volumes on Asset Import.

Only the main volume can be annotated. Reference volumes are for reference purposes only.

You may set a reference volume to be the main volume using the Set as Main button. This will switch the position of the current reference volume with that of the main volume. This, however, will also permanently delete all annotations in the current task.

Brush Trace Options

  • Clone [class name] traces... appears when a class has been selected. This option allows you to clone traces in the current view and in the current slice, belonging to the selected class, to other slices in the same view. For example, if you have some Lung traces in slice number 50 in the axial view you'd like to copy to all slices between 25 and 75, navigate to that slice and from the view options menu, select Clone Lung traces... – the following dialog will appear:

    Indicate the frames to where you'd like the traces to be cloned and click on Clone.

Quick Settings

You may access a number of quick settings by clicking on the following button on the bottom-right corner of the screen:

Functions

Whenever you enable a function by clicking on one from the Function Bar, its options will appear in the Active Functions List, located in the bottom left of the screen. This section covers all functions and their options.

For any function, you may collapse its dialog using the chevron on the left:

Windowing Options

Click the "Window" icon in the function bar to open the windowing options and enable the window adjustment shortcuts detailed in the Keyboard Shortcuts section below.

Window Width and Level: Move the slider, or type in a value to change the window's width and level.

Ango Hub saves the most recently used width and level for each project in your current browser. The values are restored when you reload the editor or open another NRRD task in the same project. In a multi-volume NRRD task, the same values apply to every volume; resetting them uses the main volume's defaults. NRRD and 2D DICOM window values are saved separately.

Preset: Ango Hub has a variety of width/level presets, ideal for quickly setting a W/L pair allowing you to highlight certain elements of the view. For example, selecting the Lung preset will set W/L in such a way that lungs are highlighted, and so on for all other presets.

You can select a preset from the dropdown or use its keyboard shortcut. Preset shortcuts apply to the active view in any Medical editor layout, even when the Window options are closed.

Preset
Shortcut
Width
Level

Abdomen

Shift + 1

350

40

Bone

Shift + 2

1000

400

Air

Shift + 3

1000

-426

Brain

Shift + 4

100

50

Lung

Shift + 5

1400

-500

Liver

Shift + 6

150

30

To save your current width and level as a custom preset, click the save icon next to Preset and enter a name. You can save up to two custom presets, which are assigned Shift + 7 and Shift + 8. Custom presets are stored for the current project in your browser and are available in both NRRD and 2D DICOM tasks in that project. Delete a custom preset from the dropdown to replace it. Ango Hub does not let you save values that already match another preset.

Preset shortcuts do not activate while you are typing in an input field.

Multi-planar Translation & Crosshair

The crosshair allows you to gather your bearings in 3D space and to understand where your cursor is positioned relative to all views.

It also allows you to synchronize all views in such a way that they all show the same pixel you are selecting with the crosshair. This is also known as multiplanar translation.

To toggle the crosshair, click on the Crosshair Toggle:

Move your cursor over a view while holding Shift. You will see that all views will navigate between slices in such a way as to always show the pixel you are hovering over with the crosshair:

When no annotation tool is selected, you can also drag either crosshair line to move only that plane. Dragging a horizontal line moves it vertically, while dragging a vertical line moves it horizontally. The linked view and slice number update as you drag, and the pointer shows vertical arrows over a horizontal line and horizontal arrows over a vertical line to indicate the direction of movement.

To hide the crosshair, click on the Crosshair Toggle again.

You can still perform multi-planar translation even with the crosshair turned off, just by doing Shift + Move Cursor.

The plane indicators and crosshair lines use consistent colors throughout the editor: Axial is red, Coronal is green, and Sagittal is yellow. Each view shows crosshair lines in the colors of the other two planes, making it easier to identify which plane each line represents.

Axial, Coronal, and Sagittal views with color-coded crosshair lines

Reformat

The Reformat tool allows you to work on oblique planes in NRRD assets. When Reformat is enabled, you can rotate the viewing plane from one view and have the other views update to match the reformatted plane.

Reformat button in the Medical editor function bar

To use Reformat, click the Reformat button in the function bar and make sure no annotation tool is selected. Move the pointer over a crosshair line in the Axial, Coronal, or Sagittal view:

  • Drag the inner or middle section of the line to move that plane.

  • Drag the outer section, near either end of the line, to rotate the plane. The other views update to show the corresponding oblique plane.

The pointer changes to show whether dragging will move or rotate the plane. Clicking or dragging away from the crosshair lines does not move or rotate them.

Medical editor showing oblique reformatted planes across Axial, Coronal, and Sagittal views

Reformatted views are marked with an R next to the plane name. The crosshair lines remain perpendicular and the three views remain aligned even when the dataset uses different voxel spacing along each axis.

Reformatted medical views marked with R and showing perpendicular color-coded crosshairs

When Reformat is active, you can use Brush and Pen annotations on the reformatted plane. Point, Polyline, and Polygon annotations created on a reformatted plane store their reformat position, so selecting those annotations from the object list later restores the same oblique view.

Rotated Bounding Box annotations are not displayed or editable while Reformat is active.

In the Ango export, Point, Polyline, and Polygon annotations created on a reformatted plane include an nrrdReformat object with the active plane, angle, and center voxel used for that oblique view. The annotation coordinates themselves are still exported as 3D voxel coordinates, with patient-space coordinates where available.

Voxel Brush annotations do not include per-annotation reformat metadata in the JSON export. They are exported as the final 3D segmentation volume through medicalBrushDataUrl, the same as other medical brush annotations. 3D Bounding Box annotations are also exported as their normal 3D coordinates and do not include nrrdReformat.

To leave Reformat mode and return the views to their regular orthogonal planes, click the Reformat button again.

Brush Tool

After selecting a class, activate the Brush tool by clicking on its icon: .

Brush Size: Slider to adjust the size of the brush tool.

Brush Mode: Selector to pick whether the brush/pen should add (Paint) or whether it should erase (Eraser.)

Brush Type: Pick between 2D (flat) and 3D (spherical) brush.

Editable Area: When using the Threshold tool, choose where the threshold operation can write voxels. Select Everywhere to apply the threshold to the whole asset, or select a Voxel Brush class to restrict the operation to voxels already assigned to that class. When the threshold is restricted to a class, Overwrite or Overlap must be enabled for the threshold operation to change existing voxels.

Editable Area menu in Voxel Brush settings

Overwrite Toggle: When active, when you paint with the brush/pen over pre-existing traces, the traces that have been covered will be deleted and overwritten with the new traces.

Overlap Toggle: When active, your brush traces will overlap pre-existing traces, without overwriting (deleting) them. This way, you can segment the same voxel with multiple classes.

To use the Medical Brush tool, simply click with the left mouse button where you'd like to place the annotation. You can click and drag if necessary, and you may use either the slider mentioned above or the keyboard shortcuts mentioned below to change the size of the brush and other settings.

Brush in Threshold Range

You may choose to limit where you can paint with the brush to a threshold range you specify.

To do so, while the Brush tool is active, click on the "Threshold" icon and pick a range. As long as the threshold tool is active, the brush will only paint within the specified threshold range. To allow the brush to paint anywhere, close the Threshold tool by clicking on its icon again.

Sphere Brush

In the brush settings, switching the brush type to 3D will make the brush a sphere. Clicking anywhere on the asset will create a sphere, with the center on the cursor and with a diameter equal to the brush size.

Visually, the sphere might not always look spherical. This is because often, voxels have different sizes in the different dimensions.

For example, if the voxels in the asset are taller than they are larger, the sphere will look oblong (e.g. taller) than a normal sphere.

This is normal, expected, and intended.

Threshold

The Threshold tool allows you to paint pixels with a value falling between a range you specify.

To activate the threshold tool, first select a Medical Brush tool from the toolbar on the left, then click on the Threshold button. From the dialog that pops up, specify two values using the slider. The view will update and show in a pulsing light pink the pixels that would be painted with the values currently selected:

From the Editable Area dropdown, select where the threshold operation should apply. To apply it to the whole asset, select Everywhere. When you wish to finalize the threshold annotation, click on Apply. The highlighted pixels will be painted over with the tool previously selected.

Threshold Area

You may have threshold only apply to an area where you have already created brush traces.

For example, if we were to have painted an area like so with the 'Green' brush:

We may have Hub only run threshold, with another tool, inside of the green area. This can be useful if, for example, we wished to annotate the bones in the selected area.

To do so, after you have painted the area where you'd like to run threshold, select a different brush, then click on the 'Threshold' icon (). From the dialog that appears on the left side of the screen, select the threshold range. Then, from the Editable Area dropdown, select the brush you have used to draw the initial area.

Ensure the 'Overwrite' or 'Overlap' toggle is on for the brush to run the threshold with, then click on Apply. Threshold will be applied in the area.

Pen

The Pen tool allows you to draw a region of pixels to paint, similar to the Segmentation tool for images.

The pen tool is a subset of the Medical Brush tool. To activate the pen tool, first select a Medical Brush tool from the toolbar on the left, then click on the Pen button.

With the pen tool selected, draw over the image surrounding the pixels you'd like to paint. When you are done, press N to close the loop. All pixels found inside the loop will be painted.

Smoothing

-> See the Smoothing docs page.

Logical Operators

Logical operators allow you to perform logical operations (e.g. add, subtract, invert) on brush traces.

Some operations (e.g. invert) operate on a single brush class: the one you selected. Others (e.g. copy, subtract) operate between two classes of brush traces: the selected class (the one you clicked on in the Tools list which is highlighted in blue) and the target class (the one you select in the Logical Operators panel).

To activate logical operators, click on a class in the Tools list – this will be your selected class. Then, click on the Logical Operators icon in the Function Bar () and select an operation. If required by the operation, select the target tool. Then click on Apply.

Logical Operations

Copy. Removes all existing segmentations of the selected class, and creates new ones copying, and overlapping, the target class.

Add. Creates new brush traces belonging to selected class, copying and overlapping the brush traces of target class.

Subtract. Wherever traces from selected and target class overlap, segmentations from the target class are subtracted from segmentations of the selected class.

Intersect. Deletes all traces of selected class, except where they overlap with target class.

Invert. Inverts traces from selected class.

Clear. Deletes all traces belonging to the selected class.

Fill. Paints all voxels of the asset with the selected brush, overlapping existing segmentations.

Keypoints

Click on the button to enable placing keypoints on the asset. Clicking anywhere on the asset will place a keypoint with three-dimensional coordinates:

spinner

As shown in the video, you may double-click on the keypoint's listing under the "Objects" panel to change its name. You may change its coordinates manually by single-clicking on the listing.

Island Tools

Islands are groups of contiguous voxels.

Island tools are a group of utilities which allow you to remove or change the categories of specific islands in your asset. For example, you may have Hub automatically delete all islands smaller than 1000 voxels.

Read how to use Hub's island tools in the Island Tools docs page.

Importing NRRD Segmentations

Ango Hub allows you to import existing NRRD segmentations as pre-labels.

To do so, follow the steps outlined in the page Importing NRRD Annotations.

Keyboard Shortcuts

Condition
Shortcut
Action
Description

Always

Space + Drag Cursor

Pan

Pans the view.

Always

Ctrl + Mouse Wheel

Zoom

Zooms the view being currently hovered by the mouse cursor.

Always

Shift + Move Cursor

Multiplanar Translation

Navigates between slices in all other views to show the pixel you are hovering over in all views.

Always

Ctrl + Z

Undo

Undo the last action.

Always

Ctrl + Shift + Z

Redo

Redo the last undone action.

Always

Mouse Wheel

Navigate Slices

Move up and down between slices.

Always

Middle Mouse Button

Pan

Pans the view.

Always, except while typing in an input field

Shift + 1–8

Apply Window Preset

Applies the corresponding predefined or saved custom window/level preset to the active view.

When no labeling tools are selected

Click and Drag

Pan

Pans the view.

When no labeling tools are selected

Double Click

Full Screen

Switch between the chosen layout and a single-view mode.

When a labeling tool is selected

Shift + Mouse Wheel

Change Tool Size

Changes the size of the tool.

When a labeling tool is selected, except while typing in an input field

T

Toggle Level Tracing

Turns Level Tracing on or off.

When a labeling tool is selected

W and Q

Change Tool

Move up and down in the tool list, changing the currently active tool.

When the "Window" icon is selected

Drag cursor up/down

Change Brightness

Dragging the cursor downwards will increase the brightness, dragging it upwards will decrease it.

When the "Window" icon is selected

Drag cursor left/right

Change Contrast

Moving the cursor to the left while holding Ctrl will increase contrast, moving it to the right will decrease it.

When the "Pen" tool is selected

N

Close Pen Trace

Closes the loop drawn with the pen and paints the pixels found inside it.

NRRD Exports

Exports obtained from the NRRD editor work differently from exports obtained with our other editors.

While you can obtain the export the same way, the brush data is not contained directly within the text export itself, instead, the text export contains a link to a NRRD file containing your annotations.

A sample NRRD export looks like this:

The brush data is contained in the URL linked to in the medicalBrushDataUrl property. Once you enter the URL, download the .zip and unzip it, you will receive a .nrrd file containing your annotations. For example, this is what the open NRRD would look like, with simple circular annotations:

Last updated