Changes for page Widget 3D Head
Last modified by paulapopa on 2025/05/30 15:03
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 7 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -9,14 +9,17 @@ 9 9 It is a Jupyter widget intended for visualization of the 3D Head data available for a patient: 10 10 11 11 * surfaces of different types (cortex, face, skull, etc) 12 -* connectivity region centers 12 +* connectivity region centers and edges 13 13 * sensors locations (SEEG, MEG, EEG) 14 14 15 +On cortical surfaces, it can also display region parcellation. 16 + 15 15 == Inputs == 16 16 17 17 It supports the above data in the form of their corresponding TVB datatypes: 18 18 19 19 * Surface (CorticalSurface, FaceSurface, etc) 22 +* Parcellation (RegionMapping) 20 20 * Connectivity 21 21 * Sensors (SensorsInternal, SensorsMEG, SensorsEEG) 22 22 ... ... @@ -31,15 +31,12 @@ 31 31 32 32 We need to first import the widget __API from tvbwidgets__// //package, together with the __TVB API __and the __display__ function: 33 33 34 -(% class="box" %) 35 -((( 37 +{{code language="python" layout="LINENUMBERS"}} 36 36 import tvbwidgets.api as api 37 - 38 38 from tvb.simulator.lab import * 40 +from IPython.core.display_functions import display 41 +{{/code}} 39 39 40 -from IPython.core.display_functions import display 41 -))) 42 - 43 43 Then, there are 2 options to work with the widget: 44 44 45 45 1. Use a file browser to load the data and automatically display it ... ... @@ -47,86 +47,64 @@ 47 47 48 48 For the first option, you have to run the following 2 lines of code in a notebook cell and then just use the UI controls: 49 49 50 -(% class="box" %) 51 -((( 50 +{{code language="python" layout="LINENUMBERS"}} 52 52 widget = api.HeadBrowser() 53 53 display(widget) 54 - )))53 +{{/code}} 55 55 56 -{{html}} 57 -<iframe width="840" height="480" src="https://www.youtube.com/embed/BCCh-wdcnVo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 58 -{{/html}} 59 59 60 - 61 61 For the second option, the API is described below: 62 62 63 -In a newcell, weinstantiatethe**HeadWidget**and a **FaceSurface** datatypethat we want to visualize. Using the//**add_datatype**//method we add the surface to our widget and __display__ the widget:58 +In a cell, we load the data using the TVB API: 64 64 65 - (%class="box"%)66 -( ((67 - widget =api.HeadWidget()60 +{{code language="python" layout="LINENUMBERS"}} 61 +surface = surfaces.Surface.from_file() 62 +surface.configure() 68 68 69 -face = surfaces.FaceSurface().from_file() 70 - 64 +face = surfaces.Surface.from_file('face_8614.zip') 71 71 face.configure() 72 72 73 -widget.add_datatype(face) 74 -display(widget) 75 -))) 67 +reg_map = region_mapping.RegionMapping.from_file() 76 76 77 -{{html}} 78 -<iframe width="840" height="480" src="https://www.youtube.com/embed/8bmjKp3BYFA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 79 -{{/html}} 80 - 81 -Next, we can continue adding other datatypes to this widget, by calling //**add_datatype**// multiple times. A maximum of 10 datatypes are supported by this widget. 82 - 83 -The **Config** object can be used to tweak the display options for each datatype. 84 - 85 -In the code below, we add a **Connectivity** and SEEG **Sensors:** 86 - 87 -(% class="box" %) 88 -((( 89 -conn = connectivity.Connectivity().from_file() 90 - 69 +conn = connectivity.Connectivity.from_file() 91 91 conn.configure() 92 92 93 -widget.add_datatype(conn) 72 +seeg = sensors.SensorsInternal.from_file() 73 +seeg.configure() 74 +{{/code}} 94 94 76 +Then we prepare the **HeadWidget** for display: 95 95 96 -seeg = sensors.SensorsInternal().from_file() 78 +{{code language="python" layout="LINENUMBERS"}} 79 +widget = api.HeadWidget([face, conn, seeg]) 80 +display(widget) 81 +{{/code}} 97 97 98 - seeg.configure()83 +[[image:head.png]] 99 99 100 -widget.add_datatype(seeg, api.HeadWidgetConfig(name='SEEG')) 101 -))) 85 +Next, we can continue adding other datatypes to this widget, by calling //**add_datatype**// multiple times. 102 102 103 -{{html}} 104 -<iframe width="840" height="480" src="https://www.youtube.com/embed/6UQhL9gd1HM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 105 -{{/html}} 87 +In the code below, we add the **CorticalSurface** with a **RegionMapping** as parcellation**:** 106 106 107 -We can also provide a **RegionMapping** to be used as colormap for a surface: 89 +{{code language="python" layout="LINENUMBERS"}} 90 +widget.add_datatype(surface, reg_map) 91 +{{/code}} 108 108 109 -(% class="box" %) 110 -((( 111 -reg_map = region_mapping.RegionMapping.from_file() 93 +[[image:cort.png]] 112 112 113 -config = api.HeadWidgetConfig(name='Cortex') 114 114 115 -con fig.add_region_mapping_as_cmap(reg_map)96 +In the upper-right corner, a menu is displayed. This will allow us to control what we want to visualize. For example, I can hide the head in order to get a better view of the cortical surface: 116 116 117 117 118 -cortex = surfaces.CorticalSurface().from_file() 119 119 120 -c ortex.configure()100 +I can rotate the surface and zoom in/out: 121 121 102 +[[image:parcel.png]] 122 122 123 - widget=api.HeadWidget()104 +I could also make it transparent to visualize the connectivity centers and their edges: 124 124 125 - widget.add_datatype(cortex, config)106 +[[image:conncenters.png]] 126 126 127 -display(widget) 128 -))) 108 +Also, I can hide the connectivity and display only the SEEG sensors: 129 129 130 -{{html}} 131 -<iframe width="840" height="480" src="https://www.youtube.com/embed/aDC2TJm2NxM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 132 -{{/html}} 110 +[[image:seeg.png]]
- conncenters.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.paulapopa - Size
-
... ... @@ -1,0 +1,1 @@ 1 +509.5 KB - Content
- cort.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.paulapopa - Size
-
... ... @@ -1,0 +1,1 @@ 1 +308.8 KB - Content
- head.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.reginafilange - Size
-
... ... @@ -1,0 +1,1 @@ 1 +245.6 KB - Content
- menu.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.paulapopa - Size
-
... ... @@ -1,0 +1,1 @@ 1 +241.0 KB - Content
- mm.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.paulapopa - Size
-
... ... @@ -1,0 +1,1 @@ 1 +242.7 KB - Content
- parcel.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.paulapopa - Size
-
... ... @@ -1,0 +1,1 @@ 1 +273.8 KB - Content
- seeg.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.paulapopa - Size
-
... ... @@ -1,0 +1,1 @@ 1 +415.0 KB - Content