External Email - Use Caution Hi, probably you need to add MATLAB path to Freesurfer's $PATH variable. The following link may help:
http://www.manuelschutze.com/?p=297 On 18 May 2018 at 12:02, subin oh <subin.b...@gmail.com> wrote: > External Email - Use Caution > > Hello, > > I downloaded the Freesurfer ver 5.3.0 and installed it on Mac OS. > > I run *"recon-all -s <subject> -local GI" *for my subject.. > And I run *Matlab Script* about "*Start up" , "make_outer_surface", > "make_roi_paths" , "find correspoding center" *as follows: > > But it exited with same *errors* as follows: > > Please Could you tell me the way for correcting that error and to > calculate the LGI? > > *the error message is..* > > Thank you very much. > > Best Regards, > > Subin > > =====================[Mac OS Error]====================== > > -------- freesurfer-Darwin-lion-stable-pub-v5.3.0 -------- > > Setting up environment for FreeSurfer/FS-FAST (and FSL) > > FREESURFER_HOME /Applications/freesurfer > > FSFAST_HOME /Applications/freesurfer/fsfast > > FSF_OUTPUT_FORMAT nii.gz > > SUBJECTS_DIR /Applications/freesurfer/subjects > > MNI_DIR /Applications/freesurfer/mni > > FSL_DIR /usr/local/fsl > > Chans-iMac:subjects roh$ recon-all -s test01_t1 -localGI > > Subject Stamp: freesurfer-Darwin-lion-stable-pub-v5.3.0 > > Current Stamp: freesurfer-Darwin-lion-stable-pub-v5.3.0 > > INFO: SUBJECTS_DIR is /Applications/freesurfer/subjects/test01_t1 > > Actual FREESURFER_HOME /Applications/freesurfer > > -rw-rw-r-- 1 roh staff 468188 May 18 16:01 /Applications/freesurfer/ > subjects/test01_t1/test01_t1/scripts/recon-all.log > > Darwin Chans-iMac.local 13.4.0 Darwin Kernel Version 13.4.0: Mon Jan 11 > 18:17:34 PST 2016; root:xnu-2422.115.15~1/RELEASE_X86_64 x86_64 > > /Applications/freesurfer/subjects/test01_t1/test01_t1/surf > > #-------------------------------------------- > > #@# Local Gyrification Index lh Fri May 18 17:36:00 KST 2018 > > \n mris_compute_lgi --i lh.pial \n > > ERROR: Matlab is required to run mris_compute_lgi! > > Darwin Chans-iMac.local 13.4.0 Darwin Kernel Version 13.4.0: Mon Jan 11 > 18:17:34 PST 2016; root:xnu-2422.115.15~1/RELEASE_X86_64 x86_64 > > > recon-all -s test01_t1 exited with ERRORS at Fri May 18 17:36:00 KST 2018 > > > For more details, see the log file /Applications/freesurfer/ > subjects/test01_t1/test01_t1/scripts/recon-all.log > > To report a problem, see http://surfer.nmr.mgh.harvard. > edu/fswiki/BugReporting > > =============================================================== > > *the Matlab Scripts are..* > > =================[Matlab Script: StartUp]====================== > > % freesurfer start > > > > fshome = getenv('FREESURFER_HOME'); > > fsmatlab = sprintf('%s/matlab',fshome); > > if (exist(fsmatlab) == 7) > > path(path,fsmatlab); > > end > > clear fshome fsmatlab; > > =================[Matlab Script: make_outer_surface]================ > > function make_outer_surface (filled_volume, se_diameter, output_surface) > > > > % Original Author: Marie Schaer > > % Date: 2007/11/14 > > % > > % This function takes as an input the binary volume resulting of the > > % filling of the any surface (usually the pial one) using mris_fill, and > > % will close the sulci using morphological operation, with a sphere as the > > % structural element. > > % > > % Parameters: > > % se_diameter is the diameter of the sphere (in mm), use 15mm by default > > % to close the sulci. > > % > > % Utilities to write the surface to the freesurfer format are modified from > > % "freesurfer_write_surf" (from Darren Weber's bioelectromagnetism > toolbox), > > % according to a suggestion by Don Hagler in FreeSurfer's mailing list on > > % August 3, 2007. > > % > > % Example: make_outer_surface('lh.pial.mgz',15,'lh.outer-pial') > > > > > > fprintf('reading filled volume...\n'); > > vol=MRIread(filled_volume); > > volume=vol.vol; > > volume(volume==1)=255; > > fprintf('closing volume...\n'); > > > > % first apply a very soft gaussian filter, with sigma = 1mm, in order to > > % facilitate the closing > > Gaussian = fspecial('gaussian',[2 2],1); > > image_f=zeros(256,256,256); > > for slice=1:256 > > temp = double(reshape(volume(:,:,slice),256,256)); > > image_f(:,:,slice) = conv2(temp,Gaussian,'same'); > > end > > image2=zeros(size(image_f)); > > image2(image_f<=25)=0; > > image2(image_f>25)=255; > > > > se=strel('ball',se_diameter,se_diameter); > > BW2=imclose(image2,se); > > thresh = max(BW2(:))/2; > > i=find(BW2<=thresh); > > BW2(i)=0; > > i=find(BW2>thresh); > > BW2(i)=255; > > > > [f,v] = isosurface(BW2,100); > > > > v2=[129-v(:,1) v(:,3)-129 129-v(:,2)]; % in order to cope with the > different orientation > > v=v2; > > > > fprintf('morphological closing done.\n'); > > fprintf('writing outer surface...\n'); > > > > fname=output_surface; > > vert = v; > > face = f - 1; > > vnum = size(vert,1); > > fnum = size(face,1); > > > > % open it as a big-endian file > > fid = fopen(fname, 'wb', 'b'); > > TRIANGLE_FILE_MAGIC_NUMBER = 16777214; > > fwrite3(fid, TRIANGLE_FILE_MAGIC_NUMBER); > > > > % Ouput a couple of text lines with creation date > > str = sprintf('created from matlab on %s\n',datestr(now)); > > fwrite(fid, str,'char'); > > fwrite(fid, vnum,'int32'); > > fwrite(fid, fnum,'int32'); > > > > % reshape vert into column array and write > > vert = reshape(vert',size(vert,1)*size(vert,2),1); > > fwrite(fid, vert,'float32'); > > > > % reshape face into column array and write > > face = reshape(face',size(face,1)*size(face,2),1); > > fwrite(fid, face,'int32'); > > fclose(fid) ; > > return > > end > > =================[Matlab Script: make_roi_paths]=============== > > function make_roi_paths(pial, outersmoothed, radius, stepsize, outdir, > flagf) > > > > % Original Author: Marie Schaer > > % Date: 2007/11/15 > > % > > % This function creates multiple circular regions of interest on the outer > > % surface, measures their area (saved in matlab format) and save path file > > % containing a set of > > % corresponding points on the pial surface. The path files are required as > > % an input to the mri_path2label function > > % > > % Parameters: > > % radius: radius of the circular region of interest on the outer surface. > > % Most appropriate values between 20 and 25 mm, further documentation > > % available in the validation publication: "A surface-based approach to > > % quantify local cortical gyrification" by Schaer M, Bach Cuadra M, > > % Tamarit L, Eliez E, Thiran JP, IEEE Transactions on Medical Imaging, 2007 > > % > > % Utilities to transfer points on the pial surface calls > "mesh_vertex_nearest", > > % a function written by Darren Weber. Utilities to compute matrix adjacency > > % for the pial surface calls "mesh_adjacency", a program first written by > > % Darren Weber, then modified by G. Peyre (source: toolbox_graph on > > % mathworks) > > % > > % Example: make_roi_paths('lh.pial','lh.outer-pial-smoothed',25,100,/tmp) > > > > t0 = cputime; > > > > disp('loading datas ...') > > [mesh_total.vertices, mesh_total.faces]=freesurfer_read_surf(pial); > > [mesh_outer.vertices, mesh_outer.faces]=freesurfer_ > read_surf(outersmoothed); > > > > disp('preparing outer mesh structure ...') > > mesh_outer = createMeshFacesOfVertex (mesh_outer.vertices, > mesh_outer.faces) > > > > disp('preparing pial mesh structure ...') > > A = mesh_adjacency(mesh_total); > > > > % Keep track of the area for each individual region of interest on the > > % outer surface: > > nbVertices = size(mesh_outer.vertices,1); > > areasOuterROI = zeros(nbVertices,1); > > areasOuterROI = sparse (areasOuterROI); > > clear nbVertices > > > > > > % Circular regions of interest are defined each 100 vertex on the outer > > % surface. Due to the high resolution of the outer mesh (average face area > > % of ~0.3mm2), calculations are computed each 1 on 100 vertex, to avoid > > % high redundancies and optimize calculation time. > > > > for iV = 1:stepsize: length(mesh_outer.vertices) > > > > disp(['... creating path file for vertex ',num2str(iV),' / ' > ,num2str(length(mesh_outer.vertices))]) > > > > % ------ Part 1: find the ROI on the enveloppe -------------- > > > > [verticesInROI, facesInROI] = getVerticesAndFacesInSphere(mesh_outer, > iV, radius); > > > > % In rare case, the intersection of the enveloppe with the sphere > result > > % in two regions of interest: the one that we expect, circular and > > % centered in iV; and an aberrant one at the bottom of the sphere > > % (e.g. near the superior sagittal vault). The next step is used to > > % control for that and keep only the radial region centered at iV. > > facesListOuterGeo = MakeGeodesicOuterROI (mesh_outer, iV, facesInROI); > > > > % Find the perimeter of the outer ROI > > verticesOuterGeo=unique(facesListOuterGeo(:)); > > perim=setdiff(verticesOuterGeo,verticesInROI); > > > > % Measure its area > > areaOuterROI = getFacesArea(mesh_outer,facesListOuterGeo); > > > > areasOuterROI(iV) = areaOuterROI; > > > > if (mod(iV,50*stepsize) == 1) > > fname = [outdir '/' pial '.area_intermed.mat']; > > save(fname, 'areasOuterROI') ; > > disp(['area file for outer ROIs saved at ',num2str(iV)]) > > end > > > > clear verticesInROI facesInROI facesListOuterGeo verticesOuterGeo > areaOuterROI > > > > > > % ----- Part2: Define the corresponding set of points on the pial > surface: > > % Transfer a few points of the perimeter of the hulls ROI from > > % the envelope to the pial surface, and save them as path file. > > step = 7; > > [verticeslist] = SearchProjectionOnPial(mesh_total, mesh_outer, > perim, step); > > > > % reorganize the set of points in the right order to input them to > > % mri_path2label > > reorglist = reorganize_verticeslist (mesh_total, A, mesh_outer, > perim, verticeslist, step); > > lindex = reorglist'; > > lxyz = mesh_total.vertices(lindex,:); lindex= lindex-1; > > > > > > p = sprintf ('%06d', iV); > > write_path(lxyz, lindex,[outdir '/' pial '.' p '.path']); > > > > clear verticeslist lindex lxyz > > > > end > > > > disp(['saving area file in matlab format... ']) > > fname = [outdir '/' pial '.outer_ROIs_area.mat']; > > save(fname, 'areasOuterROI') > > > > disp('DONE.') > > deltaT = cputime - t0 > > > > % indicate successful completion by deleting flagfile > > delete(flagf); > > > =======================[find corresponding_center_FSformat] > ========================= > > t0 = cputime; > > > > [mesh_pial.vertices, mesh_pial.faces] = freesurfer_read_surf(pial); > > [mesh_outer.vertices, mesh_outer.faces] = freesurfer_read_surf( > outersmoothed); > > > > fidv = fopen([outdir '/' pial '.center.vertices'], 'w') ; > > > > for iV = 1 :stepsize: length(mesh_outer.vertices) > > > > centerSeed=mesh_vertex_nearest(mesh_pial.vertices, > mesh_outer.vertices(iV,:)); > > centerSeed = centerSeed - 1; %FreeSurfer-s vertex are 0-based > > p = sprintf ('%06d', iV); > > > > fid = fopen([outdir '/' pial '.' p '.center'], 'w') ; > > fprintf(fid,'%d\n',centerSeed); > > fclose(fid) ; > > > > fprintf(fidv,'%s\n',p); > > end > > > > fclose(fidv) ; > > > > deltaT = cputime - t0 > > > > % indicate successful completion by deleting flagfile > > delete(flagfile); > > > ============================================================ > ======================= > > > _______________________________________________ > Freesurfer mailing list > Freesurfer@nmr.mgh.harvard.edu > https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer > > > The information in this e-mail is intended only for the person to whom it > is > addressed. If you believe this e-mail was sent to you in error and the > e-mail > contains patient information, please contact the Partners Compliance > HelpLine at > http://www.partners.org/complianceline . If the e-mail was sent to you in > error > but does not contain patient information, please contact the sender and > properly > dispose of the e-mail. > > -- Buse M. Ürgen Ph.D. Candidate Neuroscience Graduate Program National Magnetic Resonance Research Center (UMRAM) & Aysel Sabuncu Brain Research Center Bilkent University Ankara, 06800 Turkey
_______________________________________________ Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer The information in this e-mail is intended only for the person to whom it is addressed. If you believe this e-mail was sent to you in error and the e-mail contains patient information, please contact the Partners Compliance HelpLine at http://www.partners.org/complianceline . If the e-mail was sent to you in error but does not contain patient information, please contact the sender and properly dispose of the e-mail.