DCEMapper’s interactive three-panel layout is designed for rapid visual inspection of DCE-MRI dynamics. You can navigate freely through Z-slices and time frames with keyboard shortcuts, click any voxel to plot its contrast-enhancement curve, and zoom or pan the canvas to examine fine detail — all without leaving the main window.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Rubick65/dcemapper/llms.txt
Use this file to discover all available pages before exploring further.
Three-Panel Layout
Left Panel — Slice Selector
A scrollable thumbnail grid populated with grayscale previews of every axial slice at time-point 0. Click any thumbnail to jump directly to that Z-slice in the main canvas.The column count adapts automatically as you resize the panel: the layout recalculates columns whenever the panel width changes (approximately one column per 110 px of available width). For datasets with many slices, the panel scrolls vertically; the horizontal scrollbar is always hidden.The Time Point (T) and FPS sliders sit above the thumbnail grid and control temporal navigation and movie-mode playback speed respectively.
Center Panel — Main Canvas
The primary matplotlib
FigureCanvas (NiftiCanvas) displaying the currently selected Z-slice at the current time point. A NiftiToolbar docked above the canvas provides:- Pan and Zoom toggles
- Home (reset view)
- Forward/Back zoom-level history
- ROI shape selection buttons
- Processed-map view toggle (RCE / MAX RCE / TTP)
Right Panel — Intensity Graph & Log
An
IntensityGraph widget (matplotlib embedded in Qt) that plots data[x, y, current_z, :] for the last clicked voxel, together with an X and Y coordinate input for manual entry.Below the graph, a vertical QSplitter separates the graph from the Clicks record log. The log is a scrollable list of every voxel click in the session.Navigating the Volume
Z-Slice Navigation
| Method | Action |
|---|---|
← | Move to the previous Z-slice |
→ | Move to the next Z-slice |
| Click thumbnail | Jump directly to the clicked slice |
Temporal Frame Navigation
| Method | Action |
|---|---|
↑ | Advance to the next time frame |
↓ | Step back to the previous time frame |
| Time Point (T) slider | Drag or type a value in the adjacent text box to jump to any frame |
| Space | Toggle movie mode — see Movie Mode below |
Movie Mode
Pressing Space (or clicking the play control) toggles movie mode. When active, aQTimer fires every movie_speed milliseconds and increments the time index by one, cycling through all frames and stopping at the last frame. The timer interval is derived from the FPS slider:
Pixel Intensity Curves
Clicking any voxel on the main canvas triggerscreate_graphic(x, y, value), which:
- Reads the full time series at the clicked spatial position:
data[x, y, current_z, :]. - Passes the array to
IntensityGraph.update_graph(), which replots the curve in the right panel. - Updates the Coor X and Coor Y fields to reflect the clicked coordinates.
Click Record Log
Every voxel click (whether from the canvas or the coordinate inputs) appends an entry to the Clicks record log in the right panel:0 to avoid division by zero. The log is scrollable and persists for the lifetime of the loaded file.
Colormaps
The main canvas uses matplotlib colormaps via theNiftiCanvas.update_cmap() method.
- Raw / preprocessed NIfTI files — loaded with the default grayscale colormap.
- Parametric maps (RCE, MAX RCE, TTP) — the jet colormap is applied automatically whenever a processed file is opened (via File → Open → Open Process File) or when processing completes.
Pan, Zoom, and Navigation Controls
All canvas-navigation shortcuts work as long as the main window has keyboard focus. Click the center panel or press any navigation key to ensure focus.| Key | Tool |
|---|---|
Z | Toggle the interactive Zoom tool (click-drag to zoom into a rectangle) |
M | Toggle the interactive Pan tool (click-drag to scroll the view) |
H | Home — reset the canvas to the default full-image view |
, | Step back to the previous zoom level in the zoom history |
. | Step forward to the next zoom level in the zoom history |
F | Toggle Full Screen mode (press again or F to return to windowed mode) |
R | Restore the default splitter dimensions for all three panels |
The Zoom and Pan tools are mutually exclusive. Pressing
Z while Pan is active first deactivates Pan, and vice versa. Both tools are also guarded against accidental activation during a left-button mouse press (click_pressed flag).Resizable Splitter Panels
All three panels are separated by draggableQSplitter dividers:
- Horizontal splitter — drag the dividers between left / center / right panels to redistribute width.
- Vertical splitter (right panel) — drag the divider between the intensity graph and the clicks record log to give more space to either component.
R) allocate approximately 20 % of the window to the left panel, 40 % to the center canvas, and 40 % to the right graph panel.