Skip to content
On this page

Getting Started with WebNWB

The NWB:N format is a powerful standard for storing and sharing neurophysiology data. Both users and developers typically interact with the NWB:N format through Python or MATLAB APIs, However, these can be difficult to use for non-programmers and are not well-suited for simple web applications—requiring complicated distribution environments (e.g. NWB Explorer, NWB GUIDE) for simple interactions. This limits the accessibility of NWB:N data and derivative tools.

webnwb is a JavaScript library designed to provide the optimal experience for programmatically exploring and editing NWB file metadata on the web.

  • 🔬 Read data from NWB files based on the included specification.
  • ⚡ Lazy-load large files (e.g. from the NIH Brain Initiative’s Distributed Archives for Neurophysiology Data Integration (DANDI)).
  • 📦 Create NWB files from scratch.
  • ⚒️ Use helper functions like addAcquisition, getAcquisition, and createAcquisition to quickly write data to new and existing NWB files.

A Brief History of WebNWB

The first version of WebNWB was prototyped during NWB workshops and hackathons in 2022 by Garrett Flynn from Brains@Play.

For most of 2023, WebNWB was generously supported by the Kavli Foundation to bring it from a proof-of-concept to a promising part of the NWB ecosystem.

Ongoing development of WebNWB is occurring on an as-needed basis by Garrett Flynn adjacent to his work as a Neurodata Programmer at Catalyst Neuro. :::

Several tools can be used with webnwb to provide a cohesive experience for web developers and users alike:

  • nwbwidgets (Python) provides a comprehensive GUI for visualizing the data in NWB files.
  • neurosift is an advanced browser-based visualizer for NWB files, integrated into the DANDI Archive.
  • easynwb provides an intuitive interface for creating and editing NWB files.
  • dandi provides an API for sharing NWB files.
  • nwb-inspector provides a way to check the compliance of NWB Files with best practices, identical to the Python version.

Does WebNWB Have An API Reference?

As much as possible, webnwb mirrors the PyNWB API.

However, there are a few exceptions to note:

  • Methods are implemented in camel case (e.g. nwbfile.add_acquisition becomes nwbfile.addAcquisition)

The Road Ahead

The following sections provide a brief overview of the webnwb API in practice.

If you would like to gain a comprehensive understanding of the capabilities of NWB tools, we recommend referring to the PyNWB documentation.

Released under the GNU Affero General Public License.