Neurodata without Borders — directly on the browser.
webnwb
is a library for reading and writing Neurodata without Borders (NWB) files on the web.
addAcquisition
, getAcquisition
, and createAcquisition
to quickly write data to new and existing NWB files.Note: While tools like neurosift are extraordinarily useful for rapid visualization of NWB files, WebNWB is intended to provide a robust interface for modifying NWB files—a task that requires significantly more preprocessing to accomplish strictly in accordance with the NWB Schema. If you prefer I/O speed, you may wish to look at hdf5-io, h5wasm, or other minimal HDF5 readers.
Visit nwb.brainsatplay.com for documentation and examples.
The essential features of the WebNWB API are aggregated in the api.ts file, which configures hdf5-io to process the underlying HDF5 file in a way that conforms with the NWB Schema.
Anyone who would like to contribute to the acceptance of webnwb
as an official NWB API is welcome to message Garrett Flynn to coordinate work on the following areas (or anything else you think will be useful):
.specloc
is not rewritten as an object referencetimestamps
in a TimeSeries) because they are trying to convert to a BigInt by h5wasm
.hdf5-io
as excluded from the optimized dependencies:
// vite.config.js
export default defineConfig({
optimizeDeps: {
exclude: ['hdf5-io']
}
})
From January to August 2023, the development of WebNWB was generously supported by a contract from the Kavli Foundation. The basic API was originally prototyped as part of the 2022 NWB-DANDI Remote Developer Hackathon and refined during the 2022 NWB User Days event by Garrett Flynn from Brains@Play.