neuron_morphology.layered_point_depths.__main__
¶
Module Contents¶
Functions¶
translate_field (field: xr.DataArray, by_x: float, by_y: float, inplace: bool = False) |
Translate a spatial xarray dataset |
setup_interpolator (field: xr.DataArray, dim: Optional[str], **kwargs) → RegularGridInterpolator |
Build a regular grid interpolator from a dataarray |
containing_layer (pos: Tuple[float, float], layers: List[Dict]) → Optional[str] |
Find the layer in which a point is contained |
tuplize (arr: np.array) → Tuple |
Convert an array to a tuple |
step_from_node (pos: Tuple[float, float], depth_interp: RegularGridInterpolator, dx_interp: RegularGridInterpolator, dy_interp: RegularGridInterpolator, surface: LineString, step_size: float, max_iter: int, adaptive_scale: int = 32) → Optional[float] |
Walk through a gradient field, until a defined surface is passed. |
get_node_intersections (node: Dict, depth_interp: RegularGridInterpolator, dx_interp: RegularGridInterpolator, dy_interp: RegularGridInterpolator, layers: List[Dict], step_size: float, max_iter: int) → Dict |
Given a node, find its layer and intersection depths. Then return a row |
setup_layers (layers: List[Dict]) |
Convert layer bounds, pia, and white matter surfaces to shapely objects |
run_layered_point_depths (swc_path: str, depth: Dict, layers: List[Dict], step_size: float, max_iter: int, output_path: str) |
|
main () |
-
neuron_morphology.layered_point_depths.__main__.
translate_field
(field: xr.DataArray, by_x: float, by_y: float, inplace: bool = False)¶ Translate a spatial xarray dataset
Parameters: - field : to be translated
- by_x : =the translation along x
- by_y : the translation along y
- inplace : If True, modify this dataarray, otherwise modify a copy
Returns: - translated dataarray, potentiall the same as the input
-
neuron_morphology.layered_point_depths.__main__.
setup_interpolator
(field: xr.DataArray, dim: Optional[str], **kwargs) → RegularGridInterpolator¶ Build a regular grid interpolator from a dataarray
Parameters: - field : Must have dimensions “x” and “y”. May have dimension “dim”
- dim : base the interpolator on values from this dim slice. If None, ignore
dim
- **kwargs : passed to interpolator constructor
Returns: - a callable interpolator
-
neuron_morphology.layered_point_depths.__main__.
containing_layer
(pos: Tuple[float, float], layers: List[Dict]) → Optional[str]¶ Find the layer in which a point is contained
Parameters: - pos : the coordinate of the point
- layers : Each has “name” - a string and “bounds” - a Polygon
Returns: - The name of the containing layer or None if no containing layer was found
-
neuron_morphology.layered_point_depths.__main__.
tuplize
(arr: np.array) → Tuple¶ Convert an array to a tuple
-
neuron_morphology.layered_point_depths.__main__.
step_from_node
(pos: Tuple[float, float], depth_interp: RegularGridInterpolator, dx_interp: RegularGridInterpolator, dy_interp: RegularGridInterpolator, surface: LineString, step_size: float, max_iter: int, adaptive_scale: int = 32) → Optional[float]¶ Walk through a gradient field, until a defined surface is passed.
Parameters: - pos : the start position
- depth_interp : callable mapping positions to scalar depth values
- dx_interp : callable mapping positions to the x component of the gradient
- dy_interp : callable mapping positions to the y component of the gradient
- surface : Check for the intersection of the path with this surface
- step_size : Each step proceeds in the direction of the local gradient,
scaled to this step size
- max_iter : give up (return None) if the surface is not intersected in this
many steps
Returns: - The depth of the intersection between the path walked and the given surface
-
neuron_morphology.layered_point_depths.__main__.
get_node_intersections
(node: Dict, depth_interp: RegularGridInterpolator, dx_interp: RegularGridInterpolator, dy_interp: RegularGridInterpolator, layers: List[Dict], step_size: float, max_iter: int) → Dict¶ Given a node, find its layer and intersection depths. Then return a row of LayeredPointDepths for this node.
Parameters: - node : Of a Morphology. must have:
“id” - unique identifier “type” - which kind of node is this? “x”, “y” - positions in x and y of this node
- depth_interp : callable mapping positions to scalar depth values
- dx_interp : callable mapping positions to the x component of the gradient
- dy_interp : callable mapping positions to the y component of the gradient
- layers : Each has
“name” - an identifier “bounds” - a Polygon describing the entire boundary “pia_surface” - a LineString describing the piaward surface of this
layer
- “wm_surface” - a LineString describing the white matter-wise surface of
this layer
- step_size : Each step proceeds in the direction of the local gradient,
scaled to this step size
- max_iter : give up (return None) if the surface is not intersected in this
many steps
Returns: - A dictionary representing a single row of LayeredPointDepths. Has Keys:
“ids” - the identifier of this node “layer_name” - the layer containing this node “depth” - the depth of this node “local_layer_pia_side_depth” - the depth of the intersection between
this node’s steepest ascent path and the piaward surface of its containing layer
- “local_layer_wm_side_depth” - the depth of the intersection between
this node’s steepest ascent path and the white matterward surface of its containing layer
“point_type”: The type of this node
-
neuron_morphology.layered_point_depths.__main__.
setup_layers
(layers: List[Dict])¶ Convert layer bounds, pia, and white matter surfaces to shapely objects
Parameters: - layers : Mutated inplace. Has keys:
“bounds” - a Polygon describing the entire boundary “pia_surface” - a LineString describing the piaward surface of this
layer
- “wm_surface” - a LineString describing the white matter-wise surface of
this layer
-
neuron_morphology.layered_point_depths.__main__.
run_layered_point_depths
(swc_path: str, depth: Dict, layers: List[Dict], step_size: float, max_iter: int, output_path: str)¶
-
neuron_morphology.layered_point_depths.__main__.
main
()¶