Widget TimeSeries

Version 39.2 by rominabaila on 2023/05/15 14:17

Source code: https://github.com/the-virtual-brain/tvb-widgets

This is part of a Pypi release: https://pypi.org/project/tvb-widgets/

tvb-widgets is also already installed in the official image released for EBRAINS lab, where you can test it directly.

Purpose

It is a JupyterLab Widget intended for the visualization of brain signals represented as time series.

Backends

Starting with tvb-widgets 1.5.0the TS widget comes in 2 forms, corresponding to the 2 different libraries (we called them backends) used for plotting: matplotlib and plotly. The matplotlib backend, build on top of the mne library, offers more advanced scientifical features, while the plotly backend has a more appealing look and moves faster when talking about the basic interactions.

Below you can see the TS widget with each backend option (first one using the matplotlib backend, second one using the plotly backend).

matplotlib.png

plotly.png

Inputs

Time series can be given as inputs in two forms:

  • TVB TimeSeries datatype
  • Numpy arrays

This widget supports 2D, 3D, and 4D arrays. In all three cases, there is a fixed shape that the TimeSeries widget expects:

  • for 2D: (no_timepoints, no_channels)
  • for 3D: (no_timepoints, state_variable/mode, no_channels)
  • for 4D: (no_timepoints, state_variable, no_channels, mode)

* Note that the TVB TimeSeries datatype is always 4D and already has the expected shape. 

Requirements and installation

Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter extensions should be installed:

  • Libraries:
  • Extensions:

    jupyter labextension install @jupyter-widgets/jupyterlab-manager

    jupyter labextension install jupyter-matplotlib

    jupyter labextension install jupyterlab-plotly

Then, to install the tvb-widgets library, just type:

pip install tvb-widgets

API usage

First, the correct matplotlib backend must be set, which enables the interaction with the TimeSeries widget, by running the following command:

%matplotlib widget

Then, simply import the plot_timeseries method, which gives you access to the TS widget:

from tvbwidgets.api import plot_timeseries

Assuming that the user has already created or imported a valid input, this is how the widget can be initialized and displayed (example below assumes that tsr  is a TVB TimeSeries datatype):

backend = 'plotly' # change to 'matplotlib' to see the other TS widget

plot_timeseries(data=tsr, backend=backend)

After running the code from above into a Jupyter cell, you should see the TS widget corresponding to the backend you selected.

1. TS Widget with matplotlib and mne

As it was already mentioned, the matplotlib widget offers more advanced scientifical fearures. In the video below, you can see some of the functionalities that this backend provides, like: increasing/decreasing signal amplitude, selecting/deselecting certain signals, selecting different dimensions (state variable/mode) from the input data, navigating through the timeline, etc.

2. TS Widget with plotly

Starting with tvb-widgets version 1.5.0, we introduced a second TS Widget, which uses the plotly.py library to create the interactive plot. Below you can watch small tutorials on how to use and interact with this widget.

2.1. Moving through the timeline and channels list

To move through the timeline or channels list, go to your cursor over the X (for timeline) and Y (for channels) axes and drag it to navigate.

2.2. Modify spacing between channels


 

2. TS Widget with plotly

Starting with tvb-widgets version 1.5.0, we introduced a second TS Widget, which uses the plotly.py library to create the interactive plot. Below you can watch small tutorials on how to use and interact with this widget.

2.1. Moving through the timeline and channels list

To move through the timeline or channels list, go to your cursor over the X (for timeline) and Y (for channels) axes and drag it to navigate.

2. TS Widget with plotly

Starting with tvb-widgets version 1.5.0, we introduced a second TS Widget, which uses the plotly.py library to create the interactive plot. Below you can watch small tutorials on how to use and interact with this widget.

2.1. Moving through the timeline and channels list

2. TS Widget with plotly

Starting with tvb-widgets version 1.5.0, we introduced a second TS Widget, which uses the plotly.py library to create the interactive plot. Below you can watch small tutorials on how to use and interact with this widget.

2.1. Moving through the timeline and channels list

Public

TVB Widgets