Wiki source code of Widget TimeSeries

Version 24.1 by ldomide on 2022/05/24 10:40

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

TVB Widgets