VIPP 0.16.0a2¶
VIPP 0.16.0a2 adds whole-volume image registration, reusable transforms, label-preserving skeleton measurements and qualified CPU median acceleration. It also makes inspector scrolling safer and logarithmic plot labels clearer.
Use the canonical GitHub release for the exact wheel, source archive, Windows installer, separate Apple Silicon/Intel macOS packages and their checksums, or the exact PyPI version. Only install assets actually attached to that release and verify their hashes. Desktop installers are unsigned alpha builds; macOS packages are also unnotarized and CPU-only. Follow the installation instructions.
Align images and correct time-lapse drift¶
Estimate Registration finds translation, rigid or advanced affine motion for two images or a fixed-reference time series. Each XY image or XYZ volume moves as one unit. Choose one channel for estimation and reuse its transform across the channels at that time point. Time and channel axes are not treated as spatial dimensions.
- Review the Diagnostics table and compact transform summary together. The estimate is a motion recipe, not an aligned image.
- Choose Next step → Add Apply Transform to connect the same moving-image output and estimated transform in one undoable edit. This does not calculate the new node or replace existing branches. Show Apply Transform returns to a matching connected node when one already exists.
- Apply Transform resamples the original data onto the calibrated reference grid. Automatic interpolation uses linear interpolation for intensities and nearest neighbours for masks/labels. Inspect Valid coverage before measuring filled borders; nearest interpolation preserves label IDs, not necessarily object volume or topology.
- Export diagnostics, versioned transform JSON, or both. Keep transforms with the workflow and source data. This version has no GUI transform-import control.
Compare Images reports RMSE, correlation, SSIM and PSNR for already aligned images. It requires the same physical grid, takes an explicit intensity range for SSIM/PSNR and can restrict comparisons to valid coverage. It does not align or normalize inputs. Use the same valid region when comparing before and after.
Registration is CPU-only. Translation uses phase cross-correlation; rigid/affine fitting uses SimpleITK. There is no deformable or GPU registration, per-slice Z alignment, previous-frame chaining or template matching. Affine motion can change shape and size; use it only when justified. Better similarity does not establish biological correspondence. See the registration reference.
Join skeleton features to the original objects¶
Skeletonize Labels thins each original object separately and retains its label ID. Analyze Skeleton per Label reports one summary row per original object plus a separate component-detail table. Objects with no surviving skeleton remain explicit in the summary; isolates and disconnected pieces are not silently discarded.
Join the summary to morphology using label IDs and every relevant image, time, channel or slice identifier. The existing Skeletonize → Label Skeleton Components route is unchanged: its new IDs identify skeleton pieces, not the original objects. See Join skeleton and morphology per object.
Automatic table joins also include shared custom-axis index columns, so repeated label IDs at different image positions remain separate. Check join identity and calibration before interpreting combined measurements.
Faster CPU median filtering, unchanged result contract¶
Qualified Median Filter calls use SimpleITK 2.5.6 on CPU while retaining the same XY footprint, reflected borders and data type. Small or unqualified inputs keep the SciPy implementation. The filter does not start mixing channels, time points or Z planes, and the first accelerated call also loads the library.
This is not a general replacement of VIPP's filters: Gaussian, rolling-ball background subtraction and deconvolution retain their implementations. GPU kernels and their qualification boundaries are unchanged. See CPU median acceleration.
Easier inspection and four new examples¶
- Scrolling over a closed inspector drop-down scrolls the inspector without changing the selected value, including when that control has keyboard focus. Open lists and deliberate click/keyboard choices retain their normal behavior.
- Logarithmic plot tick labels render as powers of ten with superscripts in the inspector, plot window, Results Workspace and exported figures. Titles and category labels remain literal text.
- The catalogue contains 27 examples. Try Subpixel 2D Registration, Anisotropic 3D Rigid Registration, Whole-volume XYZ Drift Correction or Per-label Skeleton & Morphology from Open example….
The registration samples contain independently known synthetic motion and the skeleton example demonstrates consistent object selection. Synthetic success does not validate an acquired dataset or a biological assay.
Compatibility and evidence boundaries¶
Workflow, batch-config and manifest schemas remain 6. The five new nodes and transform output type require a compatible runtime despite unchanged schema numbers. Preserve original workflows, inputs, environments and decisive outputs; recalculate representative data and regenerate Python exports using the installed version. The earlier descriptive-statistics tools remain descriptive: this release adds no inferential tests or significance claims.
The qualification declaration separates new-domain checks from carried-forward evidence. Exact-candidate CI, native dependency loading and installer checks are distinct from prior branch tests or user acceptance. Consult the release's recorded evidence for the actual platforms and artifacts tested; neither older passes nor a successful synthetic example establish fresh-machine or biological validation.