Skip to main content

Python data backend for neuroglancer, a WebGL-based viewer for volumetric data

Project description

Neuroglancer Python Integration

This package provides a Python interface for controlling Neuroglancer, a web-based 3-d volumetric data viewer.

The following features are supported:

  • Viewing in-memory NumPy arrays (or any other array type with a similar interface, including HDF5 arrays loaded through h5py)
  • Reading and writing the Neuroglancer viewer state from Python
  • Changing Neuroglancer key and mouse bindings
  • Defining actions (to be triggered by key or mouse bindings) that cause a Python callback to be invoked.

It starts a local web server for communicating state changes using sockjs, serving a copy of the Neuroglancer client code, and for serving data to the Neuroglancer client if Python data sources are used.

Installation

It is recommended that you activate a suitable Python virtual environment before installing.

Python 3.9 or later is required.

You can install the latest published package from PyPI with:

pip install neuroglancer

In most cases, this will use a prebuilt binary wheel, which requires neither node.js (to build the Neuroglancer client) nor a C++ compiler. If no binary wheel is available for your platform, a source distribution (sdist) will be used instead, which requires a C++ compiler to build but does not require node.js (the source distribution includes a prebuilt copy of the Neuroglancer client).

Direct installation from remote git repository

To install the latest version from the Neuroglancer git repository, you can use:

pip install git+https://github.com/google/neuroglancer

Note that installing from a git repository requires Node.js and a C++ compiler.

To install a specific commit XXXXXXXXX:

pip install git+https://github.com/google/neuroglancer@XXXXXXXXX

In another Python package, you can declare a dependency on a git version using the syntax:

setup(
    name='<package>',
    ...,
    install_requires=[
        ...,
        'neuroglancer @ git+https://github.com/google/neuroglancer@XXXXXXXXX',
    ],
)

Installation from local checkout of git repository

You can also install from a local checkout of the git repository. Two forms of installation are supported: normal installation, and an editable installation for development purposes.

As with installation from a remote git repository, installation from a local checkout requires Node.js to build the Neuroglancer client and a C++ compiler to build the C++ mesh generation extension module.

Normal installation

For normal installation, run the following from the root of the repository:

pip install .

That will automatically build the Neuroglancer client using Node.js if it has not already been built (i.e. if neuroglancer/static/client/index.html does not exist). To rebuild the Neuroglancer client explicitly, you can use:

python setup.py bundle_client

or

npm run build-python

Editable installation (for development purposes)

During development, an editable installation allows the package to be imported directly from the local checkout directory:

pip install -e .

Any changes you make to the .py source files take effect the next time the package is imported, without the need to reinstall. If you make changes to the Neuroglancer client, you still need to rebuild it with npm run build-python. You can also keep the Neuroglancer client continuously up-to-date by running npm run build-python:watch.

Examples

See the example programs in the examples/ directory. Run them using the Python interpreter in interactive mode, e.g.

python -i example.py

or using the IPython magic command

%run -i python.py

Do not run an example non-interactively as

python example.py

because then the server will exit immediately.

Mesh generation

For in-memory segmentation volumes, mesh representations of the surface of each object can be generated on-demand as they are requested by the client (e.g. due to the user selecting a segment)

Security

By default the server binds only to the 127.0.0.1 address, and for protection against cross-site scripting attacks only accepts requests that include a valid randomly-generated 160-bit secret key.

Test suite

The test suite can be run using the tox command. Some of the tests require a WebGL2-enabled web browser in order to test interaction with the Neuroglancer client. Both Chrome and Firefox are supported, but currently due to bugs in Swiftshader, Chrome Headless does not work. Firefox Headless also currently does not support WebGL at all. On Linux, you can successfully run the tests headlessly on Firefox using xvfb-run. On other platforms, tests can't be run headlessly.

# For headless using Firefox on xvfb (Linux only)
sudo apt-get install xvfb # On Debian-based systems
tox -e firefox-xvfb  # Run tests using headless Firefox

# For non-headless using Chrome
tox -e chrome

# For non-headless using Firefox
tox -e firefox

# To run only tests that do not require a browser
tox -e skip-browser-tests

Refer to tox.ini for details of the test procedure.

Project details


Download files

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

Source Distribution

neuroglancer-2.40.1.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

neuroglancer-2.40.1-cp39-abi3-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.9+ Windows x86-64

neuroglancer-2.40.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ x86-64

neuroglancer-2.40.1-cp39-abi3-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.9+ macOS 11.0+ ARM64

neuroglancer-2.40.1-cp39-abi3-macosx_10_9_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9+ macOS 10.9+ x86-64

File details

Details for the file neuroglancer-2.40.1.tar.gz.

File metadata

  • Download URL: neuroglancer-2.40.1.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.19

File hashes

Hashes for neuroglancer-2.40.1.tar.gz
Algorithm Hash digest
SHA256 ba21309827810d669a2f76e7b814a123aafeb61b7cb07b2de11a9663ad902fdc
MD5 048172a9606703922a6dd0769cf8c458
BLAKE2b-256 fe68600011755c7873d69431c2662bf631414e417d283b8cc7976dfa66178800

See more details on using hashes here.

File details

Details for the file neuroglancer-2.40.1-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for neuroglancer-2.40.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dc70a9dcd438c763515a2ca36135d10a49bd3261ac3fcf0b9183c03411554295
MD5 2472db812924e1994d7f38c55b22366d
BLAKE2b-256 23d929ae513f60f0d972789453f14b22753d9becc303f0ad7e797cf6b4878580

See more details on using hashes here.

File details

Details for the file neuroglancer-2.40.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for neuroglancer-2.40.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5cb9583b1668aad49c092bb047d6e74959bb3b5b343d5a624f084d82f3ede60
MD5 86cd5afbc0ccdeaa864243397c6a9b9d
BLAKE2b-256 2fa2e0e01c70d7a6804eb00faeb901af341ca5518b9d58c444c133d300c48b83

See more details on using hashes here.

File details

Details for the file neuroglancer-2.40.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neuroglancer-2.40.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7466279b2cad28465edc727b994949599d2f0ece9ca22cee05bfa30c1d63a1ac
MD5 5cc56be7f6a367b369532cb98e7ff846
BLAKE2b-256 a737214037aec09f43e1854173fc338eb5f20f2b2f6d57ccf9dfc9f4032b1567

See more details on using hashes here.

File details

Details for the file neuroglancer-2.40.1-cp39-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for neuroglancer-2.40.1-cp39-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73b214772263005e2531dab6051ed1f4d5cd4c4f1c6eb181b9baf704ecb6f3f3
MD5 ec3c7b92270d28a246ff06e38e431c7e
BLAKE2b-256 59523890bdc3345a1885a6eac6d4b982124d4820c11b706ce179b76c26b3eaea

See more details on using hashes here.

Supported by

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