Wiki source code of Widget TimeSeries

Version 31.1 by rominabaila on 2023/05/15 10:50

Hide last authors
ldomide 22.1 1 Source code: [[https:~~/~~/github.com/the-virtual-brain/tvb-widgets>>url:https://github.com/the-virtual-brain/tvb-widgets]]
ldomide 21.1 2
ldomide 25.1 3 This is part of a Pypi release: [[https:~~/~~/pypi.org/project/tvb-widgets/>>url:https://pypi.org/project/tvb-widgets/]]
ldomide 21.1 4
ldomide 25.1 5 //**tvb-widgets**// is also already installed in the official image released for EBRAINS lab, where you can test it directly.
6
ldomide 23.1 7 == Purpose ==
ldomide 1.1 8
ldomide 22.1 9 It is a Jupyter Widget intended for the visualization of brain signals represented as time series.
rominabaila 5.1 10
11 == Inputs ==
12
paulapopa 17.1 13 Time series can be given as inputs in two forms:
rominabaila 6.1 14
15 * TVB TimeSeries datatype
16 * Numpy arrays
17
paulapopa 17.1 18 This widget supports 2D, 3D, and 4D arrays. In all three cases, there is a fixed shape that the TimeSeries widget expects:
rominabaila 6.1 19
20 * for **2D**: (no_timepoints, no_channels)
21 * for **3D**: (no_timepoints, state_variable/mode, no_channels)
22 * for **4D**: (no_timepoints, state_variable, no_channels, mode)
23
paulapopa 17.1 24 ~* Note that the TVB TimeSeries datatype is always 4D and already has the expected shape.
rominabaila 7.1 25
26 == Requirements and installation ==
27
paulapopa 17.1 28 Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter extensions should be installed:
rominabaila 7.1 29
30 * **Libraries:**
rominabaila 20.1 31 ** [[mne>>https://mne.tools/0.24/install/index.html]] version 0.24
32 ** [[ipympl>>https://github.com/matplotlib/ipympl#installation]]
rominabaila 7.1 33 * (((
rominabaila 11.1 34 **Extensions:**
rominabaila 7.1 35
36 (% class="box" %)
37 (((
rominabaila 8.1 38 jupyter labextension install @jupyter-widgets/jupyterlab-manager
rominabaila 7.1 39
rominabaila 8.1 40 jupyter labextension install jupyter-matplotlib
rominabaila 7.1 41 )))
42 )))
43
rominabaila 12.1 44 Then, to install the tvb-widgets library, just type:
rominabaila 7.1 45
46 (% class="box" %)
47 (((
48 pip install tvb-widgets
49 )))
rominabaila 13.1 50
51 == API usage ==
52
53 First, the correct matplotlib backend must be set, which enables the interaction with the TimeSeries widget, by running the following command:
54
55 (% class="box" %)
56 (((
57 %matplotlib widget
58 )))
59
paulapopa 17.1 60 Then, the **TimeSeriesWidget** (from the tvb-widgets API) and the **//display//** function should be imported:
rominabaila 13.1 61
62 (% class="box" %)
63 (((
64 from tvbwidgets.api import TimeSeriesWidget
65 from IPython.core.display_functions import display
66 )))
67
68 Assuming that the user has already created or imported a valid input, this is how the widget can be initialized and how an input can be assigned to it, using the //**add_datatype** //method (example below assumes that **//tsr//  **is a TVB TimeSeries datatype):
69
70 (% class="box" %)
71 (((
72 tsw = TimeSeriesWidget()
73 tsw.add_datatype(tsr)
74 )))
75
76 Finally, to display and interact with the TimeSeries widget, the **//get_widget//**// //method is used inside the //**display **//function:
77
78 (% class="box" %)
79 (((
ldomide 19.1 80 display(tsw)
rominabaila 13.1 81 )))
rominabaila 15.1 82
83 {{html}}
paulapopa 27.1 84 <iframe width="840" height="480" src="https://www.youtube.com/embed/VmueiXMxbVk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
rominabaila 15.1 85 {{/html}}
Public

TVB Widgets