help
help > RE: voxel-to-voxel First-Level Analysis Error
Nov 30, 2015 09:11 PM | Alfonso Nieto-Castanon - Boston University
RE: voxel-to-voxel First-Level Analysis Error
Hi Thinh,
Regarding question (1), the files vvPC_Subject*.matc files contain those subject-specific eigenvectors. You can convert those to .nii files using conn_matc2nii(filename) to make it simpler to read and work with those values. For each subject and condition you get N volumes, each representing a different eigenvector. If you reshape those into a matrix B with size [Number-of-voxels/vertices by Number-of-components], then you can (up to memory limitations) compute the voxel-by-voxel (or vertex-by-vertex) connectivity matrix as B*B' (B times B transpose). Without running into memory limitations, if you simply want to get the connectivity between two particular voxels/vertices, you can compute that as the vector multiplication B(voxel1,:)*B(voxel2,:)'. Also, yes, if you are running surface-level analyses the matrix B will contain a row for each vertex/node in fsaverage space, sorted in the same way as the standard FreeSurfer level-8 tessellation, and concatenating first the left-hemisphere and then the right-hemisphere vertices.
And regarding question (2), I believe this was addressed in this thread (http://www.nitrc.org/forum/message.php?m...). Basically you should import into CONN the fsaverage-space .annot file in Setup.ROIs (instead of the subject-specific .annot files).
Hope this helps
Alfonso
Originally posted by Thinh Nguyen:
Regarding question (1), the files vvPC_Subject*.matc files contain those subject-specific eigenvectors. You can convert those to .nii files using conn_matc2nii(filename) to make it simpler to read and work with those values. For each subject and condition you get N volumes, each representing a different eigenvector. If you reshape those into a matrix B with size [Number-of-voxels/vertices by Number-of-components], then you can (up to memory limitations) compute the voxel-by-voxel (or vertex-by-vertex) connectivity matrix as B*B' (B times B transpose). Without running into memory limitations, if you simply want to get the connectivity between two particular voxels/vertices, you can compute that as the vector multiplication B(voxel1,:)*B(voxel2,:)'. Also, yes, if you are running surface-level analyses the matrix B will contain a row for each vertex/node in fsaverage space, sorted in the same way as the standard FreeSurfer level-8 tessellation, and concatenating first the left-hemisphere and then the right-hemisphere vertices.
And regarding question (2), I believe this was addressed in this thread (http://www.nitrc.org/forum/message.php?m...). Basically you should import into CONN the fsaverage-space .annot file in Setup.ROIs (instead of the subject-specific .annot files).
Hope this helps
Alfonso
Originally posted by Thinh Nguyen:
Hi Alfonso,
Thank you for the helpful reply, the attachment you provided had indeed solved the error.
This bring me to some other questions (I apologize if these questions have been addressed elsewhere, I just couldn't find one that is specific):
1) A voxel-to-voxel connectivity matrix is obviously very large in size (which, to my knowledge, has been stored in its eigenvalue/vector equivalent), is there anyway I could access this matrix, extract it out as matlab structure, in order to do further processing on it? If so, if I do a surface-based analysis, would each of the row (represents 1 voxel or source point) corresponds to a node on the fsaverage surface (or the subject-specific pial surface?) in the same indexing order?
2) If (1) cannot be done, then down-sample the functional volume into ~1000 voxels to use as ~1000 ROIs seems to be the answer (as the connectivity matrix is output for ROI-to-ROI analysis), if so, can I do it in subject-specific surface-based manner (using "label" files in Freesurfer "label" folder)? I tried using ".annot" from Freesurfer (../label/lh.aparc.annot) as ROI but received this ERROR:
ERROR DESCRIPTION:
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Error in conn_annot2nii (line 50)
data=[log.data{ifile(1)}(:) log.data{ifile(2)}(:)];
Error in conn_getinfo (line 13)
filename=conn_annot2nii(filename);
Error in conn_file (line 3)
[V,str,icon,filename]=conn_getinfo(filename);
Error in conn (line 1543)
V=conn_file(deblank(filename(1,:)));
Error in conn_filesearchtool (line 131)
if length(h.callback)>1, feval(h.callback{1},h.callback{2:end},names); else, feval(h.callback{1},names); end
CONN v.15.g
SPM12 + DEM FieldMap MEEGtools
Matlab v.2013a
storage: 324.1Gb available
Again thank you very much for your assistance, this is a wonderful toolbox to use.
Best,
Thinh Nguyen
Thank you for the helpful reply, the attachment you provided had indeed solved the error.
This bring me to some other questions (I apologize if these questions have been addressed elsewhere, I just couldn't find one that is specific):
1) A voxel-to-voxel connectivity matrix is obviously very large in size (which, to my knowledge, has been stored in its eigenvalue/vector equivalent), is there anyway I could access this matrix, extract it out as matlab structure, in order to do further processing on it? If so, if I do a surface-based analysis, would each of the row (represents 1 voxel or source point) corresponds to a node on the fsaverage surface (or the subject-specific pial surface?) in the same indexing order?
2) If (1) cannot be done, then down-sample the functional volume into ~1000 voxels to use as ~1000 ROIs seems to be the answer (as the connectivity matrix is output for ROI-to-ROI analysis), if so, can I do it in subject-specific surface-based manner (using "label" files in Freesurfer "label" folder)? I tried using ".annot" from Freesurfer (../label/lh.aparc.annot) as ROI but received this ERROR:
ERROR DESCRIPTION:
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Error in conn_annot2nii (line 50)
data=[log.data{ifile(1)}(:) log.data{ifile(2)}(:)];
Error in conn_getinfo (line 13)
filename=conn_annot2nii(filename);
Error in conn_file (line 3)
[V,str,icon,filename]=conn_getinfo(filename);
Error in conn (line 1543)
V=conn_file(deblank(filename(1,:)));
Error in conn_filesearchtool (line 131)
if length(h.callback)>1, feval(h.callback{1},h.callback{2:end},names); else, feval(h.callback{1},names); end
CONN v.15.g
SPM12 + DEM FieldMap MEEGtools
Matlab v.2013a
storage: 324.1Gb available
Again thank you very much for your assistance, this is a wonderful toolbox to use.
Best,
Thinh Nguyen
Threaded View
Title | Author | Date |
---|---|---|
Thinh Nguyen | Nov 25, 2015 | |
Alfonso Nieto-Castanon | Nov 26, 2015 | |
Thinh Nguyen | Nov 30, 2015 | |
Alfonso Nieto-Castanon | Nov 30, 2015 | |
Thinh Nguyen | Dec 1, 2015 | |
Alfonso Nieto-Castanon | Dec 1, 2015 | |