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.5 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:

python setup.py install

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

python setup.py bundle_client

or

npm run build-python

Note: Installing from a local checkout using pip install . also works, but it may be slower because it makes a full copy of the local directory (https://github.com/pypa/pip/pull/7882), including the possibly-large .git and node_modules directories.

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 dev-server-python.

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 instrall xvfb # On Debian-based systems
tox -e firefox-xvfb  # Run tests using non-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.39.1.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

neuroglancer-2.39.1-cp39-abi3-win_amd64.whl (167.7 kB view details)

Uploaded CPython 3.9+ Windows x86-64

neuroglancer-2.39.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

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

neuroglancer-2.39.1-cp39-abi3-macosx_11_0_arm64.whl (189.7 kB view details)

Uploaded CPython 3.9+ macOS 11.0+ ARM64

neuroglancer-2.39.1-cp39-abi3-macosx_10_9_x86_64.whl (194.5 kB view details)

Uploaded CPython 3.9+ macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: neuroglancer-2.39.1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.18

File hashes

Hashes for neuroglancer-2.39.1.tar.gz
Algorithm Hash digest
SHA256 00073b5e1350fc5c9f400d0c896f3a693ee2798e45f9fc33e48afba608759775
MD5 66bd4a6a0ecf9e8bda263b56c7ee86cb
BLAKE2b-256 dff855ab8452e8c8314825816c34ae30956591ffd29175a42b2d0dfadfc84082

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for neuroglancer-2.39.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c0a38d21d8a67dee22f74c529707729bb183e27137203f0b5b00ceeb8a58ff31
MD5 d7d5fe51c0bce54f7e11bea35aabb5de
BLAKE2b-256 f328a72433fa3439e0f15054e1b3dd328d97bfb1511a89eed6f04a261bea63fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for neuroglancer-2.39.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 805eab1661abf456e67d81d389e2fa1d27309252d6c4a90b94b7cb3074076952
MD5 2ecb9407d16efe7d9f74e32cc5e7b76c
BLAKE2b-256 192d8d16d36a7380086a69b6c0d425ea3330a8af2ea53e181d1116f65e260993

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for neuroglancer-2.39.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cee3128870df42d15d6985012e7c8aa847b7a031cfaa5f197464e20e212ea2fd
MD5 22f22b7905ff94d3ef55fc86a31ccddb
BLAKE2b-256 91486859d8ee372aa49da51a6c37404981929d6e0027a9721f536afe09b114b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for neuroglancer-2.39.1-cp39-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4918aab2ed7cc33328c801af9f154c3c682479e3dff1d3f7eabf1185403261c0
MD5 e232eae402de19def46d3075671cd5ca
BLAKE2b-256 d551ebdcb2cab327ff3f8bb1563462d81da535be05c548c6b4694333bbca6f98

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