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.