Thanks for your email Matt. Do you happen to know the names of those packages?
Given that our custom parcellation is in the form of an annotation file (rather than a gifti file), can you suggest a way to get our custom parcellation from an atlas surface to a subject's volume using Connectome Workbench? Alternatively, is there a way to generate a custom parcellation using Connectome Workbench? Simon On 12 November 2015 at 03:33, Glasser, Matthew <glass...@wustl.edu> wrote: > I think this might be way more complicated than is needed. I believe > there are structural extended packages that would allow you to run a > FreeSurfer command without needing to replicate FreeSurfer files. As for > how to get a parcellation from an atlas surface to a subject’s volume, I > could tell you how to do that using Connectome Workbench tools, file > formats, and our atlas, but I don’t know the details for FreeSurfer. > > Peace, > > Matt. > > From: Simon Baker <simonteba...@gmail.com> > Date: Tuesday, November 10, 2015 at 11:34 PM > To: "hcp-users@humanconnectome.org" <hcp-users@humanconnectome.org> > Cc: "Harms, Michael" <mha...@wustl.edu>, Timothy Coalson <tsc...@mst.edu>, > Matt Glasser <glass...@wustl.edu> > > Subject: Re: [HCP-Users] Custom parcellation for HCP data > > Thanks for the pointers Michael, Tim, and Matt. We've tried a range of > approaches but we're still having trouble creating the custom parcellation. > Below describes the updated version of our pipeline. Although this version > improves the spatial alignment between the custom parcellation and the T1w > volume, the quality of the parcellation is still lacking compared to e.g. > ribbon.nii.gz. > > -- > > 1. Create a high-resolution annotation (parcellation) by randomly > parcellating the fsaverage surface into N regions of approximately equal > volume. > > 2. Map the annotation from the source subject (fsaverage) to the target > subject using mri_surf2surf. > > mri_surf2surf --srcsubject fsaverage --hemi xh --sval-annot highres.annot > --trgsubject ${SUBJECTID} --srcsurfreg sphere.reg --trgsurfreg > /MNINonLinear/Native/${SUBJECTID}.X.sphere.native.surf.gii --tval > xh.highres.annot > > 3. Obtain vertices and faces data from > /MNINonLinear/Native/${SUBJECTID}.X.white.native.surf.gii > > 4. Using the vertices and faces data obtained in step 3 as inputs for the > write_surf Matlab function, create the xh.white surface file. > > 5. Obtain thickness data from > /MNINonLinear/Native/${SUBJECTID}.X.thickness.native.shape.gii > > 6. Using T1wImage = /T1w/T1w_acpc_dc_restore.nii.gz and T1wImageBrain = > /T1w/T1w_acpc_dc_restore_brain.nii.gz, we replicate some of the steps found > in HCP's FreeSurferPipeline.sh in order to generate /mri/orig.mgz. > Specifically: > > #Make Spline Interpolated Downsample to 1mm > Mean=`fslstats T1wImageBrain -M` > > flirt -interp spline -in T1wImage -ref T1wImage -applyisoxfm 1 -out > T1wImage_1mm > > applywarp --rel --interp=spline -i T1wImage -r T1wImage_1mm > --premat=/usr/local/fsl/etc/flirtsch/ident.mat -o T1wImage_1mm > > applywarp --rel --interp=nn -i T1wImageBrain -r T1wImage_1mm > --premat=/usr/local/fsl/etc/flirtsch/ident.mat -o T1wImageBrain_1mm > > fslmaths T1wImage_1mm -div $Mean -mul 150 -abs T1wImage_1mm > > mri_convert T1wImage_1mm /mri/orig/001.mgz > > #Initial Recon-all Steps > recon-all -subjid ${SUBJECTID} -sd ${SUBJECTS_DIR} -motioncor -talairach > -nuintensitycor -normalization > > 7. Convert the custom parcellation annotation into a custom parcellation > volume using mri_label2vol, with /mri/orig.mgz serving as the output > template volume. > > mri_label2vol --annot xh.custom.annot --temp /mri/orig.mgz --identity > --proj frac 0 1 .1 --subject ${SUBJECTID} --hemi xh --o xh_custom_vol.mgz > > 8. Resample and reslice the custom parcellation volume. > > mri_convert --resample_type nearest --reslice_like T1wImage > xh_custom_vol.mgz xh_custom_vol.nii > > 9. Combine the resampled and resliced custom parcellation volume from each > hemisphere to create a single custom parcellation volume (custom_vol.nii). > > 10. Find c_ras offset and generate matrix > > MatrixX=$(mri_info --cras T1wImage | cut -d " " -f 1) > MatrixY=$(mri_info --cras T1wImage | cut -d " " -f 2) > MatrixZ=$(mri_info --cras T1wImage | cut -d " " -f 3) > echo "1 0 0 ""$MatrixX" > c_ras_xfm.mat > echo "0 1 0 ""$MatrixY" >> c_ras_xfm.mat > echo "0 0 1 ""$MatrixZ" >> c_ras_xfm.mat > echo "0 0 0 1" >> c_ras_xfm.mat > > 11. Invert the c_ras offset matrix > > convert_xfm -omat c_ras_xfm_inv.mat -inverse c_ras_xfm.mat > > 12. Apply the inverted c_ras offset matrix to the custom parcellation > volume (custom_vol.nii) > > flirt -in custom_vol.nii -applyxfm -init c_ras_xfm_inv.mat -out > parcellation.nii -paddingsize 0.0 -interp nearestneighbour -ref T1wImage > > 13. [Not sure why, but then we had to] Warp the output from the previous > step in order to align the parcellation with T1wImage (i.e., > /T1w/T1w_acpc_dc_restore.nii.gz). > > applywarp --rel --interp=nn -i parcellation.nii -r T1wImage -w > /MNINonLinear/xfms/standard2acpc_dc.nii.gz -o parcellation_native.nii > > 14. See attached screenshot2.jpeg showing /T1w/T1w_acpc_dc_restore, > /T1w/ribbon (blue), and parcellation_native (yellow). > > -- > > The alignment of parcellation_native is a bit off and it appears to be > grainy/pixelated. Do you have any suggestions as to why this is the case? > > Kind regards, > > Simon Baker > Brain & Mental Health Laboratory > Institute of Cognitive & Clinical Neuroscience > Monash University > > > On 20 October 2015 at 09:20, Glasser, Matthew <glass...@wustl.edu> wrote: > >> FreeSurfer might do it if you simply specify the correct extension, but >> if not, mris_convert will do the conversion. >> >> Peace, >> >> Matt. >> >> From: <hcp-users-boun...@humanconnectome.org> on behalf of Timothy >> Coalson <tsc...@mst.edu> >> Date: Monday, October 19, 2015 at 4:44 PM >> To: "Harms, Michael" <mha...@wustl.edu> >> Cc: "hcp-users@humanconnectome.org" <hcp-users@humanconnectome.org>, >> Simon Baker <simonteba...@gmail.com> >> Subject: Re: [HCP-Users] Custom parcellation for HCP data >> >> Additionally, if you generate a cortex-only parcellation, you shouldn't >> need to put it into a volume to use it with the HCP CIFTI data. However, >> I'm not sure how to get freesurfer to write GIFTI label files, and unless >> you generate it on the fs_LR 32k mesh, you'll need to resample it (via >> registered sphere surfaces). If you can get the label data into matlab, >> though, you can write it as .func.gii files, and use wb_command to turn it >> into label.gii, and then to .dlabel.nii for use with CIFTI data. Some care >> may be needed to keep the right and left labels separate. >> >> Tim >> >> >> On Mon, Oct 19, 2015 at 10:08 AM, Harms, Michael <mha...@wustl.edu> >> wrote: >> >>> >>> Hi, >>> Did you see this recent thread on the list: >>> http://www.mail-archive.com/hcp-users%40humanconnectome.org/msg01910.html >>> >>> cheers, >>> -MH >>> >>> -- >>> Michael Harms, Ph.D. >>> ----------------------------------------------------------- >>> Conte Center for the Neuroscience of Mental Disorders >>> Washington University School of Medicine >>> Department of Psychiatry, Box 8134 >>> 660 South Euclid Ave. Tel: 314-747-6173 >>> St. Louis, MO 63110 Email: mha...@wustl.edu >>> >>> From: Simon Baker <simonteba...@gmail.com> >>> Date: Sunday, October 18, 2015 8:16 PM >>> To: "hcp-users@humanconnectome.org" <hcp-users@humanconnectome.org> >>> Subject: [HCP-Users] Custom parcellation for HCP data >>> >>> Hi all, >>> >>> We want to create a custom parcellation for use with the connectome >>> project data. However, we have not been able to achieve accurate spatial >>> alignment between the random parcellation volume and the T1w volume. >>> Specifically, there appears to be an "offset," possibly due to a mismatch >>> between the origin of these volumes. In the following we describe the >>> relevant steps of our pipeline. Please suggest any changes that might help >>> to resolve the issue. >>> >>> 1. Create a high-resolution annotation (parcellation) by randomly >>> parcellating the fsaverage surface into N regions of approximately equal >>> volume. >>> >>> 2. Map the annotation from the source subject (fsaverage) to the target >>> subject using mri_surf2surf. >>> >>> mri_surf2surf --srcsubject fsaverage --hemi lh --sval-annot >>> highres.annot --trgsubject ${SUBJECTID} --srcsurfreg sphere.reg >>> --trgsurfreg >>> ${SUBJECTS_DIR}/${SUBJECTID}/MNINonLinear/Native/${SUBJECTID}.L.sphere.native.surf.gii >>> --tval lh.highres.annot >>> >>> [repeat for rh] >>> >>> 3. Obtain vertices and faces data from >>> ${SUBJECTS_DIR}/${SUBJECTID}/MNINonLinear/Native/${SUBJECTID}.L.white.native.surf.gii >>> >>> [repeat for rh] >>> >>> 4. Using the vertices and faces data obtained in step 3 as inputs for >>> the write_surf Matlab function, create the lh.white surface file. >>> >>> [repeat for rh] >>> >>> 5. Obtain thickness data from >>> ${SUBJECTS_DIR}/${SUBJECTID}/MNINonLinear/Native/${SUBJECTID}.L.thickness.native.shape.gii >>> >>> [repeat for rh] >>> >>> 6. Convert the annotation into a volume using mri_label2vol. >>> >>> mri_label2vol --annot lh.highres.annot --temp >>> ${SUBJECTS_DIR}/${SUBJECTID}/T1w/T1w_acpc_dc_restore.nii.gz --identity >>> --proj frac 0 1 .1 --subject ${SUBJECTID} --hemi lh --o vol_lh.nii >>> >>> [repeat for rh] >>> >>> 7. Configure the volume (remove unwanted ROIs). >>> >>> [repeat for rh] >>> >>> 8. Combine the configured volumes from each hemisphere to create the >>> random parcellation volume. >>> >>> 9. Overlay the random parcellation volume on the template volume. >>> >>> See attached screenshot.jpeg showing the misalignment between the random >>> parcellation volume and the template volume. >>> >>> Kind regards, >>> >>> Simon Baker >>> Brain & Mental Health Laboratory >>> Institute of Cognitive & Clinical Neuroscience >>> Monash University >>> >>> _______________________________________________ >>> HCP-Users mailing list >>> HCP-Users@humanconnectome.org >>> http://lists.humanconnectome.org/mailman/listinfo/hcp-users >>> >>> >>> ------------------------------ >>> >>> The materials in this message are private and may contain Protected >>> Healthcare Information or other information of a sensitive nature. If you >>> are not the intended recipient, be advised that any unauthorized use, >>> disclosure, copying or the taking of any action in reliance on the contents >>> of this information is strictly prohibited. If you have received this email >>> in error, please immediately notify the sender via telephone or return mail. >>> >>> _______________________________________________ >>> HCP-Users mailing list >>> HCP-Users@humanconnectome.org >>> http://lists.humanconnectome.org/mailman/listinfo/hcp-users >>> >> >> _______________________________________________ >> HCP-Users mailing list >> HCP-Users@humanconnectome.org >> http://lists.humanconnectome.org/mailman/listinfo/hcp-users >> > > _______________________________________________ HCP-Users mailing list HCP-Users@humanconnectome.org http://lists.humanconnectome.org/mailman/listinfo/hcp-users