Closed shuerye closed 3 weeks ago
fixed with following settings:
anyio 4.4.0 argon2-cffi 23.1.0 argon2-cffi-bindings 21.2.0 arrow 1.3.0 asttokens 2.4.1 async-lru 2.0.4 attrs 24.2.0 babel 2.16.0 beautifulsoup4 4.12.3 bleach 6.1.0 brainspace 0.1.10 certifi 2024.7.4 cffi 1.17.0 charset-normalizer 3.3.2 colorama 0.4.6 comm 0.2.2 contourpy 1.2.1 cycler 0.12.1 debugpy 1.8.5 decorator 5.1.1 defusedxml 0.7.1 exceptiongroup 1.2.2 executing 2.0.1 fastjsonschema 2.20.0 fonttools 4.53.1 fqdn 1.5.1 h11 0.14.0 httpcore 1.0.5 httpx 0.27.0 idna 3.7 ipykernel 6.29.5 ipython 8.26.0 ipywidgets 8.1.3 isoduration 20.11.0 jedi 0.19.1 Jinja2 3.1.4 joblib 1.4.2 json5 0.9.25 jsonpointer 3.0.0 jsonschema 4.23.0 jsonschema-specifications 2023.12.1 jupyter 1.0.0 jupyter_client 8.6.2 jupyter-console 6.6.3 jupyter_core 5.7.2 jupyter-events 0.10.0 jupyter-lsp 2.2.5 jupyter_server 2.14.2 jupyter_server_terminals 0.5.3 jupyterlab 4.2.4 jupyterlab_pygments 0.3.0 jupyterlab_server 2.27.3 jupyterlab_widgets 3.0.11 kiwisolver 1.4.5 lxml 5.3.0 MarkupSafe 2.1.5 matplotlib 3.9.2 matplotlib-inline 0.1.7 mistune 3.0.2 nbclient 0.10.0 nbconvert 7.16.4 nbformat 5.10.4 nest-asyncio 1.6.0 neuromaps 0.0.5 nibabel 5.2.1 nilearn 0.10.3 notebook 7.2.1 notebook_shim 0.2.4 numpy 1.26.4 overrides 7.7.0 packaging 24.1 pandas 2.2.2 pandocfilters 1.5.1 parso 0.8.4 pillow 10.4.0 pip 21.2.3 platformdirs 4.2.2 prometheus_client 0.20.0 prompt_toolkit 3.0.47 psutil 6.0.0 pure_eval 0.2.3 pycparser 2.22 Pygments 2.18.0 pyparsing 3.1.2 python-dateutil 2.9.0.post0 python-json-logger 2.0.7 pytz 2024.1 pywin32 306 pywinpty 2.0.13 PyYAML 6.0.2 pyzmq 26.1.1 qtconsole 5.5.2 QtPy 2.4.1 referencing 0.35.1 requests 2.32.3 rfc3339-validator 0.1.4 rfc3986-validator 0.1.1 rpds-py 0.20.0 scikit-learn 1.5.1 scipy 1.14.0 Send2Trash 1.8.3 setuptools 57.4.0 six 1.16.0 sniffio 1.3.1 soupsieve 2.6 stack-data 0.6.3 surfplot 0.2.0 terminado 0.18.1 threadpoolctl 3.5.0 tinycss2 1.3.0 tomli 2.0.1 tornado 6.4.1 traitlets 5.14.3 types-python-dateutil 2.9.0.20240316 typing_extensions 4.12.2 tzdata 2024.1 uri-template 1.3.0 urllib3 2.2.2 vtk 9.3.1 wcwidth 0.2.13 webcolors 24.8.0 webencodings 0.5.1 websocket-client 1.8.0 widgetsnbextension 4.0.11
First load mean connectivity matrix and Schaefer parcellation
conn_matrix = load_group_fc('schaefer', scale=400) labeling = load_parcellation('schaefer', scale=400, join=True)
mask = labeling != 0
and load the conte69 hemisphere surfaces
surf_lh, surf_rh = load_conte69()
import numpy as np
from brainspace.gradient import GradientMaps from brainspace.plotting import plot_hemispheres from brainspace.utils.parcellation import map_to_labels
kernels = ['pearson', 'spearman', 'normalized_angle']
gradients_kernel = [None] * len(kernels) for i, k in enumerate(kernels): gm = GradientMaps(kernel=k, approach='dm', random_state=0) gm.fit(conn_matrix)
label_text = ['Pearson', 'Spearman', 'Normalized\nAngle'] plot_hemispheres(surf_lh, surf_rh, array_name=gradients_kernel, size=(1200, 600), cmap='viridis_r', color_bar=True, label_text=label_text, zoom=1.45)
Error:
TypeError Traceback (most recent call last) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\vtkmodules\util\vtkAlgorithm.py:152, in VTKPythonAlgorithmBase.InternalAlgorithm.ProcessRequest(self, vtkself, request, inInfo, outInfo) 151 def ProcessRequest(self, vtkself, request, inInfo, outInfo): --> 152 return vtkself.ProcessRequest(request, inInfo, outInfo)
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\vtkmodules\util\vtkAlgorithm.py:198, in VTKPythonAlgorithmBase.ProcessRequest(self, request, inInfo, outInfo) 196 return self.RequestUpdateExtent(request, inInfo, outInfo) 197 elif request.Has(vtkDemandDrivenPipeline.REQUEST_DATA()): --> 198 return self.RequestData(request, inInfo, outInfo) 200 return 1
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\io_support\gifti_support.py:89, in vtkGIFTIReader.RequestData(self, request, inInfo, outInfo) 87 def RequestData(self, request, inInfo, outInfo): 88 opt = vtkPolyData.GetData(outInfo, 0) ---> 89 s = _read_gifti(self._FileName, self._fnames_pointdata) 90 opt.ShallowCopy(s) 91 return 1
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\io_support\gifti_support.py:32, in _read_gifti(ipth, ipths_pointdata) 30 points = g.get_arrays_from_intent(INTENT_POINTS)[0].data 31 cells = g.get_arrays_from_intent(INTENT_CELLS)[0].data ---> 32 s = build_polydata(points, cells=cells) 34 # for pth_data, keys in ipths_pointdata.items(): 35 # d = nb.load(pth_data) 36 # if len(d.darrays) != len(keys): (...) 48 # # random array names 49 # s.append_array(a1.data, name=None, at='p') 50 return s.VTKObject
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\mesh\mesh_creation.py:54, in build_polydata(points, cells) 52 s.SetLines(cells) 53 else: ---> 54 s.SetPolys(cells) 56 # Triangulation needed 57 return serial_connect(s, vtkTriangleFilter())
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\data_object.py:502, in BSPolyData.SetPolys(self, polys) 492 """Set polys. 493 494 Parameters (...) 499 500 """ 501 if isinstance(polys, np.ndarray): --> 502 polys = self._numpy2cells(polys) 503 self.VTKObject.SetPolys(polys)
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\data_object.py:459, in BSPolyData._numpy2cells(cells) 457 # cells = dsa.numpyTovtkDataArray(vtk_cells, array_type=VTK_ID_TYPE) 458 ca = BSCellArray() --> 459 ca.SetCells(n_cells, vtk_cells) 460 return ca.VTKObject
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\decorators.py:99, in unwrap_input.._wrapper_decorator.._wrapper_wrap(*args, *kwds)
95 @functools.wraps(func)
96 def _wrapper_wrap(args, kwds):
97 args, kwds = _unwrap_input_data(args, kwds, xargs, skip=skip,
98 vtype=vtype)
---> 99 data = func(args, kwds)
100 return data
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\misc.py:97, in BSCellArray.SetCells(self, n_cells, cells) 95 @unwrap_input(2, vtype={2: VTK_ID_TYPE}) 96 def SetCells(self, n_cells, cells): ---> 97 self.VTKObject.SetCells(n_cells, cells)
TypeError: SetCells argument 2:
TypeError Traceback (most recent call last) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\vtkmodules\util\vtkAlgorithm.py:152, in VTKPythonAlgorithmBase.InternalAlgorithm.ProcessRequest(self, vtkself, request, inInfo, outInfo) 151 def ProcessRequest(self, vtkself, request, inInfo, outInfo): --> 152 return vtkself.ProcessRequest(request, inInfo, outInfo)
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\vtkmodules\util\vtkAlgorithm.py:198, in VTKPythonAlgorithmBase.ProcessRequest(self, request, inInfo, outInfo) 196 return self.RequestUpdateExtent(request, inInfo, outInfo) 197 elif request.Has(vtkDemandDrivenPipeline.REQUEST_DATA()): --> 198 return self.RequestData(request, inInfo, outInfo) 200 return 1
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\io_support\gifti_support.py:89, in vtkGIFTIReader.RequestData(self, request, inInfo, outInfo) 87 def RequestData(self, request, inInfo, outInfo): 88 opt = vtkPolyData.GetData(outInfo, 0) ---> 89 s = _read_gifti(self._FileName, self._fnames_pointdata) 90 opt.ShallowCopy(s) 91 return 1
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\io_support\gifti_support.py:32, in _read_gifti(ipth, ipths_pointdata) 30 points = g.get_arrays_from_intent(INTENT_POINTS)[0].data 31 cells = g.get_arrays_from_intent(INTENT_CELLS)[0].data ---> 32 s = build_polydata(points, cells=cells) 34 # for pth_data, keys in ipths_pointdata.items(): 35 # d = nb.load(pth_data) 36 # if len(d.darrays) != len(keys): (...) 48 # # random array names 49 # s.append_array(a1.data, name=None, at='p') 50 return s.VTKObject
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\mesh\mesh_creation.py:54, in build_polydata(points, cells) 52 s.SetLines(cells) 53 else: ---> 54 s.SetPolys(cells) 56 # Triangulation needed 57 return serial_connect(s, vtkTriangleFilter())
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\data_object.py:502, in BSPolyData.SetPolys(self, polys) 492 """Set polys. 493 494 Parameters (...) 499 500 """ 501 if isinstance(polys, np.ndarray): --> 502 polys = self._numpy2cells(polys) 503 self.VTKObject.SetPolys(polys)
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\data_object.py:459, in BSPolyData._numpy2cells(cells) 457 # cells = dsa.numpyTovtkDataArray(vtk_cells, array_type=VTK_ID_TYPE) 458 ca = BSCellArray() --> 459 ca.SetCells(n_cells, vtk_cells) 460 return ca.VTKObject
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\decorators.py:99, in unwrap_input.._wrapper_decorator.._wrapper_wrap(*args, *kwds)
95 @functools.wraps(func)
96 def _wrapper_wrap(args, kwds):
97 args, kwds = _unwrap_input_data(args, kwds, xargs, skip=skip,
98 vtype=vtype)
---> 99 data = func(args, kwds)
100 return data
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\misc.py:97, in BSCellArray.SetCells(self, n_cells, cells) 95 @unwrap_input(2, vtype={2: VTK_ID_TYPE}) 96 def SetCells(self, n_cells, cells): ---> 97 self.VTKObject.SetCells(n_cells, cells)
TypeError: SetCells argument 2:
ValueError Traceback (most recent call last) Cell In[2], line 31 26 gradients_kernel[i] = map_tolabels(gm.gradients[:, i], labeling, mask=mask, 27 fill=np.nan) 30 label_text = ['Pearson', 'Spearman', 'Normalized\nAngle'] ---> 31 plot_hemispheres(surf_lh, surf_rh, array_name=gradients_kernel, size=(1200, 600), 32 cmap='viridis_r', color_bar=True, label_text=label_text, zoom=1.45)
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\decorators.py:41, in wrap_input.._wrapper_decorator.._wrapper_wrap(*args, *kwds)
38 @functools.wraps(func)
39 def _wrapper_wrap(args, kwds):
40 args, kwds = _wrap_input_data(args, kwds, xargs, skip=skip)
---> 41 data = func(args, kwds)
42 return data
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\plotting\surface_plotting.py:557, in plot_hemispheres(surf_lh, surf_rh, array_name, color_bar, color_range, label_text, layout_style, cmap, nan_color, zoom, background, size, interactive, embed_nb, screenshot, filename, scale, transparent_bg, **kwargs) 555 if isinstance(an, np.ndarray): 556 name = surf_lh.append_array(an[:n_pts_lh], at='p') --> 557 surf_rh.append_array(an[n_pts_lh:], name=name, at='p') 558 array_name2.append(name) 559 to_remove.append(name)
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\data_object.py:214, in BSDataSet.append_array(self, array, name, at, convert_bool, overwrite) 211 raise ValueError('Array shape is not valid.') 213 if at in ['point', 'p']: --> 214 _array_overwrite(self.PointData, to_point) 215 elif at in ['cell', 'c']: 216 _array_overwrite(self.CellData, to_cell)
File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\brainspace\vtk_interface\wrappers\data_object.py:211, in BSDataSet.append_array.._array_overwrite(attributes, has_same_shape)
208 warnings.warn('Array was not appended. Array name already '
209 'exists.')
210 else:
--> 211 raise ValueError('Array shape is not valid.')
ValueError: Array shape is not valid.