Attention: The Collaboratory IAM will down for up to 1 hour on Monday, the 7th of July 2025 starting from 5pm CEST (my timezone) for up to 1 hour. Any and all services, which require a user login with an EBRAINS account, will be un-available during that time


Changes for page Widget TimeSeries

Last modified by ldomide on 2023/05/23 14:34

From version 11.1
edited by rominabaila
on 2022/04/12 09:30
Change comment: There is no comment for this version
To version 22.1
edited by ldomide
on 2022/05/24 09:20
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.rominabaila
1 +XWiki.ldomide
Content
... ... @@ -1,29 +1,32 @@
1 -== Purpose ==
1 +Source code: [[https:~~/~~/github.com/the-virtual-brain/tvb-widgets>>url:https://github.com/the-virtual-brain/tvb-widgets]]
2 2  
3 -It is a Jupyter widget intended for the visualization of brain signals represented as time series.
3 +Immediate testing here: [[https:~~/~~/lab.ch.ebrains.eu/hub/user-redirect/lab/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks>>url:https://lab.ch.ebrains.eu/hub/user-redirect/lab/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks]]
4 4  
5 +=== Purpose ===
5 5  
7 +It is a Jupyter Widget intended for the visualization of brain signals represented as time series.
8 +
6 6  == Inputs ==
7 7  
8 -It supports time series inputs of two types:
11 +Time series can be given as inputs in two forms:
9 9  
10 10  * TVB TimeSeries datatype
11 11  * Numpy arrays
12 12  
13 -The widget supports 2-, 3-, and 4-dimensional arrays. In all three cases, there is a fixed shape that the TimeSeries widget expects:
16 +This widget supports 2D, 3D, and 4D arrays. In all three cases, there is a fixed shape that the TimeSeries widget expects:
14 14  
15 15  * for **2D**: (no_timepoints, no_channels)
16 16  * for **3D**: (no_timepoints, state_variable/mode, no_channels)
17 17  * for **4D**: (no_timepoints, state_variable, no_channels, mode)
18 18  
19 -~* Note that the TVB TimeSeries datatype is always is always 4D and already has the expected shape.
22 +~* Note that the TVB TimeSeries datatype is always 4D and already has the expected shape.
20 20  
21 -
22 22  == Requirements and installation ==
23 23  
24 -Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and  Jupyter Notebook extensions should be installed:
26 +Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter extensions should be installed:
25 25  
26 26  * **Libraries:**
29 +** [[mne>>https://mne.tools/0.24/install/index.html]] version 0.24
27 27  ** [[ipympl>>https://github.com/matplotlib/ipympl#installation]]
28 28  * (((
29 29  **Extensions:**
... ... @@ -36,9 +36,45 @@
36 36  )))
37 37  )))
38 38  
39 -Then, to install the tvb-widgets library just type:
42 +Then, to install the tvb-widgets library, just type:
40 40  
41 41  (% class="box" %)
42 42  (((
43 43  pip install tvb-widgets
44 44  )))
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 +
58 + Then, the **TimeSeriesWidget** (from the tvb-widgets API) and the **//display//** function should be imported:
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 +(((
78 +display(tsw)
79 +)))
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