Hello FreeSurfers, during the course of my diploma thesis i wrote a few R functions around FreeSurfer, mainly for group analysis of FreeSurfer surface data in R. I thought i'd just contribute the code here, on the off chance that someone may find it useful, and despite the code quality (i wrote this as part of me learning R, so it may actually set your house on fire and so on). It could be of use for someone already working in R and looking to bring FreeSurfer data into it, or someone looking for an alternative to QDEC and the plots created by QDEC. Hardware requirement is not entirely modest unfortunately; it eats up about 8G of memory and takes about 15 minutes around here.
Here's an example of how it is used: ############################ BEGIN R CODE ############################## # Presupposing that you have a dataframe 'data' containing your group # description and that all subjects have been processed in ~/subjects ### Group analysis with lm ### # Run the model. This takes some time and memory. lm <- freesurfer.group.analysis.lm(data = data, formula = thickness ~ Age + Gender + Diagnosis, hemi = "lh", fwhm = 10, template = "fsaverage", freesurfer_subjects_dir = "~/subjects") # Extract t values from the model, do FDR correction t <- freesurfer.group.analysis.lm.stats(lm, type.of.value = "t", correction="fdr") # Write the t values to mgh files and open them in FreeSurfer's freeview freesurfer.group.analysis.lm.stats.to.mgh(t, hemi = "lh", template = "fsaverage", freesurfer_subjects_dir = "~/subjects", launch.freeview = TRUE) # Write the t values to .dset ASCII files and open them in AFNI's SUMA freesurfer.group.analysis.lm.stats.to.suma(t, hemi = "lh", template = "fsaverage", freesurfer_subjects_dir = "~/subjects", launch.suma = TRUE) # Make nice plots for vertex #1000 freesurfer.group.analysis.lm.plot(lm, vertex = 1000, interactive = TRUE) ### Group analysis with QDEC ### # Call QDEC freesurfer.group.analysis.QDEC(data = data, freesurfer_subjects_dir = "~/subjects") ### Extract stats ### # Get segmentation stats segstats <- freesurfer.get.segstats(subjects = data$ID, freesurfer_subjects_dir = "~/subjects") ############################## END R CODE ############################## i uploaded the R package here, i called it freesurfR: https://www.nitrc.org/projects/freesurf_r/ thanks also goes to Heath Pardoe, whose code for reading and writing MGH files (also posted on this list) i was allowed to include. regards, Andreas _______________________________________________ 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.