{ "info": { "author": "Adina Wagner", "author_email": "adina.wagner@t-online.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![Build Status](https://travis-ci.com/adswa/multimatch_gaze.svg?branch=master)](https://travis-ci.com/adswa/multimatch_gaze)\n[![codecov](https://codecov.io/gh/adswa/multimatch_gaze/branch/master/graph/badge.svg)](https://codecov.io/gh/adswa/multimatch_gaze)\n[![Documentation](https://readthedocs.org/projects/multimatch/badge/?version=latest)](https://multimatch.readthedocs.io/en/latest/)\n[![PyPI version](https://badge.fury.io/py/multimatch-gaze.svg)](https://badge.fury.io/py/multimatch-gaze)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Build status](https://ci.appveyor.com/api/projects/status/wrphckxqjrfut703?svg=true)](https://ci.appveyor.com/project/adswa/multimatch_gaze)\n[![DOI](https://zenodo.org/badge/151181532.svg)](https://zenodo.org/badge/latestdoi/151181532)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.01525/status.svg)](https://doi.org/10.21105/joss.01525)\n\n\n# multimatch-gaze\n## Reimplementation of MultiMatch toolbox (Dewhurst et al., 2012) in Python.\n\nThe **MultiMatch** method proposed by Jarodzka, Holmqvist and Nystr\u00f6m (2010),\nimplemented in Matlab as the MultiMatch toolbox and validated by Dewhurst\nand colleagues (2012) is a vector-based, multi-dimensional approach to\ncompute scan path similarity.\n\nFor a complete overview of this software, please take a look at the\n[Documentation](https://multimatch.readthedocs.io/en/latest)\n\nThe method represents scan paths as geometrical vectors in a two-dimensional\nspace: Any scan path is build up of a vector sequence in which the vectors\nrepresent saccades, and the start and end position of saccade vectors represent\nfixations. Two such sequences (which can differ in length) are compared on the\nfive dimensions **'vector shape'**, **'vector length'** (saccadic amplitude),\n**'vector position'**, **'vector direction'** and **'fixation duration'** for a\nmultidimensional similarity evaluation (all in range [0, 1] with 0 denoting\nmaximal dissimilarity and 1 denoting identical scan paths on the given measure).\nThe original Matlab toolbox was kindly\nprovided via email by Dr. Richard Dewhurst and the method was ported into Python\nwith the intent of providing an open source alternative to the matlab toolbox.\n\n### Installation instructions\n\nIt is recommended to use a dedicated virtualenv:\n\n # create and enter a new virtual environment (optional)\n virtualenv --python=python3 ~/env/multimatch\n . ~/env/multimatch/bin/activate\n\nmultimatch-gaze can be installed via pip. To automatically install multimatch-gaze with all\ndependencies ([pandas](https://pandas.pydata.org/), [numpy](https://www.numpy.org/), and\n[argparse](https://docs.python.org/3/library/argparse.html)), use:\n\n # install from pyPi\n pip install multimatch-gaze\n\n\n### Support/Contributing\n\nBug reports, feedback, or any other contribution are always appreciated.\nTo report a bug, request a feature, or ask a question, please open an\n[issue](https://github.com/adswa/multimatch_gaze/issues/new).\n[Pull requests](https://help.github.com/en/articles/creating-a-pull-request-from-a-fork)\nare always welcome. In order to run the test-suite of ``multimatch-gaze`` locally,\nuse [pytest](https://docs.pytest.org/en/latest/), and run the following command in the\nroot of the repository:\n\n``python -m pytest -s -v``\n\nFor additional information on how to contribute, checkout\n[CONTRIBUTING.md](https://github.com/adswa/multimatch_gaze/blob/master/CONTRIBUTING.md).\n\n\n### Examplary usage of multimatch-gaze in a terminal\n\n**required inputs:**\n- two tab-separated files with nx3 fixation vectors (x coordinate in px, y coordinate in px, duration)\n- screensize in px (x dimension, y dimension)\n\n`` multimatch-gaze data/fixvectors/segment_10_sub-19.tsv data/fixvectors/segment_10_sub-01.tsv 1280 720 ``\n\n\n\n**optional inputs:**\n\nif scan path simplification should be performed, please specify in addition\n- --amplitude-threshold (-am) in px\n- --direction-threshold (-di) in degree\n- --duration-threshold (-du) in seconds\n\nExample usage with grouping:\n\n`` multimatch-gaze data/fixvectors/segment_10_sub-19.tsv\ndata/fixvectors/segment_10_sub-01.tsv 1280 720 --direction-threshold 45.0\n--duration-threshold 0.3 --amplitude-threshold 147.0 ``\n\n**REMoDNaV helper:**\n\nEye movement event detection results produced by [REMoDNaV](https://github.com/psychoinformatics-de/remodnav)\ncan be read in natively by multimatch-gaze. To indicate that datafiles are REMoDNaV outputs, supply the\n``--remodnav`` parameter.\n\n`` multimatch-gaze data/remodnav_samples/sub-01_task-movie_run-1_events.tsv\ndata/remodnav_samples/sub-01_task-movie_run-2_events.tsv 1280 720 --remodnav ``\n\nREMoDNaV can classify smooth pursuit movements. As a consequence, when using REMoDNaV output, users need to\nindicate how these events should be treated. By default, multimatch-gaze will discard pursuits. In some\ncircumstances, however, it can be useful to include pursuit information. Moving stimuli for example would\nevoke a pursuit movement during visual intake. When specifying the ``--pursuit keep`` parameter, the start\nand end points of pursuits will be included in the scan path.\n\n`` multimatch-gaze data/remodnav_samples/sub-01_task-movie_run-1_events.tsv\ndata/remodnav_samples/sub-01_task-movie_run-2_events.tsv 1280 720 --remodnav --pursuit keep``\n\n\n### References:\n\nDewhurst, R., Nystr\u00f6m, M., Jarodzka, H., Foulsham, T., Johansson, R. &\nHolmqvist, K. (2012). It depends on how you look at it: scanpath comparison in\nmultiple dimensions with MultiMatch, a vector-based approach. Behaviour Research\nMethods, 44(4), 1079-1100. [doi: 10.3758/s13428-012-0212-2.](https://doi.org/10.3758/s13428-012-0212-2)\n\nDijkstra, E. W. (1959). A note on two problems in connexion withgraphs.\nNumerische Mathematik, 1, 269\u2013271. [https://doi.org/10.1007/BF01386390](https://doi.org/10.1007/BF01386390)\n\nJarodzka, H., Holmqvist, K., & Nystr\u00f6m, M. (eds.) (2010). A vector-based,\nmultidimensional scanpath similarity measure. In Proceedings of the 2010\nsymposium on eye-tracking research & applications (pp. 211-218). ACM.\n[doi: 10.1145/1743666.1743718](https://doi.org/10.1145/1743666.1743718)\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/adswa/multimatch_gaze", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "multimatch-gaze", "package_url": "https://pypi.org/project/multimatch-gaze/", "platform": "", "project_url": "https://pypi.org/project/multimatch-gaze/", "project_urls": { "Homepage": "https://github.com/adswa/multimatch_gaze" }, "release_url": "https://pypi.org/project/multimatch-gaze/0.1.2/", "requires_dist": [ "numpy", "pandas", "scipy", "pypandoc ; extra == 'devel-docs'" ], "requires_python": "", "summary": "Multidimensional scan path comparison", "version": "0.1.2" }, "last_serial": 5691138, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "911f80fa6f40b986dc563642224fc666", "sha256": "02b06f1765e8a34c5aed95c6128400df90f9d9b1b77487b6f308b53724e4c9a0" }, "downloads": -1, "filename": "multimatch_gaze-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "911f80fa6f40b986dc563642224fc666", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42295, "upload_time": "2019-05-02T13:54:12", "url": "https://files.pythonhosted.org/packages/2f/ba/7b25256f945adc19082562aeab903d23446467259ee33b0b71469e679bf8/multimatch_gaze-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e54de2968c3af094c336ae96b1934df", "sha256": "ea624b78c116dcda850d7b2011e49ad78033e261b9002f97acc7ad3cef33b7bf" }, "downloads": -1, "filename": "multimatch_gaze-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9e54de2968c3af094c336ae96b1934df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24762, "upload_time": "2019-05-02T13:54:15", "url": "https://files.pythonhosted.org/packages/a1/87/bdb2c6fb3dc0dd5f56f30db89ceab3fb107880e3524d91d9364f8b0f0523/multimatch_gaze-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7417870dcc0849d514e455c740372583", "sha256": "79576fcbef5e1ae8e3c0675c842a64f07163d66b7d6f643a9245b1168cfb99d9" }, "downloads": -1, "filename": "multimatch_gaze-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7417870dcc0849d514e455c740372583", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42298, "upload_time": "2019-05-17T08:50:20", "url": "https://files.pythonhosted.org/packages/ca/7a/0c19fef4de40b5fb17870780cfa99de069bc54ecae53aa82eb56d92c8e1e/multimatch_gaze-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a1b6182db6befc74264fb34c0285b53", "sha256": "ba4e988643bc409dc27543947b731171cf33622829a6ef20d0601394238211e5" }, "downloads": -1, "filename": "multimatch_gaze-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6a1b6182db6befc74264fb34c0285b53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24743, "upload_time": "2019-05-17T08:50:22", "url": "https://files.pythonhosted.org/packages/d4/11/8154aa19de7000f8e7de64e972d99b555f4cfe06c70d8f44965d570630b5/multimatch_gaze-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a972e83526f8dda6fc5e10a5453a9ded", "sha256": "4c927fedf7ce66b8ec0e54fb7b3e1a1cd020bed4abfe940da64396a4bcd345a1" }, "downloads": -1, "filename": "multimatch_gaze-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a972e83526f8dda6fc5e10a5453a9ded", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42393, "upload_time": "2019-08-17T09:35:48", "url": "https://files.pythonhosted.org/packages/33/ea/a2c3df1111ba7ee88b270a5be5726b270947dd999db915716a03bf840c0e/multimatch_gaze-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78c2ce9f2a636322b5b354f02965937f", "sha256": "a77f62d423fa992a891cb98507ee5a8a324b5dfdb44b885f6866dc79971705c2" }, "downloads": -1, "filename": "multimatch_gaze-0.1.2.tar.gz", "has_sig": false, "md5_digest": "78c2ce9f2a636322b5b354f02965937f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24808, "upload_time": "2019-08-17T09:35:50", "url": "https://files.pythonhosted.org/packages/7f/c7/7871f14b6572016c6773ee58744066c2dbeae4eceaf34e9b822746b2e08b/multimatch_gaze-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a972e83526f8dda6fc5e10a5453a9ded", "sha256": "4c927fedf7ce66b8ec0e54fb7b3e1a1cd020bed4abfe940da64396a4bcd345a1" }, "downloads": -1, "filename": "multimatch_gaze-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a972e83526f8dda6fc5e10a5453a9ded", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42393, "upload_time": "2019-08-17T09:35:48", "url": "https://files.pythonhosted.org/packages/33/ea/a2c3df1111ba7ee88b270a5be5726b270947dd999db915716a03bf840c0e/multimatch_gaze-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78c2ce9f2a636322b5b354f02965937f", "sha256": "a77f62d423fa992a891cb98507ee5a8a324b5dfdb44b885f6866dc79971705c2" }, "downloads": -1, "filename": "multimatch_gaze-0.1.2.tar.gz", "has_sig": false, "md5_digest": "78c2ce9f2a636322b5b354f02965937f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24808, "upload_time": "2019-08-17T09:35:50", "url": "https://files.pythonhosted.org/packages/7f/c7/7871f14b6572016c6773ee58744066c2dbeae4eceaf34e9b822746b2e08b/multimatch_gaze-0.1.2.tar.gz" } ] }