Cortical surface generated with TVB Processing Pipeline returning dead kernel...how to generate a continous mesh?

57 views
Skip to first unread message

MICHELANGELO FABBRIZZI

unread,
Oct 9, 2023, 5:57:18 AM10/9/23
to TVB Users

Dear TVB Experts,

I am using my data generated with the TVB Processing Pipeline "Convert2TVB" ( https://github.com/BrainModes/tvb-pipeline-converter/blob/master/convert2TVB_format.py ), however I saw that the notebooks return a "Dead kernel" and shutdown when I load my cortex and run simulations: this made me double check my cortex surface (cortex.zip).

I noticed that the above script removes all the triangles and vertices that were generated by Freesurfer as pial surfaces but actually do not correspond to a cortical surface (lines 131-153 of the above referenced script), meaning they correspond to a point in space where a subcortical region or white matter (e.g. Corpus Callosum) are present.

cortex_own_data.png

This creates a warning also in the GUI (see attached).

GUI_warning.png

Comparing it with the TVB default cortex, it looks quite evident that this latter is instead a closed surface for each hemisphere (also as shown in Sanz Leon 2015).

cortex_TVB_default.png

It is also interesting to note that the requirements of the TVB "gdist" function ( https://github.com/the-virtual-brain/tvb-gdist ) state: In order for the algorithm to work the mesh must not be numbered incorrectly or disconnected or of somehow degenerate", which looks consistent with the dead kernel I receive with the cortex generated using the TVB Processing Pipeline script referenced above.
 

I had a look also to the TVB Users Google Forum, finding the following discussion https://groups.google.com/g/tvb-users/c/Hs8ZmkmT59E/m/Ughj9ET4SCIJ , where a similar topic was treated.
I was wondering if, in order to make TVB work correctly, it is necessary to modify the script above to:

1- leave also the part of surfaces generated by Freesurfer (and currently removed by the script), in order to have a closed surface for each hemisphere;
2- create a new dummy region in the Connectome Weights and Mean Tract Length (sort of "Non-cortical dummy surfaces region") assigning a value of 0 for both Weigths and Mean Length;
3- assign 0 to Areas.txt and an average position to Centres.txt;
4- assign the corresponding value of the dummy region to the vertices in region_mapping.txt
5- assign a value of 0 to the EEGProjection.mat of these subcortical and white matter regions even if MNE provide a value different from zero (so that they do not contribute in the forward model to the EEG signal).

I would be grateful if you could suggest an answer to the below points:

  • would a Mean length of 0 for the dummy region generate error in TVB?
  • the position in Centres.txt... in order to save time can they be set to a position of (0,0,0)...would it generate issues?
  • is it possible to assign different value of model parameters to this dummy region (respect to those assigned to the other actual cortical areas) so that in the simulation it does not generate activity? this would also avoid that the dummy region transmit signals through the local connectivity to the adjacent actual cortical regions...or do you have any other suggestion?
  • is the process in points 1 to 5 above (or similar) an operation you normally do when creating new cortical surfaces, or how do you normally treat them ?
  • do you have any already available version of the script for doing this, or can you provide one?

Greatly appreciated, thanks again,

Mic
Reply all
Reply to author
Forward
0 new messages