StitchingWobbly#
Wobbly stitching module handles the alginment of large volumetric data sets.
The module alings stacks allowing them to wobble around a wobble axis, i.e. due to oscillatory movements during image aquisition.
- class Verbose(verbose=True, save=None, directory=None)[source]#
Bases:
object
- flags = {'figure': 4, 'save': 2}#
- class WobblyAlignment(pre=None, post=None, shifts=None, displacements=None, qualities=None, status=None, axis=2, shift=None, displacement=None, quality=None)[source]#
Bases:
Alignment
- ALIGNED = 2#
- FIXED = 3#
- INVALID = -1#
- MEASURED = 1#
- NOMINIMA = -4#
- NOSIGNAL = -5#
- UNALIGNED = -3#
- UNTRACED = -2#
- VALID = 0#
- property displacements#
- property lower_coordinate#
- property shifts#
- status_to_description = {-5: 'no signal', -4: 'no minima', -3: 'unaligned', -2: 'untraced', -1: 'invalid', 0: 'valid', 1: 'measured', 2: 'aligned', 3: 'fixed'}#
- property upper_coordinate#
- class WobblyLayout(sources=None, expression=None, tile_axes=None, tile_shape=None, tile_positions=None, positions=None, overlaps=None, alignments=None, axis=2, position=None, shape=None, dtype=None, order=None)[source]#
Bases:
TiledLayout
Layout to handle stitching of wobbly sources.
- alignment_info(tile_position, coordinate, plot=True, use_displacements=True, **kwargs)[source]#
Gathers all alignment info for a slice of a certain tile.
- layouts_along_axis_wobbly(coordinates=None)[source]#
Returns a list of Layouts representing the placed wobbly sources in each wobbly-axis slice of this layout.
Arguments
- coordinateslist of ints, all, or None
The positions of the slices along the wobble axis. If all or None take all possible slices.
Returns
- sliceslist of SlicedLayout classes
The layouts in each wobble-axis-plane.
Note
The slices layouts can be used for stitching of the wobbly stacks.
- slice_along_axis_wobbly(coordinate)[source]#
Returns a layout corresponding to a slice along the wobble axis in this layout.
Arguments
- coordinateint
The coordinate at which to take the slice.
- axisint
The axis to take the slice in.
Returns
- layoutLayout class
The sliced layout.
Note
The underlying sources are converted to virtual for parallel stitching.
- property lower_wobbly#
Calculates the lower position of the entire layout.
Returns
- lowertuple of ints
The lower position of the full layout.
- property origin_wobbly#
- property shape_wobbly#
- property upper_wobbly#
Calculates the upper position of the entire layout.
Returns
- uppertuple of ints
The upper position of the full layout.
- class WobblySource(source, wobble=None, status=None, axis=2, position=None, tile_position=None)[source]#
Bases:
Source
Class to handle source data and positions of wobbly stacks.
- array_wobbly()[source]#
Returns the array in the wobbly form with zeros at empty positions.
Returns
- arrayarray
The data of the array.
- coordinate_from_local(local_coordinate)[source]#
Converts a local wobble axis coordiante to the non-local coordinate.
Arguments
- local_coordinateint
The local coordiante within the source.
Returns
- coordianteint
The non-local coordiante.
- coordinate_to_local(coordinate)[source]#
Converts a wobble axis coordinate to the a local coordinate wrt to the sources origin.
Arguments
- coordinateint
The non-local coordinate.
Returns
- loacl_coordinateint
The local coordinate within this source.
- position_at_coordinate(coordinate)[source]#
Returns the wobbly position of the source at the specified coordinate along the wobble axis.
Arguments
- coordinateint
The coordinate along the wobble axis.
Returns
- positiontuple of int.
The non-local position of the specified coordinate slice.
- wobble_at_coordinate(coordinate)[source]#
Returns the wobbly position of the source at the specified coordinate along the wobble axis.
Arguments
- coordinateint
The coordinate along the wobble axis.
Returns
- positiontuple of int.
The non-local position of the specified coordinate slice.
- FIXED = 2#
- INVALID = -1#
- ISOLATED = -2#
- VALID = 0#
- property axis#
The axis along which the source is assumed to be wobbly.
Returns
- axisint
The wobble axes.
- property coordinate#
- property height#
- property lower_wobbly#
The lower corner of the wobbly source.
Returns
- lowertuple of int
The coordinates of the lower corner of the source.
- property name#
The name of this source.
Returns
- namestr
Name of this source.
- property positions#
The positions of the lower corners of all slices along the wobble axis.
Returns
- positionsarray
The coordinates of the lower corner of the slices along the wobble axis.
- property status#
The status of each slice of this source.
Returns
- statusarray of ints
The status for each position along the wobble axes.
- status_to_description = {-2: 'isolated', -1: 'invalid', 0: 'valid', 2: 'fixed'}#
- property upper_wobbly#
The upper corner of the source.
Returns
- uppertuple of int
The coordinates of the upper corner of the source.
- property valids#
- property wdim#
- property wobble#
The wobblyness of this source.
Returns
- wobblearray of ints
The deviations from the source position along the wobble axes.
- align_layout(layout, axis_range=None, max_shifts=10, axis_mip=None, stack_validation_params=None, validate=None, prepare='normalization', slice_validation_params=None, validate_slice=None, prepare_slice=None, find_shifts='minimization', verbose=False, processes=None, workspace=None)[source]#
- align_wobbly_axis(source1, source2, axis=2, axis_range=None, max_shifts=10, axis_mip=None, stack_validation_params=None, prepare='normalization', slice_validation_params=None, prepare_slice=None, find_shifts='minimization', with_errors=False, with_overlaps=False, verbose=True)[source]#
Create shifts along the wobble axis, estimate smooth shifts and mark invalid slices, accounts for jumps in minima using multiple minima.
- fix_unaligned(displacements, status, qualities)[source]#
Linearly interpolate between unaligned coordinates
- inspect_align_layout(alignment, verbose)[source]#
Parse the infomration saved during a align_layout.
Returns
- errorsarray
The error landscape for each slice.
- minimaarray
Coordinates of the detected minima
- trajectorieslist
List of coordinates of the detected trajectories.
- trajectories_optimallist
List of the optimal trajectories.
- place_layout(layout, min_quality=None, method='optimization', smooth=None, smooth_optimized=None, fix_isolated=True, lower_to_origin=True, processes=None, verbose=False, workspace=None)[source]#
Place a layout with the WobblyAlignments.
- shifts_from_tracing(errors, status, cutoff=None, new_trajectory_cost=None, minima='local_minima', verbose=False, **kwargs)[source]#
- smooth_displacements(displacements, valids, method='window', **kwargs)[source]#
Smooth displacements in valid regions.
- smooth_positions(positions, valids, method='window', **kwargs)[source]#
Smooth positions in valid regions.
- smooth_window(x, window_length=10, window='bartlett', binary=None)[source]#
Convolutional smoothing filter
- stitch_layout(layout, sink, method='interpolation', processes=None, verbose=True, workspace=None)[source]#
Stitches the wobbly sources in a wobbly layout.
Arguments
- layout: WobblyLayout class
The layout of the stacks to stitch.
- method‘interpolation’, ‘max’, ‘min’, ‘mean’
The method to use to stitch the sources.
- processesint or ‘serial’
Number of processor to use for parallel processing, if ‘serial’ process in serial.
- verbosebool
If True, print progress information.
Returns
- layoutLayout
The layout with updated z-alignments.