Warning:  Due to planned infrastructure maintenance, the EBRAINS Wiki and EBRAINS Support system will be unavailable for up to three days starting Monday, 14 July. During this period, both services will be inaccessible, and any emails sent to the support address will not be received.

Attention: We are currently experiencing some issues with the EBRAINS Drive. Please bear with us as we fix this issue. We apologise for any inconvenience caused.


Wiki source code of Widget PhasePlane

Version 8.1 by ldomide on 2023/01/09 19:45

Show last authors
1 Source code: [[https:~~/~~/github.com/the-virtual-brain/tvb-widgets>>https://github.com/the-virtual-brain/tvb-widgets]]
2
3 Immediate testing: [[https:~~/~~/lab.ch.ebrains.eu/user/teodoramisan/lab/workspaces/auto-3/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks/PhasePlane.ipynb>>https://lab.ch.ebrains.eu/user/teodoramisan/lab/workspaces/auto-3/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks/PhasePlane.ipynb]]
4
5 == Purpose ==
6
7 It is a Jupyter Widget intended for the visualization of the interactive phase-plane for TVB math models ([[https:~~/~~/docs.thevirtualbrain.org/api/tvb.simulator.models.html#module-tvb.simulator.models>>https://docs.thevirtualbrain.org/api/tvb.simulator.models.html#module-tvb.simulator.models]]).
8
9 It provides **//sliders//** for setting:
10
11 * (((
12 The value of all parameters of the Model.
13 )))
14 * (((
15 The extent of the axes.
16 )))
17 * (((
18 A fixed value for the state-variables which aren't currently selected.
19 )))
20 * (((
21 The noise strength, if a stochastic integrator is specified.
22 )))
23
24 and **//dropdown lists//** for selecting:
25
26 * (((
27 Which state-variables to show on each axis.
28 )))
29 * (((
30 Which mode to show, if the Model has them.
31 )))
32
33 Entering the coordinates in the X,Y Coordinate Boxes will generate a sample
34 trajectory, originating from the coordinates entered.
35
36 == Inputs ==
37
38 Phase-Plane viewer will be represented in the beginning based on the parameters that it receives:
39
40 * Model (Generic2dOscillator, Epileptor, Hopfield, etc.)
41 * Integrator (HeunDeterministic, HeunStochastic, Identity, etc.)
42
43 == Requirements and installation ==
44
45 Before installing the tvb-widgets library containing the PhasePlane widget, the following python library and Jupyter extensions should be installed:
46
47 * **Libraries:​​​​​**
48 ** ​​​​​​[[ipympl>>https://github.com/matplotlib/ipympl#installation]]
49 * **Extensions:**
50
51 (% class="box" %)
52 (((
53 jupyter labextension install @jupyter-widgets/jupyterlab-manager
54
55 jupyter labextension install jupyter-matplotlib
56 )))
57
58 Then, to install the tvb-widgets library, just type:
59
60 (% class="box" %)
61 (((
62 pip install tvb-widgets
63 )))
64
65 == API usage ==
66
67 First, the correct matplotlib backend must be set, which enables the interaction with the PhasePlane widget, by running the following command:
68
69 (% class="box" %)
70 (((
71 %matplotlib widget
72 )))
73
74 Then, the PhasePlaneWidget (from the tvb-widgets API), the package lab (from tvb simulator) and the display function should be imported:
75
76 (% class="box" %)
77 (((
78 {{{from tvbwidgets.api import PhasePlaneWidget
79 from tvb.simulator.lab import *
80 }}}
81
82 {{{from IPython.core.display_functions import display}}}
83 )))
84
85 The widget can be initialized with the required parameters (Model and Integrator) as it shows below:
86
87 (% class="box" %)
88 (((
89 {{{w = PhasePlaneWidget(model=models.Generic2dOscillator(),
90 integrator=integrators.HeunDeterministic())}}}
91 )))
92
93 Finally, to display and interact with the PhasePlane widget, the **//get_widget//**// //method is used inside the //**display **//function:
94
95 (% class="box" %)
96 (((
97 {{{display(w.get_widget(plot_size=(6,7)))
98 }}}
99 )))
100
101 The outcome will be something like in the image bellow.
102 You can explore the inputs in the TAB on the left, and click on the canvas in the right to select initial conditions for evaluating the Model equations from that point onward (no structural connectivity, as is the eq are solved for a single node, in isolation).
103
Public

TVB Widgets