Skip to content

Commit

Permalink
added JOSS files
Browse files Browse the repository at this point in the history
  • Loading branch information
calebweinreb committed Oct 5, 2022
1 parent c9f9599 commit c449e81
Show file tree
Hide file tree
Showing 4 changed files with 182 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
on: [push]

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
# This should be the path to the paper within your repo.
paper-path: paper.md
- name: Upload
uses: actions/upload-artifact@v1
with:
name: paper
# This is the output path where Pandoc will write the compiled
# PDF. Note, this should be the same directory as the input
# paper.md
path: paper.pdf
Binary file added docs/media/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
82 changes: 82 additions & 0 deletions paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
@software{vispy,
author = {Luke Campagnola and
Eric Larson and
Almar Klein and
David Hoese and
Siddharth and
Cyrille Rossant and
Adam Griffiths and
Nicolas P. Rougier and
asnt and
Kai Mühlbauer and
Alexander Taylor and
MSS and
Talley Lambert and
sylm21 and
Alex J. Champandard and
Max Hunter and
Thomas Robitaille and
Mustafa Furkan Kaptan and
Elliott Sales de Andrade and
Karl Czajkowski and
Lorenzo Gaifas and
Alessandro Bacchini and
Guillaume Favelier and
Etienne Combrisson and
ThenTech and
fschill and
Mark Harfouche and
Michael Aye and
Casper van Elteren and
Cedric GESTES},
title = {vispy/vispy: Version 0.11.0},
month = jul,
year = 2022,
publisher = {Zenodo},
version = {v0.11.0},
doi = {10.5281/zenodo.6795163},
url = {https://doi.org/10.5281/zenodo.6795163}
}



@article{bento,
abstract = {The study of naturalistic social behavior requires quantification of animals' interactions. This is generally done through manual annotation---a highly time-consuming and tedious process. Recent advances in computer vision enable tracking the pose (posture) of freely behaving animals. However, automatically and accurately classifying complex social behaviors remains technically challenging. We introduce the Mouse Action Recognition System (MARS), an automated pipeline for pose estimation and behavior quantification in pairs of freely interacting mice. We compare MARS's annotations to human annotations and find that MARS's pose estimation and behavior classification achieve human-level performance. We also release the pose and annotation datasets used to train MARS to serve as community benchmarks and resources. Finally, we introduce the Behavior Ensemble and Neural Trajectory Observatory (BENTO), a graphical user interface for analysis of multimodal neuroscience datasets. Together, MARS and BENTO provide an end-to-end pipeline for behavior data extraction and analysis in a package that is user-friendly and easily modifiable.},
article_type = {journal},
author = {Segalin, Cristina and Williams, Jalani and Karigo, Tomomi and Hui, May and Zelikowsky, Moriel and Sun, Jennifer J and Perona, Pietro and Anderson, David J and Kennedy, Ann},
citation = {eLife 2021;10:e63720},
date-modified = {2022-10-05 13:18:49 -0400},
doi = {10.7554/eLife.63720},
editor = {Berman, Gordon J and Wassum, Kate M and Gal, Asaf},
issn = {2050-084X},
journal = {eLife},
keywords = {social behavior, pose estimation, machine learning, computer vision, microendoscopic imaging, software},
month = {nov},
pages = {e63720},
pub_date = {2021-11-30},
publisher = {eLife Sciences Publications, Ltd},
title = {The Mouse Action Recognition System (MARS) software pipeline for automated analysis of social behaviors in mice},
url = {https://doi.org/10.7554/eLife.63720},
volume = 10,
year = 2021,
bdsk-url-1 = {https://doi.org/10.7554/eLife.63720}}


@misc{rastermap,
author = {C. Stringer and M. Pachitariu},
title = {rastermap},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/MouseLand/rastermap}
}

@misc{vidio,
author = {J. Bohnslav},
title = {VidIO: simple, performant video reading and writing in python},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/jbohnslav/vidio}
}

77 changes: 77 additions & 0 deletions paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
title: 'Systems Neuro Browser (SNUB)'
tags:
- Python
- neuroscience
- animal behavior
- graphical user interface
authors:
- name: Caleb Weinreb
orcid: 0000-0001-6100-6084
affiliation: 1
- name: Sandeep Robert Datta
orcid: 0000-0002-8068-3862
affiliation: 1
affiliations:
- name: Department of Neurobiology, Harvard University, Boston, MA
index: 1
date: 5 October 2022
bibliography: paper.bib

---

# Summary

SNUB is a tool for exploring time-series data, such as neural
recordings, behavioral videos, temperature, movement or other sensor signals,
and any higher-level annotations derived from such data. The interface is
divided into windows that each show a different data stream and all synchonize
to a common timeline. The linked data views allow users to quickly inspect
the relationships between different phenomena, such as the behaviors that
occur during a particular pattern of neural activity (\autoref{fig:screenshot}).

![Screenshot from SNUB.\label{fig:screenshot}](docs/media/screenshot.png)

We provide dedicated widgets and loading functions for exploring
raw video, 3D animal pose, behavior annotations, electrophysiology recordings,
and calcium imaging data - either as a raster or as a super-position of
labeled regions of interest (ROIs). More broadly, SNUB can dislay any data
that takes the form of a heatmap, scatter plot, video, or collection of
named temporally-varying signals.

In addition to the front-end GUI, we include a library of functions for
ingesting raw data and saving it to a format that is readable by the SNUB
viewer. The following code, for example, creates a project with paired
electrophysiology and video data.

```
import snub.io
project_directory = 'path/to/new/project'
snub.io.create_project(project_directory, duration=1800)
snub.io.add_video(project_directory, 'path/to/my_video.avi', name='IR_camera')
snub.io.add_splikeplot(project_directory, 'my_ephys_data', spike_times, spike_labels)
```

SNUB is a flexible general-purpose tool that complements more specialized
packages such as rastermap [@rastermap] or Bento [@bento]. The rastermap user
interface, for example, is hard-coded for the display of neural activity
rasters, ROIs and 2D embeddings of neural activity. Bento is hard-coded for
the display of neural activity rasters, behavioral videos and behavioral
annotations. SNUB can reproduce either of these configurations and is
especially useful when one wishes to include additional types of data
or more directly customize the way that data is rendered.

The graphics in SNUB are powered by vispy [@vispy]. SNUB includes wrappers
for several dimensionality reduction methods, including rastermap [@rastermap]
for ordering raster plots and UMAP [@umap] for 2D scatter plots. Fast video
loading is enabled by vidio [@vidio].

# Acknowledgements

We are grateful to Mohammed Osman for initial contributions to the 3D keypoint
visualization tool. CW is a Fellow of The Jane Coffin Childs Memorial Fund for
Medical Research. SRD ...

# References

0 comments on commit c449e81

Please sign in to comment.