The I2MC algorithm was designed to accomplish fixation classification in data across a wide range of noise levels and when periods of data loss may occur.
For more information, questions, or to check whether we have updated to a better version, e-mail: royhessels@gmail.com / dcnieho@gmail.com. I2MC is available from www.github.com/royhessels/I2MC
A Python implementation of the I2MC algorithm is available at https://github.com/dcnieho/I2MC_Python, please ensure to read the readme before using it.
Most parts of the I2MC algorithm are licensed under the Creative Commons Attribution 4.0 (CC BY 4.0) license. Some functions are under MIT license, and some may be under other licenses.
Quick start guide for adopting this script for your own data:
-
Build an import function specific for your data (see importTobiiTX300.m for an example).
-
Change line 141 of I2MC.m to use your new import function. The format should be:
data.time
for the timestampdata.left.X
&data.left.Y
for left gaze coordinatesdata.right.X
&data.right.Y
for right gaze coordinatesdata.average.X
&data.average.Y
for average of right and left gaze coordinatesYou may provide coordinates from both eyes, only the left, only the right, or only the average. Gaze coordinates should be in pixels, timestamps should be in milliseconds
-
Adjust the variables in the "necessary variables" section to match your data
-
Adjust the variables in the "optional variables" section. For data with sampling frequencies > 120Hz, the defaults should be a good starting point. For 120Hz data, we suggest to start with opt.downsamples set to [2 3 5], and opt.chebyOrder to 7. For data with lower frequencies, we suggest to start with opt.downsampFilter set to 0, opt.downsamples to [2 3], and opt.steptime to 0.
-
Run the algorithm
Note: Signal Processing Toolbox is required for the default downsampling procedure. If not available, set opt.downsampFilter
to 0. This will use a different downsampling procedure.
Tested on MATLAB R2012a, R2014b, R2016a, R2017a, & R2019b