Changes for page Widget 3D Head
Last modified by paulapopa on 2025/05/30 15:03
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 7 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -Widget 3D Head1 +Widget 3D - Content
-
... ... @@ -1,25 +1,18 @@ 1 - Sourcecode: [[https:~~/~~/github.com/the-virtual-brain/tvb-widgets>>https://github.com/the-virtual-brain/tvb-widgets]]1 +TODO - Not yet released! 2 2 3 -This is part of a Pypi release: [[https:~~/~~/pypi.org/project/tvb-widgets/>>https://pypi.org/project/tvb-widgets/]] 4 - 5 -//**tvb-widgets**// is also already installed in the official image released for EBRAINS lab, where you can test it directly. 6 - 7 7 == Purpose == 8 8 9 -It is a Jupyter widget intended for visualization of the 3D Headdata available for a patient:5 +It is a Jupyter widget intended for visualization of the 3D data available for a patient: 10 10 11 11 * surfaces of different types (cortex, face, skull, etc) 12 -* connectivity region centers and edges8 +* connectivity region centers 13 13 * sensors locations (SEEG, MEG, EEG) 14 14 15 -On cortical surfaces, it can also display region parcellation. 16 - 17 17 == Inputs == 18 18 19 19 It supports the above data in the form of their corresponding TVB datatypes: 20 20 21 21 * Surface (CorticalSurface, FaceSurface, etc) 22 -* Parcellation (RegionMapping) 23 23 * Connectivity 24 24 * Sensors (SensorsInternal, SensorsMEG, SensorsEEG) 25 25 ... ... @@ -34,77 +34,77 @@ 34 34 35 35 We need to first import the widget __API from tvbwidgets__// //package, together with the __TVB API __and the __display__ function: 36 36 37 -{{code language="python" layout="LINENUMBERS"}} 30 +(% class="box" %) 31 +((( 38 38 import tvbwidgets.api as api 33 + 39 39 from tvb.simulator.lab import * 40 -from IPython.core.display_functions import display 41 -{{/code}} 42 42 43 -Then, there are 2 options to work with the widget: 36 +from IPython.core.display_functions import display 37 +))) 44 44 45 -1. Use a file browser to load the data and automatically display it 46 -1. Use directly the API to load the data and display it 39 +Then, we instantiate the **SurfaceWidget** and a **FaceSurface** datatype that we want to visualize. Using the //**add_datatype**// method we add the surface to our widget and __display__ the widget: 47 47 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: 41 +(% class="box" %) 42 +((( 43 +widget = api.SurfaceWidget() 49 49 50 -{{code language="python" layout="LINENUMBERS"}} 51 -widget = api.HeadBrowser() 52 -display(widget) 53 -{{/code}} 45 +face = surfaces.FaceSurface().from_file() 54 54 47 +face.configure() 55 55 56 -For the second option, the API is described below: 49 +widget.add_datatype(face) 50 +display(widget) 51 +))) 57 57 58 -In a cell, we load the data using the TVB API: 53 +{{html}} 54 +<iframe src="https://drive.google.com/file/d/1Egp9Lk-HGMATc9em6Kw_jSHmybTD2vzM/preview" width="840" height="480" allow="autoplay"></iframe> 55 +{{/html}} 59 59 60 -{{code language="python" layout="LINENUMBERS"}} 61 -surface = surfaces.Surface.from_file() 62 -surface.configure() 57 +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. 63 63 64 -face = surfaces.Surface.from_file('face_8614.zip') 65 -face.configure() 59 +The **Config** object can be used to tweak the display options for each datatype. 66 66 67 - reg_map=region_mapping.RegionMapping.from_file()61 +In the code below, we add a **Connectivity** and SEEG **Sensors:** 68 68 69 -conn = connectivity.Connectivity.from_file() 63 +(% class="box" %) 64 +((( 65 +conn = connectivity.Connectivity().from_file() 66 + 70 70 conn.configure() 71 71 72 -seeg = sensors.SensorsInternal.from_file() 73 -seeg.configure() 74 -{{/code}} 69 +widget.add_datatype(conn) 75 75 76 -Then we prepare the **HeadWidget** for display: 77 77 78 -{{code language="python" layout="LINENUMBERS"}} 79 -widget = api.HeadWidget([face, conn, seeg]) 80 -display(widget) 81 -{{/code}} 72 +seeg = sensors.SensorsInternal().from_file() 82 82 83 - [[image:head.png]]74 +seeg.configure() 84 84 85 -Next, we can continue adding other datatypes to this widget, by calling //**add_datatype**// multiple times. 76 +widget.add_datatype(seeg, api.SurfaceWidgetConfig(name='SEEG')) 77 +))) 86 86 87 -In the code below, we add the **CorticalSurface** with a **RegionMapping** as parcellation**:** 79 +{{html}} 80 +<iframe src="https://drive.google.com/file/d/1vFqqzXle8VGcHaLB-OdE-6BdetK9aJ1T/preview" width="840" height="480" allow="autoplay"></iframe> 81 +{{/html}} 88 88 89 -{{code language="python" layout="LINENUMBERS"}} 90 -widget.add_datatype(surface, reg_map) 91 -{{/code}} 83 +We can also provide a **RegionMapping** to be used as colormap for a surface: 92 92 93 -[[image:cort.png]] 85 +(% class="box" %) 86 +((( 87 +reg_map = region_mapping.RegionMapping.from_file() 94 94 89 +config = api.SurfaceWidgetConfig(name='Cortex') 95 95 96 - In the upper-rightcorner, a menuis displayed.This willallow us to control what wewant to visualize. For example, I can hide the head inorder togetabetter view of thecortical surface:91 +config.add_region_mapping_as_cmap(reg_map) 97 97 98 98 94 +cortex = surfaces.CorticalSurface().from_file() 99 99 100 - Ican rotatethe surface and zoom in/out:96 +cortex.configure() 101 101 102 -[[image:parcel.png]] 98 +widget.add_datatype(cortex, config) 99 +))) 103 103 104 -I could also make it transparent to visualize the connectivity centers and their edges: 105 - 106 -[[image:conncenters.png]] 107 - 108 -Also, I can hide the connectivity and display only the SEEG sensors: 109 - 110 -[[image:seeg.png]] 101 +{{html}} 102 +<iframe src="https://drive.google.com/file/d/1z2yEuQWUT2Poxh63adYbBdhKPcWGskex/preview" width="840" height="480" allow="autoplay"></iframe> 103 +{{/html}}
- conncenters.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.paulapopa - Size
-
... ... @@ -1,1 +1,0 @@ 1 -509.5 KB - Content
- cort.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.paulapopa - Size
-
... ... @@ -1,1 +1,0 @@ 1 -308.8 KB - Content
- head.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.reginafilange - Size
-
... ... @@ -1,1 +1,0 @@ 1 -245.6 KB - Content
- menu.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.paulapopa - Size
-
... ... @@ -1,1 +1,0 @@ 1 -241.0 KB - Content
- mm.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.paulapopa - Size
-
... ... @@ -1,1 +1,0 @@ 1 -242.7 KB - Content
- parcel.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.paulapopa - Size
-
... ... @@ -1,1 +1,0 @@ 1 -273.8 KB - Content
- seeg.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.paulapopa - Size
-
... ... @@ -1,1 +1,0 @@ 1 -415.0 KB - Content