Here is the function that calculates the folding index and intrinsic curvature index of the surface -
https://github.com/freesurfer/freesurfer/blob/dev/utils/mrisurf_metricProperties.cpp#L11335
int MRIScomputeCurvatureIndices(MRIS *mris, double *pici, double *pfi)
{
int vno;
VERTEX *vertex;
double k1, k2, ici, fi, area, Kmax, Kmin;
ici = fi = 0.0;
for (vno = 0; vno < mris->nvertices; vno++) {
vertex = &mris->vertices[vno];
if (vertex->ripflag) {
continue;
}
if (vno == Gdiag_no) {
DiagBreak();
}
k1 = (double)vertex->k1;
k2 = (double)vertex->k2;
area = (double)vertex->area;
if (vertex->K > 0) {
ici += area * (double)vertex->K;
}
Kmax = (double)fabs(k1);
Kmin = (double)fabs(k2);
fi += area * Kmax * (Kmax - Kmin);
}
*pfi = fi / (4.0 * M_PI);
*pici = ici / (4.0 * M_PI);
return (NO_ERROR);
}
From: freesurfer-bounces@nmr.mgh.harvard.edu <freesurfer-bounces@nmr.mgh.harvard.edu>
On Behalf Of littlepotato
Sent: Friday, August 2, 2024 5:40 AM
To: freesurfer@nmr.mgh.harvard.edu
Subject: [Freesurfer] Inquiry on Calculation Methods for Folding Index and Intrinsic Curvature Index in mris_anatomical_stats
External Email - Use Caution
Dear FreeSurfer Support Team,
I am writing to inquire about the specific methods and formulas used by the mris_anatomical_stats function
in Freesurfer to calculate the Folding Index and Intrinsic Curvature Index for each label based on annotation files. Could you please provide detailed information on: the algorithms or mathematical formulas used to calculate the Folding Index and Intrinsic
Curvature Index for each label.
If there are any available documentation, publications, or example commands illustrating these calculations, I would greatly appreciate your sharing them.
Thank you for your assistance.
Best regards,
Amber Lin