Giter Site home page Giter Site logo

eyetracker's Introduction

README FILE FOR PROCESSING EYE TRACKER DATA 
===========================================

This work made possible by CORE Grant EY003176. 

1. Run "parse_eyetracker_data.m" program.

 This program parses eyetracker data file, removes first 26 text lines
 and replaces sync pulse column with 0,1,2 and outputs a file which is
 used by program "eyetrack_process.m".

2. Run "clear all; eyetrack_process(TR_array, numTR_array);"

   TR_array: Array containing TR for each scan in seconds.
   numTR_array: Array containing number of TR pulses for each scan.

   Input filename is  specified using "uigetFile" command 
   when it pops a window asking for input file name.

 Example:  For file: wc030311.txt (and the modified wc030311_mod.txt, wc030311_mod.mat)

   clear all; 
   TR_array=[2 2 2 2 2 2 2 2 2 2 2];
   numTR_array = [150 180 180 180 180 180 180 180 180 180 150];
   eyetrack_process(TR_array, numTR_array);


 User Options:
   A) For really noisy data, if a very high percentage of samples are misclassified 
     as Blinks, or if too many Blinks go unsuppressed, use this option below.

     suppressBlinksOutsideSaccades=1; %set this to 1 to hard-limit X,Y amplitudes above blinkLimitThr, 
			 %outside the region of valid saccades

   B) BlinkOverride=1; % set this to 1 to perform blink removal always irrepsective of noise/jitter in pupilheight

   C) blinkMemory=10; %If adjacent blinks are separated by < blinkMemory, consider it as a single blink.
        %Increase to 60  to capture several adjacent blinks. 

   D)minScanIntervalSamples=params.sampleRate*10; %Minimum number of samples in between 2 scans

   E) maxNumMissingTTLpulses=4; 
    % Maximum number of missing TTL pulses. Used for automatic derivation
    %For some data, more than 4 pulses may be missing, in which case, scan
    %start and end will be identified incorrectly. Blink plots have scan
    %start plotted and can indicate if this is the case. Then increase
    %maxNumMissingTTLpulses to a higher number.[Example:arokem_20110110_mod.txt] 
    %The tradeoff is: extra samples equal to maxNumMissingTTLpulses after the end of each scan will be
    %considered as valid samples inside scan , which may increase fraction of samples outside fixation window.

   % NOTE that user provided number of TTL pulses in each scan cannot be
   % relied upon because of missing TTL pulses.

3. "parse_eyetracker_outdata.m" provides an example of how to 
scan output files printed by "eyetrack_process.m"


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Issues:
========
 1.  Array Indexing and array size checks: 
  
  most issues have been fixed, but there could be residual bugs
  which get exposed by new data files. If they do exist, feel free to fix them.

 2. Noisy Data:

    If the eyetracker is not able to locate the pupil correctly,
    it may print wrong values in pupil height, pupil width, X and Y data.
    Which will result in misclassified blinks and poorer peformance.

    It seems specific steps need to be done to help the eyetracker 
    locate the pupil correctly.Viewpoint eyetracker user guide  chapter 5
    talks about "Locating Pupil and Glint". 


NOTE:
=======
these matlab programs can also be run by open-source GNU Octave.
 Download Octave from
http://www.gnu.org/software/octave/download.html

==========================================

eyetracker's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.