Skip to main content

Framework for data-driven generation of neuroglancer states.

Project description

NGLui

Documentation

Please find documentation here.

Installation

To get the most out of NGLui (interacting with source info, uploading skeletons, and more), we suggest installing the full version of NGLui, which includes the cloud-volume dependency:

pip install nglui[full]

You can also install a more minimal version of NGLui without the cloud-volume dependency:

pip install nglui

However, note that cloud-volume is required for some features such as uploading skeletons and getting information about sources during state generation.

Quick Usage

Building a Neuroglancer state directly

Here, let's use the Hemibrain dataset information to build a Neuroglancer state.

from nglui import statebuilder

viewer_state = (
    statebuilder.ViewerState(dimensions=[8,8,8])
    .add_image_layer(
        source='precomputed://gs://neuroglancer-janelia-flyem-hemibrain/emdata/clahe_yz/jpeg',
        name='emdata'
    )
    .add_segmentation_layer(
        source='precomputed://gs://neuroglancer-janelia-flyem-hemibrain/v1.2/segmentation',
        name='seg',
        segments=[5813034571],
    )
    .add_annotation_layer(
        source='precomputed://gs://neuroglancer-janelia-flyem-hemibrain/v1.2/synapses',
        linked_segmentation={'pre_synaptic_cell': 'seg'},
        filter_by_segmentation=True,
        color='tomato',
    )
)
viewer_state.to_link(target_url='https://hemibrain-dot-neuroglancer-demo.appspot.com')

This will return the link: Neuroglancer link.

Additional features

NGLui also has additional features such as:

  • CAVE: Broad integrations with existing CAVE tooling.
  • Parser: Parse neuroglancer states to extract information about layers and annotations.
  • SegmentProperties: Easily build segment property lists from data to make segmentation views more discoverable.
  • SkeletonManager: Upload skeletons to cloud buckets and push quickly into neuroglancer (requires cloud-volume, see Installation).
  • Shaders: Support for better default shaders for neuroglancer layers.

Development

If you want to clone the repository and develop on NGLui, note that it uses uv for development and packaging, material for mkdocs for documentation, and pre-commit with ruff for code quality checks. Poe-the-poet is used to simplify repetitive tasks, and you can run poe help to see the available tasks.

Migration from older versions

If you are migrating from nglui v3.x to v4.0.0+, you will need to dramatically update your code.

First and foremost, nglui now only works with contemporary versions of neuroglancer, not the older Seung-lab version. If you still need to support the older deployment, do not upgrade.

Please read the new usage documentation! The main change is that it is now recommended to create states directly where possible, and there are now many more convenience functions. Instead of making a bunch of layer configs, now you make a ViewerState object and directly add layers and their information with functions like add_image_layer, add_segmentation_layer, and add_annotation_layer. Instead of always mapping annotation rules and data separately, you can now directly add annotation data through functions like add_points and then export with functions like to_url. You can still use the old pattern of rendering a state and mapping data with DataMap objects. A new "pipeline" pattern makes it more efficient to build complex states in a smaller number of lines of code.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nglui-4.7.1.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nglui-4.7.1-py3-none-any.whl (58.4 kB view details)

Uploaded Python 3

File details

Details for the file nglui-4.7.1.tar.gz.

File metadata

  • Download URL: nglui-4.7.1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.20 {"installer":{"name":"uv","version":"0.9.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nglui-4.7.1.tar.gz
Algorithm Hash digest
SHA256 8b4e7a8f7e2577ff0e0c22244dc399a8f8adf6586ad931a6f2ca3b4f2b2db7a8
MD5 be4e0338fd67eea4025f646d6cd64310
BLAKE2b-256 9a4e0ed3b1455b6edc0b1c0d7a1456642cbed875b83a4fc01baf9a2af116f3b1

See more details on using hashes here.

File details

Details for the file nglui-4.7.1-py3-none-any.whl.

File metadata

  • Download URL: nglui-4.7.1-py3-none-any.whl
  • Upload date:
  • Size: 58.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.20 {"installer":{"name":"uv","version":"0.9.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nglui-4.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 daac8aa1ccc94af8781a842b345551913c7bf0df55b69dc43f3f52e9d86ae3c8
MD5 e2973288ad57183f536458adf5097828
BLAKE2b-256 f6cb790aa654a87127f3f4660fba3aff7ef71032aca432dcc45347e1fcb1d3bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page