holoviz-topics / neuro

HoloViz+Bokeh for Neuroscience
BSD 3-Clause "New" or "Revised" License
17 stars 5 forks source link
bokeh holoviz neuroscience

HoloViz+Bokeh for Neuroscience

[!WARNING] This is a development space and changing rapidly.

Why does Neuroscience need HoloViz+Bokeh?

We hypothesize the process of science stands to benefit from having the option to suddenly become interactive and shareable - allowing for the poking or plucking, pushing or pulling, drilling in or out, grouping or separating, and sending or receiving of what would otherwise be a static snapshot of the data. The combined use of HoloViz and Bokeh tools could provide the interactivity, shareability, and scalability needed to support research as a collective action rather than a collection of solitary observations.

What is the purpose of this GitHub repository?

One of our overall goals is to facilitate the creation of fully open, reproducible, OS-independent, browser-based workflows for biomedical research primarily using sustainable, domain-independent visualization tools. In support of this goal, this repository is the development ground for optimization of HoloViz and Bokeh tools within the realm of neuroscience.

Specific repo objectives:

What are workflows?

This repository contains developmental versions of workflows, which can be loosely categorized into two types: generalized and specialized. Generalized workflows aim to be broadly applicable and primarily utilize domain-independent Pandata tools such as Numpy, Pandas, Xarray, SciPy, etc. These generalized workflows serve as the foundational building blocks for specialized workflows. Specialized workflows are designed to cater to specific contexts and have no limitations on the use of domain-specific tools.

Generalized Workflows in Development:

Title Example Modality Thumbnail Info & Links Description
Multi-Channel Timeseries eeg, ephys Multi-Channel Timeseries :warning:Status
workflow
Synchronized examination of stacked time-series with large data handling, scale bar, annotations, minimap, and signal grouping.
Deep Image Stack miniscope imaging Video Viewer :warning: Status
workflow
Efficient visualization of deep 2D calcium imaging movies with, playback controls, 2D annotation, scale bar, time views, intensity histogram, and summary statistics.
Waveform ephys Waveform :warning:Status
workflow
Oscilloscope-style display of action potential waveform snippets
Spike Raster ephys Spike Raster :warning:Status
workflow
Efficient visualization of large-scale neuronal spike time data, with a simple API, aggregate views of spike counts, and spike-level metadata management

Specialized Workflows in Development:

Title Example Modality Thumbnail Info & Links Description
Neuroglancer notebook electron microscopy, histology Neuroglancer Notebook :warning:Status
workflow
Notebook-based workflow for visualizing 3D volumetric data in a Neuroglancer application

Dissemination

Get Involved

Who is behind this effort?

This work is a collaboration between developers and scientists, and some developer-scientists. While some contributions are visible through the GitHub repo, many other contributions are less visible yet equally important.

Funding:

Need to contact us?


Contributors

Installation for individual workflows with Conda

Prerequisites

Before installing the workflow environments, make sure you have Miniconda installed. If not, you can download and install it from the official site.

Initial Installation Steps

  1. Clone the Repository: Clone the neuro repository to your local machine.

    git clone https://github.com/holoviz-topics/neuro.git
  2. Navigate to Workflow: Change to the directory of the workflow you're interested in.

    cd neuro/workflows/<workflow>
  3. Create Environment: Use conda to create a new environment from the environment.yml file.

    conda env create -f environment.yml
  4. Activate Environment: After the environment is created, activate it.

    conda activate <environment>

Updating Workflow Environments

If you've already installed a workflow environment and the environment.yml file has been updated, follow these steps to update the environment:

  1. Update Repository: Pull the latest changes from the repository.

    git pull
  2. Navigate to Workflow: Go to the directory of the workflow you're interested in.

    cd neuro/workflows/<workflow>
  3. Update Environment: Update the existing Conda environment based on the latest environment.yml file.

    conda env update -f environment.yml --prune

The --prune option will remove packages from the environment not present in the updated environment.yml file.


Resources for Contributing