Skip to content

Commit

Permalink
joss paper
Browse files Browse the repository at this point in the history
  • Loading branch information
magland committed Feb 26, 2024
1 parent 4d8690c commit 5a20a21
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 25 deletions.
19 changes: 19 additions & 0 deletions .github/workflows/joss-paper.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
on: workflow_dispatch

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
paper-path: paper/joss/paper.md
- name: Upload
uses: actions/upload-artifact@v1
with:
name: paper
path: paper/joss/paper.pdf
9 changes: 9 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,15 @@
"clear": true
},
"detail": "Publish package to PyPI"
},
{
"label": "JOSS: compile paper",
"type": "shell",
"command": "docker run --rm --volume $PWD/paper/joss:/data --user $(id -u):$(id -g) --env JOURNAL=joss openjournals/inara",
"presentation": {
"clear": true
},
"detail": "Compile the JOSS paper"
}
]
}
40 changes: 40 additions & 0 deletions paper/joss/paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
@article{rubel2022neurodata,
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},
volume={11},
pages={e78362},
year={2022},
publisher={eLife Sciences Publications Limited}
}

@article{teeters2015neurodata,
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},
publisher={Elsevier}
}

@misc{nwbwidgets,
author = {Dichter, Benjamin K},
title = {nwbwidgets: Explore the hierarchical structure of NWB 2.0 files and visualize data with Jupyter widgets.},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/NeurodataWithoutBorders/nwbwidgets}},
note = {Accessed: 2024-02-26},
}

@misc{h5wasm,
author = {Maranville, Brian B.},
title = {h5wasm: A WebAssembly HDF5 reader/writer library},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/bmaranville/h5wasm}},
note = {Accessed: 2024-02-26}
}
30 changes: 5 additions & 25 deletions paper/joss/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,12 @@ bibliography: paper.bib

# Summary

> This is a draft
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).
Neurodata Without Borders (NWB) is an open data standard for neurophysiology that enables the sharing, archiving, and analysis of various types of neurophysiology data,
DANDI is a cloud-based platform that supports the storage, sharing, and analysis of neurophysiology data including NWB files.
Neurodata Without Borders (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.
Expand All @@ -46,29 +44,11 @@ making it a valuable tool for neuroscientists.

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.

Files found on DANDI can often be large and unwieldy. Various Python tools have emerged to address this by streaming portions of the NWB file without the need to download the entire file. One such tool is NWB Widgets, which provides a suite of interactive widgets for visualizing NWB data within Jupyter notebooks or JupyterLab, 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 is better suited for integration with DANDI.
Files found on DANDI can often be large and unwieldy. Various Python tools have emerged to address this 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 or JupyterLab, 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 is better suited for integration with DANDI.


The main technical challenge in developing Neurosift lies in its requirement to lazy-load data objects from remote NWB files, which are based 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 C. This necessitates a creative solution for web-based access and manipulation of 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 library. Unlike the standard h5wasm library, which built to handle 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 the entire file's prior download. 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.
The main technical challenge in developing Neurosift lies in its requirement to lazy-load data objects from remote NWB files, which are based 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 C. This necessitates a creative solution for web-based access and manipulation of 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 original h5wasm library, which built to handle 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 the entire file's prior download. 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.

In conclusion, Neurosift makes neurophysiology data more accessible and manageable for scientists. By facilitating the exploration of complex datasets directly within a browser, without requiring specialized programming knowledge, 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.

# Citations

Citations to entries in paper.bib should be in
[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html)
format.

If you want to cite a software repository URL (e.g. something on GitHub without a preferred
citation) then you can do it with the example BibTeX entry below for @fidgit.

For a quick reference, the following citation commands can be used:
- `@author:2001` -> "Author et al. (2001)"
- `[@author:2001]` -> "(Author et al., 2001)"
- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)"

# Acknowledgements

# References

> Need to include references for NWB, DANDI, h5wasm, and NWB Widgets
# References
Binary file added paper/joss/paper.pdf
Binary file not shown.

0 comments on commit 5a20a21

Please sign in to comment.