Skip to content

Commit

Permalink
Merge pull request #171 from mstimberg/paper
Browse files Browse the repository at this point in the history
Minor editing changes for JOSS paper
  • Loading branch information
magland authored May 17, 2024
2 parents 17bdd58 + 31712cd commit 43a2a86
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
14 changes: 8 additions & 6 deletions paper/joss/paper.bib
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
@article{rubel2022neurodata,
title={The neurodata without borders ecosystem for neurophysiological data science},
title={The {Neurodata Without Borders} ecosystem for neurophysiological data science},
author={R{\"u}bel, Oliver and Tritt, Andrew and Ly, Ryan and Dichter, Benjamin K and Ghosh, Satrajit and Niu, Lawrence and Baker, Pamela and Soltesz, Ivan and Ng, Lydia and Svoboda, Karel and others},
journal={Elife},
journal={eLife},
volume={11},
pages={e78362},
year={2022},
doi={10.7554/eLife.78362},
publisher={eLife Sciences Publications Limited}
}

@article{teeters2015neurodata,
title={Neurodata without borders: creating a common data format for neurophysiology},
title={{Neurodata Without Borders}: creating a common data format for neurophysiology},
author={Teeters, Jeffery L and Godfrey, Keith and Young, Rob and Dang, Chinh and Friedsam, Claudia and Wark, Barry and Asari, Hiroki and Peron, Simon and Li, Nuo and Peyrache, Adrien and others},
journal={Neuron},
volume={88},
number={4},
pages={629--634},
year={2015},
doi={10.1016/j.neuron.2015.10.025},
publisher={Elsevier}
}

Expand All @@ -25,7 +27,7 @@ @misc{nwbwidgets
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/NeurodataWithoutBorders/nwbwidgets}},
url = {https://github.com/NeurodataWithoutBorders/nwbwidgets},
note = {Accessed: 2024-02-26},
}

Expand All @@ -35,7 +37,7 @@ @misc{h5wasm
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/usnistgov/h5wasm}},
url = {https://github.com/usnistgov/h5wasm},
note = {Accessed: 2024-02-26}
}

Expand All @@ -45,6 +47,6 @@ @misc{zarr
year = {2024},
publisher = {Zenodo},
journal = {Zenodo},
howpublished = {\url{https://doi.org/10.5281/zenodo.10790679}},
doi = {10.5281/zenodo.10790679},
note = {Accessed: 2024-03-15}
}
6 changes: 3 additions & 3 deletions paper/joss/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,21 @@ Because files found on DANDI can often be large and unwieldy, various tools have
Neurodata Without Borders files are structured hierarchically and encapsulate various "neurodata" types that reflect different aspects of neurophysiological experiments. These types range from *BehavioralEvents*, which record discrete actions or occurrences within experiments, to data structures like *Fluorescence*, *ImageSegmentation*, and *RoiResponseSeries*, which are key data types in optical neurophysiology. Other neurodata types include *ElectricalSeries* for electrophysiological signals and *Units* for spike times of neurons. Neurosift allows interactive navigation of this hierarchical structure (Figure 1) and provides plugin visualizations for many of these types (Figure 2). It also facilitates the creation of composite views by allowing users to select and synchronize multiple data types within the same interface (Figure 3). This synchronization extends to navigation actions such as zooming and panning, where different sub-windows, each displaying a different aspect of the data, maintain a shared time axis. These views can then be shared with others as a URL.

<!-- https://neurosift.app/?p=/nwb&url=https://api.dandiarchive.org/api/assets/db8b5f00-05a1-4485-89ca-1767acf0ae36/download/&dandisetId=000409&dandisetVersion=draft -->
![Screenshot of Neurosift displaying a NWB file from the 'IBL - Brain Wide Map' Dandiset (ID 000409), showcasing the tool's capability to navigate and visualize the hierarchical structure of neurophysiological data. Visible are expanded panels for ElectricalSeries and ImageSeries objects, alongside a TimeIntervals object and a Units table.](./images/neurosift-screenshot-1.png)
![Screenshot of Neurosift displaying a NWB file from the 'IBL - Brain Wide Map' Dandiset (ID 000409), showcasing the tool's capability to navigate and visualize the hierarchical structure of neurophysiological data. Visible are expanded panels for *ElectricalSeries* and *ImageSeries* objects, alongside a *TimeIntervals* object and a *Units* table.](./images/neurosift-screenshot-1.png)

<!-- https://neurosift.app/?p=/nwb&url=https://dandiarchive.s3.amazonaws.com/blobs/f76/b9f/f76b9f7e-38ed-43fb-8fd0-4cc272fcd8bd&dandisetId=000409&dandisetVersion=draft&tab=view:PSTH|/intervals/trials -->
![Interactive Peri-stimulus Time Histogram (PSTH) visualization in Neurosift, enabling users to select neural units, time alignment variables, and customize options like window range, histogram bin count, and grouping variables.](./images/neurosift-screenshot-3.png)

<!-- https://neurosift.app/?p=/nwb&url=https://dandiarchive.s3.amazonaws.com/blobs/c86/cdf/c86cdfba-e1af-45a7-8dfd-d243adc20ced&tab=neurodata-items:neurodata-item:/acquisition/ElectricalSeries|ElectricalSeries@view:DirectRasterPlot|/units -->
![Synchronized view within Neurosift demonstrating the interactive alignment between an ElectricalSeries and a Spike Raster Plot. This feature allows users to seamlessly zoom and pan across both visualizations, maintaining a coherent temporal perspective across different data types.](./images/neurosift-screenshot-2.png)
![Synchronized view within Neurosift demonstrating the interactive alignment between an *ElectricalSeries* and a *Spike Raster Plot*. This feature allows users to seamlessly zoom and pan across both visualizations, maintaining a coherent temporal perspective across different data types.](./images/neurosift-screenshot-2.png)



# Architecture and technical innovation

Neurosift is a *static* React/TypeScript website, meaning that it is delivered to the user's browser exactly as stored, without the need for dynamic server-side processing of requests. This approach simplifies deployment and maintenance; it can be deployed to any static hosting service.

The main technical challenge in developing Neurosift was the requirement to lazy-load data objects from remote NWB files that are built on the complex HDF5 format. While HDF5's efficient data organization is ideal for the large, multidimensional datasets typical in neurophysiology, its primary implementations are in the C language. This necessitates a creative solution to enable efficient web-based access to these files. To bridge this gap, Neurosift leverages WebAssembly to run compiled C code in the browser, specifically utilizing a modified version of the h5wasm [@h5wasm] library. Unlike the unmodified h5wasm, which primarily handles fully downloaded files, Neurosift's fork introduces an innovative approach to efficiently read data chunks from remote files. This allows for synchronous data reads without the need for a prior download of the entire file. This solution showcases the potential of WebAssembly in overcoming challenges associated with web-based data analysis tools.
The main technical challenge in developing Neurosift was the requirement to lazy-load data objects from remote NWB files that are built on the complex HDF5 format. While HDF5's efficient data organization is ideal for the large, multidimensional datasets typical in neurophysiology, its primary implementations are in the C language. This necessitates a creative solution to enable efficient web-based access to these files. To bridge this gap, Neurosift leverages WebAssembly to run compiled C code in the browser, specifically utilizing a modified version of the h5wasm [@h5wasm] library. Unlike the unmodified h5wasm, which primarily handles fully downloaded files, Neurosift's fork introduces an innovative approach to efficiently read data chunks from remote files. This allows for partial data reads without the need for a prior download of the entire file. This solution showcases the potential of WebAssembly in overcoming challenges associated with web-based data analysis tools.

# Future directions

Expand Down

0 comments on commit 43a2a86

Please sign in to comment.