multimatch-gaze

multimatch-gaze: The MultiMatch algorithm for gaze path comparison in Python - Published in JOSS (2019)

https://github.com/adswa/multimatch_gaze

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 14 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

closember bids

Scientific Fields

Mathematics Computer Science - 37% confidence
Last synced: 6 months ago · JSON representation

Repository

Reimplementation of Matlabs MultiMatch toolbox (Dewhurst et al., 2012) in Python

Basic Info
  • Host: GitHub
  • Owner: adswa
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 4.2 MB
Statistics
  • Stars: 37
  • Watchers: 3
  • Forks: 5
  • Open Issues: 3
  • Releases: 4
Created over 7 years ago · Last pushed about 5 years ago
Metadata Files
Readme Contributing License Zenodo

README.md

Build Status <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> All Contributors <!-- ALL-CONTRIBUTORS-BADGE:END --> codecov Documentation PyPI version License: MIT Build status DOI DOI made-with-datalad

multimatch-gaze

Reimplementation of MultiMatch toolbox (Dewhurst et al., 2012) in Python.

The MultiMatch method proposed by Jarodzka, Holmqvist and Nyström (2010), implemented in Matlab as the MultiMatch toolbox and validated by Dewhurst and colleagues (2012) is a vector-based, multi-dimensional approach to compute scan path similarity.

For a complete overview of this software, please take a look at the Documentation

The method represents scan paths as geometrical vectors in a two-dimensional space: Any scan path is build up of a vector sequence in which the vectors represent saccades, and the start and end position of saccade vectors represent fixations. Two such sequences (which can differ in length) are compared on the five dimensions 'vector shape', 'vector length' (saccadic amplitude), 'vector position', 'vector direction' and 'fixation duration' for a multidimensional similarity evaluation (all in range [0, 1] with 0 denoting maximal dissimilarity and 1 denoting identical scan paths on the given measure). The original Matlab toolbox was kindly provided via email by Dr. Richard Dewhurst and the method was ported into Python with the intent of providing an open source alternative to the matlab toolbox.

Installation instructions

It is recommended to use a dedicated virtualenv:

# create and enter a new virtual environment (optional)
virtualenv --python=python3 ~/env/multimatch
. ~/env/multimatch/bin/activate

multimatch-gaze can be installed via pip. To automatically install multimatch-gaze with all dependencies (pandas, numpy, scipy and argparse), use:

# install from pyPi
pip install multimatch-gaze

Support/Contributing

Bug reports, feedback, or any other contribution are always appreciated. To report a bug, request a feature, or ask a question, please open an issue. Pull requests are always welcome. In order to run the test-suite of multimatch-gaze locally, use pytest, and run the following command in the root of the repository:

python -m pytest -s -v

For additional information on how to contribute, checkout CONTRIBUTING.md.

Examplary usage of multimatch-gaze in a terminal

required inputs: - two tab-separated files with nx3 fixation vectors (x coordinate in px, y coordinate in px, duration) - screensize in px (x dimension, y dimension)

multimatch-gaze data/fixvectors/segment_10_sub-19.tsv data/fixvectors/segment_10_sub-01.tsv 1280 720

optional inputs:

if scan path simplification should be performed, please specify in addition - --amplitude-threshold (-am) in px - --direction-threshold (-di) in degree - --duration-threshold (-du) in seconds

Example usage with grouping:

multimatch-gaze data/fixvectors/segment_10_sub-19.tsv data/fixvectors/segment_10_sub-01.tsv 1280 720 --direction-threshold 45.0 --duration-threshold 0.3 --amplitude-threshold 147.0

REMoDNaV helper:

Eye movement event detection results produced by REMoDNaV can be read in natively by multimatch-gaze. To indicate that datafiles are REMoDNaV outputs, supply the --remodnav parameter.

multimatch-gaze data/remodnav_samples/sub-01_task-movie_run-1_events.tsv data/remodnav_samples/sub-01_task-movie_run-2_events.tsv 1280 720 --remodnav

REMoDNaV can classify smooth pursuit movements. As a consequence, when using REMoDNaV output, users need to indicate how these events should be treated. By default, multimatch-gaze will discard pursuits. In some circumstances, however, it can be useful to include pursuit information. Moving stimuli for example would evoke a pursuit movement during visual intake. When specifying the --pursuit keep parameter, the start and end points of pursuits will be included in the scan path.

multimatch-gaze data/remodnav_samples/sub-01_task-movie_run-1_events.tsv data/remodnav_samples/sub-01_task-movie_run-2_events.tsv 1280 720 --remodnav --pursuit keep

References:

Dewhurst, R., Nyström, M., Jarodzka, H., Foulsham, T., Johansson, R. & Holmqvist, K. (2012). It depends on how you look at it: scanpath comparison in multiple dimensions with MultiMatch, a vector-based approach. Behaviour Research Methods, 44(4), 1079-1100. doi: 10.3758/s13428-012-0212-2.

Dijkstra, E. W. (1959). A note on two problems in connexion withgraphs. Numerische Mathematik, 1, 269–271. https://doi.org/10.1007/BF01386390

Jarodzka, H., Holmqvist, K., & Nyström, M. (eds.) (2010). A vector-based, multidimensional scanpath similarity measure. In Proceedings of the 2010 symposium on eye-tracking research & applications (pp. 211-218). ACM. doi: 10.1145/1743666.1743718

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Yaroslav Halchenko

🤔

Michael Hanke

💻

mflan48

💻 🐛

LFaggi

💻 🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

Owner

  • Name: Adina Wagner
  • Login: adswa
  • Kind: user
  • Location: planet earth
  • Company: @psychoinformatics-de

Psychoinformagician in training :bug:

JOSS Publication

multimatch-gaze: The MultiMatch algorithm for gaze path comparison in Python
Published
August 16, 2019
Volume 4, Issue 40, Page 1525
Authors
Adina S. Wagner ORCID
Institute of Neuroscience and Medicine, Brain & Behaviour (INM-7), Research Centre Jülich, Jülich, Germany
Yaroslav O. Halchenko ORCID
Department of Psychological and Brain Sciences, Dartmouth College, Dartmouth, NH, United States
Michael Hanke ORCID
Institute of Neuroscience and Medicine, Brain & Behaviour (INM-7), Research Centre Jülich, Jülich, Germany, Institute of Systems Neuroscience, Medical Faculty, Heinrich Heine University Düsseldorf, Düsseldorf, Germany
Editor
Kyle Niemeyer ORCID
Tags
eyetracking scan path fixation saccade

GitHub Events

Total
  • Issues event: 1
  • Watch event: 4
Last Year
  • Issues event: 1
  • Watch event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 337
  • Total Committers: 6
  • Avg Commits per committer: 56.167
  • Development Distribution Score (DDS): 0.098
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Adina Wagner a****r@t****e 304
Michael Hanke m****e@g****m 18
allcontributors[bot] 4****] 8
Mike Flanagan m****8@g****m 5
Kyle Niemeyer k****r@g****m 1
Adina Wagner a****a@w****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 30
  • Total pull requests: 25
  • Average time to close issues: 30 days
  • Average time to close pull requests: 1 day
  • Total issue authors: 12
  • Total pull request authors: 5
  • Average comments per issue: 2.03
  • Average comments per pull request: 0.8
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mih (15)
  • adswa (3)
  • yarikoptic (3)
  • LGurtner (1)
  • kmamine (1)
  • YValarieAnne (1)
  • Craana (1)
  • FelixHenninger (1)
  • Bioso (1)
  • LFaggi (1)
  • oliver-contier (1)
  • mflan48 (1)
Pull Request Authors
  • adswa (15)
  • allcontributors[bot] (4)
  • mih (3)
  • mflan48 (2)
  • kyleniemeyer (1)
Top Labels
Issue Labels
good first issue (2) enhancement (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 67 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 4
  • Total maintainers: 1
pypi.org: multimatch-gaze

Multidimensional scan path comparison

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 67 Last month
Rankings
Dependent packages count: 10.0%
Stargazers count: 11.7%
Forks count: 14.2%
Average: 17.2%
Dependent repos count: 21.7%
Downloads: 28.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • argparse *
  • numpy *
  • pandas *
  • scipy *
setup.py pypi
  • numpy *
  • pandas *
  • scipy *