Skip to content

statebuilder.helpers

Functions:

  • add_segment_properties_source –

    Upload an already-built segment property and add it as a source on a segmentation layer.

  • make_connectivity_state_map –

    Create a Neuroglancer state with input and output synapses.

  • make_line_state –

    Generate a state builder that puts line segments from two columns with a linked segmentaton id

  • make_neuron_neuroglancer_link –

    Create a Neuroglancer state with a neuron and optionally its inputs and outputs.

  • make_point_state –

    Generate a state builder that puts points on a single column with a linked segmentaton id

  • make_segment_link –

    Make a Neuroglancer link showing one or more segments from a datastack.

  • make_segment_state –

    Build a viewer state showing one or more segments from a datastack.

  • sort_dataframe_by_root_id –

    Sort a dataframe so that rows belonging to the same root id are together, ordered by how many times the root id appears.

add_segment_properties_source(viewer, segment_properties, client, name=DEFAULT_SEGMENTATION_LAYER)

Upload an already-built segment property and add it as a source on a segmentation layer.

Use this when you already have a SegmentProperties object (or the property JSON it produces). To build segment properties from a dataframe as part of a viewer pipeline, use [ViewerState.add_segment_properties][nglui.statebuilder.ViewerState.add_segment_properties] instead.

Parameters:

  • viewer (ViewerState) –

    The viewer state holding the segmentation layer to add the property source to.

  • segment_properties (Union[SegmentProperties, dict]) –

    Either an nglui SegmentProperties object or the property JSON dictionary it serializes to.

  • client (CAVEclient) –

    CAVEclient used to upload the property JSON to the state service.

  • name (str, default: DEFAULT_SEGMENTATION_LAYER ) –

    Name of the segmentation layer to add the source to, by default "segmentation".

Returns:

  • ViewerState –

    The viewer state, with the segment property source added.

make_connectivity_state_map(client, show_inputs=True, show_outputs=True, point_column='ctr_pt_position', input_root_id_col='pre_pt_root_id', output_root_id_col='post_pt_root_id', data_resolution_input=None, data_resolution_output=None, input_layer_name='syns_in', output_layer_name='syns_out', input_layer_color=DEFAULT_POSTSYN_COLOR, output_layer_color=DEFAULT_PRESYN_COLOR, input_shader=True, output_shader=True, selected_alpha=None, alpha_3d=None, mesh_silhouette=None, **kwargs)

Create a Neuroglancer state with input and output synapses.

Parameters:

  • client (CAVEclient) –

    CAVEclient configured for the datastack desired

  • show_inputs (bool, default: True ) –

    Whether to show input synapses, by default True

  • show_outputs (bool, default: True ) –

    Whether to show output synapses, by default True

  • point_column (str, default: 'ctr_pt_position' ) –

    Column in the dataframe to use for point positions, by default "ctr_pt_position"

  • input_root_id_col (str, default: 'pre_pt_root_id' ) –

    Column in the dataframe to use for input synapse root ids, by default "pre_pt_root_id"

  • output_root_id_col (str, default: 'post_pt_root_id' ) –

    Column in the dataframe to use for output synapse root ids, by default "post_pt_root_id"

  • dataframe_resolution_input (Optional[list]) –

    Resolution of the input dataframe, by default None

  • dataframe_resolution_output (Optional[list]) –

    Resolution of the output dataframe, by default None

  • input_layer_name (str, default: 'syns_in' ) –

    Name of the input layer, by default "syns_in"

  • output_layer_name (str, default: 'syns_out' ) –

    Name of the output layer, by default "syns_out"

  • input_layer_color (Union[tuple, str], default: DEFAULT_POSTSYN_COLOR ) –

    Color of the input layer, by default "turquoise"

  • output_layer_color (Union[tuple, str], default: DEFAULT_PRESYN_COLOR ) –

    Color of the output layer, by default "tomato"

  • input_shader (Optional[Union[bool, str]], default: True ) –

    Shader to use for input synapses, by default None.

  • output_shader (Optional[Union[bool, str]], default: True ) –

    Shader to use for output synapses, by default None (uses default shader)

  • selected_alpha (Optional[float], default: None ) –

    Alpha value for selected segments in the 2d view, by default None (uses default value)

  • alpha_3d (Optional[float], default: None ) –

    Alpha value for meshes, by default None (uses default value)

  • mesh_silhouette (Optional[float], default: None ) –

    Mesh silhouette value, by default None (uses default value)

Returns:

  • ViewerState –

    A Neuroglancer ViewerState with input and output synapses configured.

make_line_state(client, data=None, point_a_column='pre_pt_position', point_b_column='post_pt_position', segment_column='pt_root_id', description_column=None, tag_column=None, data_resolution=None, tags=None, layer_name='lines', shader=True, selected_alpha=None, alpha_3d=None, mesh_silhouette=None)

Generate a state builder that puts line segments from two columns with a linked segmentaton id

Parameters:

  • client (CAVEclient) –

    CAVEclient configured for the datastack desired

  • data (Optional[DataFrame], default: None ) –

    Dataframe to use for points, by default None. If None, a simple DataMap will be used with no key. Fill in the resulting state with viewer.map(df).

  • point_a_column (str, default: 'pre_pt_position' ) –

    Column in the dataframe to use for line start positions, by default "pre_pt_position"

  • point_b_column (str, default: 'post_pt_position' ) –

    Column in the dataframe to use for line end, by default "post_pt_position"

  • segment_column (str, default: 'pt_root_id' ) –

    Column in the dataframe to use for segment ids, by default "pt_root_id"

  • description_column (Optional[str], default: None ) –

    Column in the dataframe to use for point descriptions, by default None

  • tag_column (Optional[str], default: None ) –

    Column in the dataframe to use for tags, by default None

  • data_resolution (Optional[list], default: None ) –

    Resolution of the data, by default None

  • tags (Optional[list], default: None ) –

    List of tags to apply to the points, by default None

  • layer_name (str, default: 'lines' ) –

    Name of the layer to create, by default "Points"

  • shader (Optional[Union[bool, str]], default: True ) –

    Shader to use for the points, by default True (uses default shader)

  • selected_alpha (Optional[float], default: None ) –

    Alpha value for selected segments in the 2D view, by default None (uses default value)

  • alpha_3d (Optional[float], default: None ) –

    Alpha value for meshes, by default None (uses default value)

  • mesh_silhouette (Optional[float], default: None ) –

    Mesh silhouette value, by default None (uses default value)

Returns:

  • ViewerState ( ViewerState ) –

    A viewerstate to make points with linked segmentations

Create a Neuroglancer state with a neuron and optionally its inputs and outputs.

Parameters:

  • client (CAVEclient) –

    CAVEclient configured for the datastack desired

  • root_ids (Union[int, list[int]]) –

    Root IDs of the neuron to visualize. Can be a single ID or a list of IDs.

  • return_as (ReturnAs, default: 'link' ) –

    Format to return the Neuroglancer state, by default "link". Options are "link", "url", "clipboard", "browser", "dict", "json", or "viewer".

  • shorten (Shorten, default: 'if_long' ) –

    Whether to shorten the URL if it is long, by default "if_long". Options are "never" (or False), "always" (or True), or "if_long".

  • show_inputs (bool, default: True ) –

    Whether to show input synapses, by default True

  • show_outputs (bool, default: True ) –

    Whether to show output synapses, by default True

  • point_column (str, default: 'ctr_pt_position' ) –

    Column in the dataframe to use for point positions, by default "ctr_pt_position"

  • target_url (Optional[str], default: None ) –

    Target URL to use for the Neuroglancer link, by default None. If None, the default CAVEclient URL will be used.

  • target_site (Optional[str], default: None ) –

    Target site to use for the Neuroglancer link, by default None. If None, the default CAVEclient site will be used.

  • timestamp (Optional[datetime], default: None ) –

    Timestamp to use for the query, by default None. If None, the current time will be used.

  • infer_coordinates (bool, default: True ) –

    Whether to infer coordinates from the data, by default True.

  • segment_properties (Optional[Union[SegmentProperties, dict]], default: None ) –

    Segment properties to attach to the segmentation layer, by default None. Either a SegmentProperties object or the property JSON dictionary it serializes to.

  • segmentation_layer_name (str, default: DEFAULT_SEGMENTATION_LAYER ) –

    Name of the segmentation layer, by default "segmentation".

  • link_text (str, default: 'Neuroglancer Link' ) –

    Text to display for the HTML link when return_as is "link", by default "Neuroglancer Link".

Returns:

  • Neuroglancer state in the specified format. –

make_point_state(client, data=None, point_column='pt_position', segment_column='pt_root_id', description_column=None, tag_column=None, data_resolution=None, tags=None, layer_name='Points', shader=True, selected_alpha=None, alpha_3d=None, mesh_silhouette=None)

Generate a state builder that puts points on a single column with a linked segmentaton id

Parameters:

  • client (CAVEclient) –

    CAVEclient configured for the datastack desired

  • data (Optional[DataFrame], default: None ) –

    Dataframe to use for points, by default None. If None, a simple DataMap will be used with no key. Fill in the resulting state with viewer.map(df).

  • point_column (str, default: 'pt_position' ) –

    Column in the dataframe to use for point positions, by default "pt_position"

  • segment_column (str, default: 'pt_root_id' ) –

    Column in the dataframe to use for segment ids, by default "pt_root_id"

  • description_column (Optional[str], default: None ) –

    Column in the dataframe to use for point descriptions, by default None

  • tag_column (Optional[str], default: None ) –

    Column in the dataframe to use for tags, by default None

  • data_resolution (Optional[list], default: None ) –

    Resolution of the data, by default None

  • tags (Optional[list], default: None ) –

    List of tags to apply to the points, by default None

  • layer_name (str, default: 'Points' ) –

    Name of the layer to create, by default "Points"

  • shader (Optional[Union[bool, str]], default: True ) –

    Shader to use for the points, by default True (uses default shader)

  • selected_alpha (Optional[float], default: None ) –

    Alpha value for selected segments in the 2D view, by default None (uses default value)

  • alpha_3d (Optional[float], default: None ) –

    Alpha value for meshes, by default None (uses default value)

  • mesh_silhouette (Optional[float], default: None ) –

    Mesh silhouette value, by default None (uses default value)

Returns:

  • ViewerState ( ViewerState ) –

    A viewerstate to make points with linked segmentations

Make a Neuroglancer link showing one or more segments from a datastack.

A one-line convenience wrapping make_segment_state that renders the resulting state as a link, URL, or other representation.

Parameters:

  • client (CAVEclient) –

    CAVEclient configured for the datastack desired.

  • root_ids (Optional[Union[int, Iterable[int], dict]], default: None ) –

    Root id or root ids to select in the segmentation layer, by default None. If None, no segments are selected. A dict of {root_id: visible} can be used to control per-segment visibility.

  • segment_properties (Optional[Union[SegmentProperties, dict]], default: None ) –

    Segment properties to attach to the segmentation layer, by default None. Either a SegmentProperties object or the property JSON dictionary it serializes to.

  • return_as (ReturnAs, default: 'link' ) –

    How to return the state, by default "link". Options are "link" (an HTML link for notebooks), "url" (a URL string), "clipboard" (copies the URL to the system clipboard and returns it), "browser" (opens the URL in a web browser), "dict", "json", or "viewer" (the ViewerState itself).

  • shorten (Shorten, default: 'if_long' ) –

    Whether to shorten the URL with the CAVE state service, by default "if_long", which only shortens URLs past a length threshold. Also accepts True/"always" and False/"never".

  • target_url (Optional[str], default: None ) –

    Base Neuroglancer URL to use, by default None (uses the configured default).

  • target_site (Optional[str], default: None ) –

    Target site to use, based on the keys in site_utils.NEUROGLANCER_SITES, by default None (uses the configured default).

  • segmentation_layer_name (str, default: DEFAULT_SEGMENTATION_LAYER ) –

    Name of the segmentation layer, by default "segmentation".

  • imagery (Union[bool, str], default: True ) –

    Whether to add an imagery layer, by default True. If a string is provided, it is used as the name of the imagery layer.

  • selected_alpha (Optional[float], default: None ) –

    Alpha value for selected segments in the 2D view, by default None (uses default value).

  • alpha_3d (Optional[float], default: None ) –

    Alpha value for meshes, by default None (uses default value).

  • mesh_silhouette (Optional[float], default: None ) –

    Mesh silhouette value, by default None (uses default value).

  • infer_coordinates (bool, default: True ) –

    Whether to infer the viewer position from the layer sources, by default True.

  • link_text (str, default: 'Neuroglancer Link' ) –

    Text to display for the HTML link when return_as is "link", by default "Neuroglancer Link".

Returns:

  • The Neuroglancer state in the format specified by `return_as`. –

Examples:

>>> from nglui import statebuilder
>>> statebuilder.helpers.make_segment_link(client, root_ids=[864691135474648896])

make_segment_state(client, root_ids=None, segment_properties=None, segmentation_layer_name=DEFAULT_SEGMENTATION_LAYER, imagery=True, selected_alpha=None, alpha_3d=None, mesh_silhouette=None, infer_coordinates=True)

Build a viewer state showing one or more segments from a datastack.

This is the quickest way to go from a CAVEclient and a set of root ids to a Neuroglancer state: imagery and segmentation layers come from the client, the root ids are selected in the segmentation layer, and segment properties (if given) are uploaded and attached as a source on that same layer.

Parameters:

  • client (CAVEclient) –

    CAVEclient configured for the datastack desired.

  • root_ids (Optional[Union[int, Iterable[int], dict]], default: None ) –

    Root id or root ids to select in the segmentation layer, by default None. If None, no segments are selected. A dict of {root_id: visible} can be used to control per-segment visibility.

  • segment_properties (Optional[Union[SegmentProperties, dict]], default: None ) –

    Segment properties to attach to the segmentation layer, by default None. Either a SegmentProperties object or the property JSON dictionary it serializes to. The property is uploaded to the state service via the client and added as a source on the segmentation layer.

  • segmentation_layer_name (str, default: DEFAULT_SEGMENTATION_LAYER ) –

    Name of the segmentation layer, by default "segmentation".

  • imagery (Union[bool, str], default: True ) –

    Whether to add an imagery layer, by default True. If a string is provided, it is used as the name of the imagery layer.

  • selected_alpha (Optional[float], default: None ) –

    Alpha value for selected segments in the 2D view, by default None (uses default value).

  • alpha_3d (Optional[float], default: None ) –

    Alpha value for meshes, by default None (uses default value).

  • mesh_silhouette (Optional[float], default: None ) –

    Mesh silhouette value, by default None (uses default value).

  • infer_coordinates (bool, default: True ) –

    Whether to infer the viewer position from the layer sources, by default True.

Returns:

  • ViewerState –

    A viewer state with the requested segments selected.

Examples:

>>> from nglui import statebuilder
>>> vs = statebuilder.helpers.make_segment_state(client, root_ids=[864691135474648896])
>>> vs.to_url()

sort_dataframe_by_root_id(df, root_id_column, ascending=False, num_column='n_times', drop=False)

Sort a dataframe so that rows belonging to the same root id are together, ordered by how many times the root id appears.

Parameters:

  • df (DataFrame) –

    dataframe to sort

  • root_id_column (str) –

    Column name to use for sorting root ids

  • ascending (bool, default: False ) –

    Whether to sort ascending (lowest count to highest) or not, by default False

  • num_column (str, default: 'n_times' ) –

    Temporary column name to use for count information, by default 'n_times'

  • drop (bool, default: False ) –

    If True, drop the additional column when returning.

Returns: