Wiki source code of Widget TimeSeries

Version 20.1 by rominabaila on 2022/04/14 16:30

Hide last authors
rominabaila 4.1 1 == Purpose ==
ldomide 1.1 2
rominabaila 4.1 3 It is a Jupyter widget intended for the visualization of brain signals represented as time series.
rominabaila 5.1 4
5 == Inputs ==
6
paulapopa 17.1 7 Time series can be given as inputs in two forms:
rominabaila 6.1 8
9 * TVB TimeSeries datatype
10 * Numpy arrays
11
paulapopa 17.1 12 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 13
14 * for **2D**: (no_timepoints, no_channels)
15 * for **3D**: (no_timepoints, state_variable/mode, no_channels)
16 * for **4D**: (no_timepoints, state_variable, no_channels, mode)
17
paulapopa 17.1 18 ~* Note that the TVB TimeSeries datatype is always 4D and already has the expected shape.
rominabaila 7.1 19
20 == Requirements and installation ==
21
paulapopa 17.1 22 Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter extensions should be installed:
rominabaila 7.1 23
24 * **Libraries:**
rominabaila 20.1 25 ** [[mne>>https://mne.tools/0.24/install/index.html]] version 0.24
26 ** [[ipympl>>https://github.com/matplotlib/ipympl#installation]]
rominabaila 7.1 27 * (((
rominabaila 11.1 28 **Extensions:**
rominabaila 7.1 29
30 (% class="box" %)
31 (((
rominabaila 8.1 32 jupyter labextension install @jupyter-widgets/jupyterlab-manager
rominabaila 7.1 33
rominabaila 8.1 34 jupyter labextension install jupyter-matplotlib
rominabaila 7.1 35 )))
36 )))
37
rominabaila 12.1 38 Then, to install the tvb-widgets library, just type:
rominabaila 7.1 39
40 (% class="box" %)
41 (((
42 pip install tvb-widgets
43 )))
rominabaila 13.1 44
45 == API usage ==
46
47 First, the correct matplotlib backend must be set, which enables the interaction with the TimeSeries widget, by running the following command:
48
49 (% class="box" %)
50 (((
51 %matplotlib widget
52 )))
53
paulapopa 17.1 54 Then, the **TimeSeriesWidget** (from the tvb-widgets API) and the **//display//** function should be imported:
rominabaila 13.1 55
56 (% class="box" %)
57 (((
58 from tvbwidgets.api import TimeSeriesWidget
59 from IPython.core.display_functions import display
60 )))
61
62 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):
63
64 (% class="box" %)
65 (((
66 tsw = TimeSeriesWidget()
67 tsw.add_datatype(tsr)
68 )))
69
70 Finally, to display and interact with the TimeSeries widget, the **//get_widget//**// //method is used inside the //**display **//function:
71
72 (% class="box" %)
73 (((
ldomide 19.1 74 display(tsw)
rominabaila 13.1 75 )))
rominabaila 15.1 76
77 {{html}}
78 <iframe src="https://drive.google.com/file/d/1g4ryY1VIFMUD14Mb6Dq_KVb0b2_XU4VX/preview" width="840" height="480" allow="autoplay"></iframe>
79 {{/html}}
Public

TVB Widgets