Skip to content

Commit 92283b8

Browse files
committed
add paper to paper branch
1 parent 228f1a5 commit 92283b8

File tree

4 files changed

+132
-0
lines changed

4 files changed

+132
-0
lines changed

.github/workflows/joss-paper.yml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
on:
2+
push:
3+
branches:
4+
- paper
5+
paths:
6+
- "paper/joss/**"
7+
workflow_dispatch:
8+
9+
jobs:
10+
paper:
11+
runs-on: ubuntu-latest
12+
name: Paper Draft
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
with:
17+
ref: paper
18+
- name: Build draft PDF
19+
uses: openjournals/openjournals-draft-action@master
20+
with:
21+
journal: joss
22+
paper-path: paper/joss/paper.md
23+
- uses: actions/upload-artifact@v4
24+
id: artifact-upload-step
25+
with:
26+
name: paper
27+
path: paper/joss/paper.pdf
28+
- name: Output artifact URL
29+
run: echo 'Artifact URL is ${{ steps.artifact-upload-step.outputs.artifact-url }}'

paper/joss/paper.bib

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
@article{rubel2022neurodata,
2+
title={The neurodata without borders ecosystem for neurophysiological data science},
3+
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},
4+
journal={Elife},
5+
volume={11},
6+
pages={e78362},
7+
year={2022},
8+
publisher={eLife Sciences Publications Limited}
9+
}
10+
11+
@article{teeters2015neurodata,
12+
title={Neurodata without borders: creating a common data format for neurophysiology},
13+
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},
14+
journal={Neuron},
15+
volume={88},
16+
number={4},
17+
pages={629--634},
18+
year={2015},
19+
publisher={Elsevier}
20+
}
21+
22+
@misc{nwbwidgets,
23+
author = {Dichter, Benjamin K},
24+
title = {nwbwidgets: Explore the hierarchical structure of NWB 2.0 files and visualize data with Jupyter widgets.},
25+
year = {2022},
26+
publisher = {GitHub},
27+
journal = {GitHub repository},
28+
howpublished = {\url{https://github.com/NeurodataWithoutBorders/nwbwidgets}},
29+
note = {Accessed: 2024-02-26},
30+
}
31+
32+
@misc{h5wasm,
33+
author = {Maranville, Brian B.},
34+
title = {h5wasm: A WebAssembly HDF5 reader/writer library},
35+
year = {2022},
36+
publisher = {GitHub},
37+
journal = {GitHub repository},
38+
howpublished = {\url{https://github.com/usnistgov/h5wasm}},
39+
note = {Accessed: 2024-02-26}
40+
}

paper/joss/paper.md

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
title: 'Neurosift: DANDI exploration and NWB visualization in the browser'
3+
tags:
4+
- javascript
5+
- web browser
6+
- neurophysiology
7+
- DANDI
8+
- Neurodata Without Borders (NWB)
9+
authors:
10+
- name: Jeremy Magland
11+
orcid: 0000-0002-5286-4375
12+
affiliation: 1
13+
corresponding: true
14+
- name: Cody Baker
15+
orcid: 0000-0002-0829-4790
16+
affiliation: 2
17+
- name: Benjamin Dichter
18+
orcid: 0000-0001-5725-6910
19+
affiliation: 2
20+
affiliations:
21+
- name: Center for Computational Mathematics, Flatiron Institute, USA
22+
index: 1
23+
- name: CatalystNeuro, USA
24+
index: 2
25+
date: 23 February 2024
26+
bibliography: paper.bib
27+
---
28+
29+
# Summary
30+
31+
TESTING
32+
33+
Neurosift, a browser-based visualization tool, is designed for the interactive exploration of Neurodata Without Borders (NWB) files, whether stored locally, on remote servers, or within the Distributed Archives for Neurophysiology Data Integration (DANDI). NWB [@teeters2015neurodata; @rubel2022neurodata] is an open data standard for neurophysiology that enables the sharing, archiving, and analysis of various types of neurophysiology data. DANDI [@rubel2022neurodata] is a cloud-based platform that supports the storage, sharing, and analysis of neurophysiology data including NWB files. With Neurosift integration, users browsing DANDI can easily open any NWB file in the browser and explore its contents, including timeseries data, images, and more. Neurosift can also be used to browse the DANDI database or individual DANDIsets. Overall, Neurosift simplifies the visualization and exploration of complex NWB file structures, making it a valuable tool for neuroscientists.
34+
35+
# Statement of need
36+
37+
In the evolving field of neuroscience research, the ability to manage and share complex data sets is crucial. NWB has emerged as a standard for neurophysiology data, aimed at facilitating data sharing, storage, and analysis. However, the specialized nature of the NWB format necessitates tools that can provide intuitive interfaces for researchers to explore their data effectively. Neurosift is designed to address this need.
38+
39+
Because files found on DANDI can often be large and unwieldy, various Python tools have emerged to address this issue by streaming portions of the NWB file without the need to download the entire file. One such tool is NWB Widgets [@nwbwidgets], which provides a suite of interactive widgets for visualizing NWB data within Jupyter notebooks, enabling users to navigate the hierarchical structure of NWB files and directly visualize specific data elements. This package was a large part of the inspiration for Neurosift. The main difference is that NWB Widgets is a Python package that runs within interactive Python environments, while Neurosift is a browser-based tool that can be used without any installation. These two tools cater to different use cases, with Neurosift being more accessible to a wider audience, and being better suited for integration with DANDI.
40+
41+
# Functionality and user experience
42+
43+
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*, 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 and provides plugin visualizations for many of these types. It also facilitates the creation of composite views by allowing users to select and synchronize multiple data types within the same interface. 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.
44+
45+
# Architecture and technical innovation
46+
47+
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.
48+
49+
The main technical challenge in developing Neurosift was the requirement to lazy-load data objects from remote NWB files, which 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 not only makes Neurosift a powerful tool for neuroscience research but also showcases the potential of WebAssembly in overcoming challenges associated with web-based data analysis tools.
50+
51+
# Conclusion
52+
53+
Neurosift makes neurophysiology data more accessible to scientists. By facilitating the exploration of complex datasets directly within a browser, it lowers the barrier to entry for data analysis and fosters collaborative research efforts. Looking forward, there is potential for Neurosift to expand its capabilities, with enhanced visualizations and support for additional data types.
54+
55+
# Acknowledgements
56+
57+
Thank you to Jeff Soules who helped develop visualizations that were ported over to Neurosift.
58+
59+
# References

paper/joss/paper.pdf.info

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
The compiled .pdf is available as an Artifact of the latest
2+
run of the joss-paper.yml GitHub Actions workflow.
3+
4+
https://github.com/flatironinstitute/neurosift/actions

0 commit comments

Comments
 (0)