Data sources

Neuroglancer does not depend on any specific server backend for data access. Instead, the Neuroglancer client application can access a large number of different data formats and data API services directly from the browser.

All data sources are specified using a URL syntax.

Data formats

Neuroglancer supports the following file- and directory-based data formats accessible from any of the supported key-value stores.

Key-value stores

Neuroglancer accesses all file-based data formats through key-value store drivers, which provide a filesystem-like abstraction for reading files and directories.

URL syntax

Key-value stores are specified using a URL pipeline syntax consisting of |-delimited sequence of a root key-value store URL followed by zero or more adapter URLs.

Examples:

  • https://host/path (HTTP kvstore, for accessing a file served by an HTTP server)

  • s3://bucket/path (S3 kvstore, for accessing a file on S3)

  • s3://bucket/path.zip|zip:path/within/zipfile.nii ( S3 kvstore with zip kvstore adapter, for accessing a file within a zipfile on S3)

  • s3://bucket/path.zip|zip:inner/zipfile.zip|zip:path/in/nested/inner/zipfile.nii (S3 kvstore with zip kvstore adapter applied twice, for accessing a file within a zipfile within a zipfile on S3)

Root stores

Root key-value stores directly access a storage mechanism.

Adapters

Adapters transform some base key-value store to present a new key-value store view, where the base key-value store is defined by a root kvstore with zero or more other adapters applied to it.

Capabilities

Neuroglancer relies on a number of different capabilities provided by key-value stores. The documentation for each key-value store details the specific conditions under which each of these capabilities is supported.

Byte range reads

Reading just a specific range of bytes, indicated by an offset and a length, rather than an entire file. In some cases, only prefix reads, where the byte offset is 0, are supported.

This is required to access various data formats, and for file-format auto-detection.

Key listing

Listing of keys under a given prefix.

This is required for interactive completion of URLs, and for accessing certain data formats.

Data services