Skip to main content

Noise-robust fixation classification (I2MC).

Project description

Downloads Citation Badge PyPI Latest Release image DOI

Noise-robust fixation classification (I2MC) - Python implementation

About I2MC

Original description of the MATLAB implementation from https://github.com/royhessels/I2MC:

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.

Cite as: Hessels, R.S., Niehorster, D.C., Kemner, C., & Hooge, I.T.C. (2017). Noise-robust fixation detection in eye-movement data - Identification by 2-means clustering (I2MC). Behavior Research Methods, 49(5): 1802–1823. doi: 10.3758/s13428-016-0822-1

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

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.

About this implementation

Install using:

pip install I2MC

or

python -m pip install I2MC

This is a Python implementation of the I2MC algorithm (tested on version Python 3.8). For the original Matlab implementation see https://github.com/royhessels/I2MC

Most functions were initially ported to Python by Jonathan van Leeuwen. Diederick Niehorster and Roy Hessels updated a few functions to match the MATLAB version more closely and ported what remained.

Note that this Python implementation may be slightly different from the MATLAB version. Among the differences is a different implementation of Chebyshev filtering (the Python version uses scipy.signal.cheby1(), the MATLAB version uses cheby1 from the signal processing toolbox).

The differences in output between the MATLAB and Python implementation of I2MC are visualized in Figure 1 and 2. As is visible from these Figures, slight differences in output between the MATLAB and Python implementations remain. As such, when using this Python implementation, please cite the original paper (see above) and mention that this Python implementation is used.

Figure 1. Number of fixations, mean fixation duration and SD of fixation duration for the MATLAB and Python I2MC implementations using the RMS noise data set from the original I2MC paper. I2MC is the original published version of I2MC. I2MC2019 is a slightly modified version (the latest version from the original I2MC repository as of this writing [v2.0.3]). _python stands for the Python implementation in this repository. _nc stands for No Chebychev filtering. For more information on this specific analysis see Figure 3 in the original I2MC paper and the corresponding text.

Figure 2. Classified fixations for episodes of example eye-tracking data using the MATLAB and Python I2MC implementations. I2MC is the original published version of I2MC. I2MC2019 is a slightly modified version (the latest version from the original I2MC repository as of this writing [v2.0.3]). _python stands from the Python implementation in this repository. _nc stands for No Chebychev filtering. For more information on this specific analysis see Figure 8 in the original I2MC paper and the corresponding text.

Disclaimer

We take no responsibility for the correct working of this Python implementation of I2MC. We provide this solely as a service to the part of the (scientific) community that prefers Python over MATLAB. As we are not dedicated Python programmers, we welcome any bug reports, as well as improved implementations of I2MC.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

i2mc-2.2.6.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

I2MC-2.2.6-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file i2mc-2.2.6.tar.gz.

File metadata

  • Download URL: i2mc-2.2.6.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.10

File hashes

Hashes for i2mc-2.2.6.tar.gz
Algorithm Hash digest
SHA256 a97f8f5648bf0f352e4570f752aaf6eb12e78ae47caa3fc61e29906b1a5ba304
MD5 6780251e523925ef3cd75e88d65a4694
BLAKE2b-256 6bfe834b29df896790c262fd70f63ad43b89e3a31cff76e81393831e2be625cf

See more details on using hashes here.

File details

Details for the file I2MC-2.2.6-py3-none-any.whl.

File metadata

  • Download URL: I2MC-2.2.6-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.10

File hashes

Hashes for I2MC-2.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 419a9b5311bb1a68bcf77125c04edcf44ddb79313b0f3ce3e1ffa5df8f826515
MD5 a1e2c51355fe9d56b8b6cdc83427ccec
BLAKE2b-256 280e29068c9cedeb7587649af777483f738a66dbe3267b8894e22117a75078e9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page