################################################################# https://pages.ucsd.edu/~msereno/csurf/fsaverage-labels/README.txt ################################################################# The subdirectories here include resources for: Sereno MI, Sood MR and Huang R-S (2022) Topological Maps and Brain Computations From Low to High. Frontiers in System Neuroscience 16:787737 https://pages.ucsd.edu/~msereno/papers/MapsLowToHigh22.pdf (doi: 10.3389/fnsys.2022.787737) These include: (1) the CsurfMaps1 parcellation (FreeSurfer *.annot files and *.label.gii files for FreeSurfer average subject, fsaverage, along with the HCP-MMP1 for comparison), (2) atlas movies, including annotated individual area map movies, and (3) hi-res illustrations of parcellation and map data. Here is the directory tree: CsurfMaps1-atlas-movies: README.txt video1-CsurfMaps1-atlas-flat-LH.mp4 video2-CsurfMaps1-atlas-flat-RH.mp4 video3-CsurfMaps1-atlas-flat-both.mp4 video4-CsurfMaps1-rotate-folded.mp4 video5-CsurfMaps1-rotate-inflated.mp4 VisPhaseMovie-flat-both.mp4 CsurfMaps1-illustrations: README.txt CsurfMaps1-areas,maps.gif fig1-PatchyLocalConnections.jpg fig2-OwlMonkeyAreas.jpg fig3-AudVersusVisSomMaps.jpg fig4-HowAudSysPlaysWithMaps.jpg fig5-CsurfMaps1-areas.jpg fig6-CsurfMaps1-maps.jpg lower-res: fig5-CsurfMaps1-areas-sm.jpg fig6-CsurfMaps1-maps-sm.jpg CsurfMaps1-parcellation: README.txt Abbreviations-Table1.pdf CsurfColorLUT.txt CsurfMaps1.ctab.txt lh-CsurfMaps1.annot lh-CsurfMaps1.label.gii rh-CsurfMaps1.annot rh-CsurfMaps1.label.gii mapdata-labels README.txt lh-mapsvisADJPHA.label lh-mapsvisADJPHA.label.gii rh-mapsvisADJPHA.label rh-mapsvisADJPHA.label.gii mapdata: README.txt lh-mapsvis.cols lh-mapsaud.cols lh-mapssom.cols rh-mapsvis.cols rh-mapsaud.cols rh-mapssom.cols HCP-MMP1-parcellation: README.txt lh.HCP-MMP1.annot rh.HCP-MMP1.annot HCP-MMP1-areas-lh.tiff HCP-MMP1-borders-lh.tiff HCP-MMP1-areas-rh.tiff HCP-MMP1-borders-rh.tiff bin README.txt update-csurf update-fsaverage These files are all included in the standard csurf distribution in: $CSURF_DIR/subjects/fsaverage-ADDITIONS That directory also includes the updated/improved surface and area files used in Sereno, Sood, and Huang (2022): (a) updated fsaverage inflated_avg surfaces The artifactual large triangles at the inflated_avg 'poles' in the standard FreeSurfer distribution are fixed. (b) more veridical average .area files These are made from inflated_avg, the average of inflated surfaces instead of the average of smoothwm/white. Surface-averaging folded surfaces (e.g., smoothwm) removes idiosyncratic sulcal 'crinkles', reducing overall average surface area (mostly in the sulci) by almost one-third. The inflated_avg surface avoids this by first inflating, then averaging. (c) True-area flattenings made from the fixed inflate_avg surfaces These flattened surfaces are much closer to actual area than the ones in the standard FreeSurfer distribution. These surface and area files can be safely added to the corresponding subdirectories of a user-writable fsaverage subject dir (label, surf). The "update-fsaverage" sh script in the bin subdir above automates this, assuming that you have installed csurf, and that fsaverage is writable. It moves aside/renames the original inflate_avg and area files by appending an ORIG suffix. There is also an "update-csurf" script to automate installing or updating csurf. These scripts are included in the csurf distribution (in $CSURF_DIR/bin/noarch). #### Revision History ## 26 Oct 2022 -- made complete fsaverage subject tarfile w/updates done: https://pages.ucsd.edu/~msereno/csurf/fsaverage.tgz ## 26 Oct 2022 -- new update-fsaverage also copies HCP and mapdata files ## 22 Sep 2022 -- update-csurf sh script to automate csurf updates ## 17 Sep 2022 -- update-fsaverage sh script to automate add parcellation/surfs ## 31 Jul 2022 -- fix stale CsurfMaps1.ctab.txt (only 102 regions, sorry again!) ## 24 Jul 2022 -- add CsurfMaps1.ctab.txt final coltable w/o 'holes' (sorry!) ## 28 Apr 2022 -- add VisPhaseMovie-flat-both.mp4 ## 24 Apr 2022 -- better movie/fig names, caption README.txt's, all hi-res figs ## 31 Mar 2022 -- added folded/inflated rotate movies ## 28 Mar 2022 -- subdirectories, better filenames ## 24 Mar 2022 -- update all files, subdivide 7b-PIC (vis, vis/som), add PHt ## 15 Mar 2022 -- touch up S-II in LH (lh-CsurfMaps1.annot, lh-CsurfMaps1.gii) ## 10 Mar 2022 -- update all files -- rename various areas for priority: ventral occip: VMV2 => VO1, VMV1 => VO2 parietal: SPV2 => IPS4, SPV1 => IPS5 lateral occip: LO3 => OPA medial visual: PCV1 => aPCu1, PCV2 => aPCu2 -- subdivide multisensory area: PCaud => PZa,s and PZa,v,s -- new multisensory area: pCI -- fix somatosensory area name error: VS => PV -- subdivide area 1 => 1_face, 1_hand, 1_foot ## 22 Jan 2022 -- regularize names (PCV,STV: a,b->1,2; MBelt->MB) ## 15 Jan 2022 -- update CsurfMaps1 rh/lh annot files updated after 1st review -- add new ?h.cortex2a.patch.flat added used in paper -- incl copy of CsurfColorLUT.txt (also in $CSURF_DIR/lib/lut) ## 21 Nov 2021 -- update CsurfMaps1 rh/lh annot files for freeview compat -- CsurfMaps1 rh/lh converted to GIFTI ## 30 Sep 2021 -- initial upload ########################################################################### (1) The CsurfMaps1 and HCP-MMP1 parcellations ########################################################################### The left and right hemisphere CsurfMaps1 and HCP-MMP1 parcellations here are MGH format 'annotation' files that can be used in either csurf or MGH freesurfer. They specify a region idnum, region name, and a color for each vertex in the fsaverage surfaces. The CsurfMaps1 parcellation files were also converted to GIFTI (*.label.gii) files: CsurfMaps1-parcellation: Abbreviations-Table1.pdf -- table of abbreviations on one page CsurfColorLUT.txt -- directs construction csurf/freesurfer annotation CsurfMapsl.ctab.txt -- final sequential color table w/ID 'holes' rm'd lh-CsurfMaps1.annot -- native freesurfer annotation lh-CsurfMaps1.label.gii -- via mris_convert rh-CsurfMaps1.annot -- native freesurfer annotation rh-CsurfMaps1.label.gii -- via mris_convert HCP-MMP1-parcellation: HCP-parcellations/lh.HCP-MMP1.annot HCP-parcellations/rh.HCP-MMP1.annot All of these files are now included in the csurf distribution, in $CSURF_DIR/subjects/fsaverage-ADDITIONS. The HCP MMP1 parcellation was resampled to the full ic7.tri fsaverage resolution by Kathyrn Mills, using Workbench and MGH Freesurfer tools, as described here: https://figshare.com/articles/HCP-MMP1_0_projected_on_fsaverage/3498446 See below for examples of how to use either parcellation in csurf. ########################################################################### (2) Movie atlas of CsurfMaps1 parcellation ########################################################################### Annotated movie atlases of the 117 annotated individual area maps in each hemisphere on the flattened surface are here: video1-CsurfMaps1-atlas-flat-LH.mp4 video2-CsurfMaps1-atlas-flat-RH.mp4 and pasted side-by-side into a single cropped movie for easier LH/RH comparisons here: video3-CsurfMaps1-atlas-flat-both.mp4 White arrows indicate the average gradient of the map coordinate for each area ("lower/horiz/upper" for visual maps, "low f./high f." for auditory maps, and "foot/hand/face" for somatosensory maps. The color scale for the map data is: green for lower visual field, low frequency, or leg/foot; blue for horizontal meridian, mid frequency, or arm/hand, and red for upper field, high frequency, or face. There are also folded and unfolded rotating movies of the parcellation and the mapping data, and an animated phase movie of the retinotopy data. video4-CsurfMaps1-rotate-folded.mp4 video5-CsurfMaps1-rotate-inflated.mp4 VisPhaseMovie-flat-both.mp4 The "mapdata" subdirectory here contains the final mapping data for visual, auditory, and somatomotor areas. The data is in the form of vertexwise intrinsic RGB colors (before lighting calculations have been applied) for each modality and hemisphere (6 files, ASCII), so the map colors can be exactly recreated. The README.txt in the mapdata subdirectory describes the file format and includes instructions for how to display the files in csurf (or other programs). Finally, the "mapdata-labels" directory contains minimally processed phase data is available for the visual mapping data, in the form of complex-valued freesurfer label files (amplitude=1) and real-valued GIFTI angle files (radians), with the angles as if both hemispheres represented the right hemifield (so angle=0 is horizontal meridian for both hemispheres). See the README.txt there for rationale for and the details of the phase corrections. ########################################################################### (3) High resolution paper figures ########################################################################### High resolution images of Figures 5 (areas) and 6 (mapdata) from Sereno, Sood, and Huang (2022) are here: fig1-PatchyLocalCOnnections.jpg fig2-OwlMonkeyAreas.jpg fig3-AudVersusVisSomMaps.jpg fig4-HowAudSysPlaysWithMaps.jpg fig5-CsurfMaps1-areas.jpg fig6-CsurfMaps1-maps.jpg CsurfMaps1-areas,maps.gif (GIF blinks between Fig5 and Fig6) lower-res: fig5-CsurfMaps1-areas-sm.jpg (same as above, lower res) fig6-CsurfMaps1-maps-sm.jpg (same as above, lower res) ########################################################################### Using Annotation Files to Extract Data on fsaverage surface ########################################################################### The first use for the annotation files: rh-CsurfMaps1.annot lh-CsurfMaps1.annot or their GIFTI equivalents rh-CsurfMaps1.label.gii lh-CsurfMaps1.label.gii is to extract data that has already been resampled to the fsaverage surface (individual subject data or average data). Here is how to view the annotation on fsaverage using csurf tksurfer: 1) download (or unzip) the CsurfMap1 .annot files 2) put them in: $SUBJECTS_DIR/fsaverage/labels/ 3) select subject "fsaverage", open it with SURFACE button 4) select an annoation from the "label:" dropdown, for example: ~/label/rh-CsurfMaps1.annot ~/label/rh.HCP-MMP1.annot they will be near bottom, .annot's sort below .labels 5) display .annot with "D" on "label:" line The transparency can be adjusted with "tran" (tksurfer upper left -- 255 is opaque), curvature can changed from red/green to grays with the "overlay" tick (or toggled on/off with the "curv" tick at upper middle). To toggle viewing just the region borders versus filled-in regions, shift-middle-click on the tick to the left of "label:". You can extract or operate on fsaverage data from one (or all) of the annotation regions using modified clicks on the "W" button on the "label:" line (see R-click help for "W" button, which also brings up a button bar with all the options). To select one annotation region, click it (the region name will appear in the log). This loads the unique RGB color of the region into the r,g,b fields to the right of MESH. To get a pop-up with the region name, double-middle-click it. Just a few of the csurf operations available for an annotation region (on the "label:" line) are: "W" -> write ASCII label of curr vertex data under region "T" -> extract timecourses from raw 3d BRIK for region "S" -> extract stats from raw 3d stats BRIK for region "X" -> run searchlight cross-correlation for region For example, to write out a label file containing the currently displayed vertex data for one HCP parcellation region, first click the region (to load its r,g,b value), then shift-left-click the "W" button on the "label:" line, which calls: write_val_annotedcol_vertices To write out separate label files containing the currently displayed vertex data for *every* HCP parcellation region in a single step, use shift-ctrl-left-click on the "W" button on the "label:" line, which calls: write_val_annotedcols_vertices Instead of a full label file, a label file prefix: .../{lh,rh}- should be entered in the "label:" entry before clicking "W". This will generate a series of 180 label files (for infix "TEST") that look like this: .../rh-TEST_R_V1_ROI.label .../rh-TEST_R_MST_ROI.label .../rh-TEST_R_V6_ROI.label .../rh-TEST_R_V2_ROI.label [etc] ########################################################################### Using Annotation Files to Extract Data on an Individual Surface ########################################################################### FreeSurfer annotation files for fsaverage (e.g., {rh,lh}-CsurfMaps1.annot, {rh,lh}-HCP-MMP1.annot) can be resampled to an individual subject to make a subject-specific .annot file by using the csurf tcl script: annot2roi.tcl (from "scripts:" dropdown). This uses mri_surf2surf. The subject-specific .annot file can use used as above to extract subject-specific surface data. Optionally, if individual subject functional data has been analyzed in csurf, the .annot regions can be converted to 3D AFNI BRIK ROIs (at the resolution of the functional data), with settable normal search parameters (e.g., to use standard AFNI 3D tools). These will be 3D ROIs containing voxels that were picked out by the normal search policy (at specified distance(s) along the surface normal. Select the script #/annot2roi.tcl from the "tcl:" entry dropdown, click GO, then do a R-click on the popup to get a help panel. Conversely, data from an individual subject can be resampled and displayed on fsaverage. If a retinotopic mapping experiment, for example, has been analyzed using csurf, open the rendering panel with SessionTools -> View Functional Data and tick "fsavg" (upper right) before clicking the SURFACE-STATS button to resample that subject's data onto fsaverage and display it. ############################################################################ New full fsaverage flattenings made from fixed inflated_avg (7 July 2014) ############################################################################ The tarfile fsaverage-ADDITIONS.tgz, contains new flattenings of the fixed FreeSurfer 5.3 fsaverage inflated_avg (fixes giant triangles at icosahedral poles), along with fixed inflated_avg area files. The inflated_avg area (from averaging inflated surfaces) does not suffer from the 1/3 reduction in area caused by averaging folded surfaces. This reduction occurs because cross-subject variation in secondary folds (crinkling in major sulci) is simplified in the folded surface average, which reduces cortical convolution and thus cortical surface area. Note that this area reduction is unevenly distributed; it is more profound in sulcal cortex, where 3D variability is greater. This explains why fsaverage inflated is so much smaller and differently shaped than any individual inflated surface. The inflated_avg surface avoids this shrinkage by first inflating, then averaging the inflated surfaces. However, the standard fsaverage inflated_avg surface has some gigantic triangles at the north and south poles of the icosahedral supertessellation (visible if you click MESH). These have been corrected by locking all the vertices in {rh,lh}-FIX-POLES.label and allowing the two patches at the poles to relax into a uniform mesh. Once these files have been intalled, when a region is filled, the "orig surf" area in the csurf popup report does not have to be corrected. Here is how to install the files, assuming that: 1) env var SUBJECTS_DIR is defined 2) fsaverage is in SUBJECTS_DIR 3) you can write to SUBJECTS_DIR/fsaverage 4) you untar'd fsaverage-adds.tgz in your home dir If 1-4 are true, just copy and paste the lines below into a terminal. This moves aside the existing, installs the new ones, then copies the new ones to explicitly-named for easy revert and live comparison: ### mv existing aside (req's write permission to fsaverage) cd $SUBJECTS_DIR/fsaverage/surf mv lh.inflated_avg lh.inflated_avgORIG mv lh.area lh.areaORIG mv rh.inflated_avg rh.inflated_avgORIG mv rh.area rh.areaORIG ### install new files cd ~/fsaverage-adds cp surf/lh.inflated_avg $SUBJECTS_DIR/fsaverage/surf cp surf/lh.area $SUBJECTS_DIR/fsaverage/surf cp surf/lh.cortex2.patch.3d $SUBJECTS_DIR/fsaverage/surf cp surf/lh.cortex2.patch.flat $SUBJECTS_DIR/fsaverage/surf cp surf/lh.cortex2a.patch.flat $SUBJECTS_DIR/fsaverage/surf cp surf/rh.inflated_avg $SUBJECTS_DIR/fsaverage/surf cp surf/rh.area $SUBJECTS_DIR/fsaverage/surf cp surf/rh.cortex2.patch.3d $SUBJECTS_DIR/fsaverage/surf cp surf/rh.cortex2.patch.flat $SUBJECTS_DIR/fsaverage/surf cp surf/rh.cortex2a.patch.flat $SUBJECTS_DIR/fsaverage/surf cp label/rh-FIX-POLES.label $SUBJECTS_DIR/fsaverage/label cp label/lh-FIX-POLES.label $SUBJECTS_DIR/fsaverage/label ### make explicitly named for revert: cd $SUBJECTS_DIR/fsaverage/surf cp lh.inflated_avg lh.inflated_avgNEW cp lh.area lh.areaNEW cp rh.inflated_avg rh.inflated_avgNEW cp rh.area rh.areaNEW How the new inflations and flattenings were generated: (1) start with default fsaverage inflated_avg (2) make label with hole just over defects in north and south 'poles' (3) tksurfer: display label, F3 "locklabel", SHRINK 40 (4) save new inflated_avg surfaces (5) make new 'original' area files from them (6) re-cut, re-flatten them (2 flattenings each) (7) adjust flattened view settings in csurf Here are the csurf Views settings: Preferences -> Expert Preferences -> Views tab Default Viewing/Bitmap Position: FULL/CORTEX RH rotate: 96 scale: 0.95 xmov: 5.0 ymov: 2.0 LH rotate: 79 scale: 0.95 xmov: 2.0 ymov: 2.0 The View setting adjust the patches so that they roughly correspond to the orientation of a lateral view of an inflated hemisphere. The views number are saved in */$scandir/scripts/position.tcl when preferences are saved with: Preferences -> Expert Preferences -> Save and are used every time a flattened surface is read/displayed (or RESTORE'd), so that the surface will be presented in the same useful orientation, so that bitmaps can be directly overlapped. The relaxation cuts are not extremely deep, so the surface can't relax to its full original surface area. The curr surface area of the two flattenings are 73% of the surface area of the original cut 3d inflated_avg surface. To correct for this in a final image (e.g., to show same-scale inflated and flattened), scale up the flat bitmaps 1.17x (relative to the 1 cm scale bar on the image): 1.17 = sqrt(1/0.73) Or, alternatively, you can just shrink the scale bar by: 0.854 = sqrt(0.73/1) The square root is because scale factors are 1D linear, not area. ########################################################################### Kathryn Mills notes on resampling HCP-MMP1 to fsaverage ########################################################################### https://figshare.com/articles/HCP-MMP1_0_projected_on_fsaverage/3498446 25.07.2016, 13:58 (GMT) by Kathryn Mills 3 Files fsaverage_pial+HCP-MMP1.jpg (74.49 kB) lh.HCP-MMP1.annot (1.26 MB) rh.HCP-MMP1.annot (1.26 MB) HCP-MMP1.0 projected on fsaverage Version 2 25.07.2016, 13:58 (GMT) by Kathryn Mills Hi All! Following instructions gathered via twitter and the HCP message board, I've projected the new HCP-MMP1.0 parcellation onto fsaverage. I have attached the annotation files here and detailed my process below: 1. Download the correct data from BALSA: https://balsa.wustl.edu/WN56 2. Download the correct spheres from the HCP github page: this is detailed here: https://www.mail-archive.com/hcp-users%40humanconnectome.org/msg02890.html 3. Using workbench, convert parcellation dabel.nii file label.gii file: wb_command -cifti-separate Q1-Q6_RelatedParcellation210.L.CorticalAreas_dil_Colors.32k_fs_LR.dlabel.nii COLUMN -label CORTEX_LEFT Q1-Q6_RelatedParcellation210.L.CorticalAreas_dil_Colors.32k_fs_LR.label.gii wb_command -cifti-separate Q1-Q6_RelatedParcellation210.R.CorticalAreas_dil_Colors.32k_fs_LR.dlabel.nii COLUMN -label CORTEX_RIGHT Q1-Q6_RelatedParcellation210.R.CorticalAreas_dil_Colors.32k_fs_LR.label.gii 4. Using workbench, convert label.gii file to fsaverage space: wb_command -label-resample Q1-Q6_RelatedParcellation210.L.CorticalAreas_dil_Colors.32k_fs_LR.label.gii L.sphere.32k_fs_LR.surf.gii fs_L-to-fs_LR_fsaverage.L_LR.spherical_std.164k_fs_L.surf.gii BARYCENTRIC left.fsaverage164.label.gii wb_command -label-resample Q1-Q6_RelatedParcellation210.R.CorticalAreas_dil_Colors.32k_fs_LR.label.gii R.sphere.32k_fs_LR.surf.gii fs_R-to-fs_LR_fsaverage.R_LR.spherical_std.164k_fs_R.surf.gii BARYCENTRIC right.fsaverage164.label.gii 5. Using freesurfer, convert files from gii to annot: mris_convert --annot left.fsaverage164.label.gii fs_L-to-fs_LR_fsaverage.L_LR.spherical_std.164k_fs_L.surf.gii lh.HCP-MMP1.annot mris_convert --annot right.fsaverage164.label.gii fs_R-to-fs_LR_fsaverage.R_LR.spherical_std.164k_fs_R.surf.gii rh.HCP-MMP1.annot 6. Rejoice and share! REFERENCES http://www.nature.com/nature/journal/vaop/ncurrent/full/nature18933.html COMMENTS I added a volumetric version based on this repository here https://figshare.com/articles/HCP-MMP1_0_projected_on_MNI2009a_GM_volumetric_in_NIfTI_format/3501911 26/07/2016 08:33 by Andreas Horn