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