Opticka 2.16.1
Opticka is an experiment manager for behavioral research.
Loading...
Searching...
No Matches
tobiiAnalysis Class Reference

eyelinkAnalysis offers a set of methods to load, parse & plot raw EDF files. It understands opticka trials (where messages TRIALID start a trial and TRIAL_RESULT ends a trial by default) so can parse eye data and plot it for trial groups. You can also manually find microsaccades, and perform ROI/TOI filtering on the eye movements. More...

Detailed Description

eyelinkAnalysis offers a set of methods to load, parse & plot raw EDF files. It understands opticka trials (where messages TRIALID start a trial and TRIAL_RESULT ends a trial by default) so can parse eye data and plot it for trial groups. You can also manually find microsaccades, and perform ROI/TOI filtering on the eye movements.

Copyright ©2014-2022 Ian Max Andolina — released: LGPL3, see LICENCE.md

Inheritance diagram for tobiiAnalysis:

Public Member Functions

function tobiiAnalysis (in varargin)
 
function load (in me, in force)
 
function parseSimple (in me)
 
function parse (in me)
 
function parseSaccades (in me)
 parse saccade related data
 
function pruneNonRTTrials (in me)
 remove trials from correct list that did not use a rt start or end message
 
function updateCorrectIndex (in me, in idx)
 update correct index list
 
function pruneTrials (in me, in num)
 prunetrials – very rarely (n=1) we lose a trial strobe in the plexon data and thus when we try to align the plexon trial index and EDF trial index they are off-by-one, this function is used once the index of the trial is know to prune it out of the EDF data set and recalculate the indexes.
 
function saveChap (in me)
 
function plot (in me, in select, in type, in seperateVars, in name, in handle)
 give a list of trials and it will plot both the raw eye position and the events
 
function clickMe (in src, in ignoredArg)
 
function spawnMe (in src, in ignoredArg)
 
function parseROI (in me)
 
function parseTOI (in me)
 
function plotROI (in me)
 
function clickMe (in src, in ignoredArg)
 
function plotTOI (in me)
 
function clickMe (in src, in ignoredArg)
 
function get ppd (in me)
 
function plotNH (in me, in trial, in handle)
 
function explore (in me, in close)
 
function exploreNext (in src, in ignoredArg)
 
function explorePrevious (in src, in ignoredArg)
 
function exploreClose (in src, in ignoredArg)
 
function computePupilAverage (in me, in trials, in sampleRate)
 
- Public Member Functions inherited from analysisCore
function analysisCore (in varargin)
 Class constructor.
 
function checkPaths (in me, in varargin)
 checkPaths: if we've saved an object then load it on a new machine paths to source files may be wrong. If so then allows us to find a new directory for the source files.
 
function showEyePlots (in me, in varargin)
 showEyePlots if we have a linked eyelink file show the raw data plots
 
function showInfo (in me, in varargin)
 showInfo shows the info box for the plexon parsed data
 
function setStats (in me, in varargin)
 setStats set up the stats structure used in many Fieldtrip analyses
 
function set baselineWindow (in me, in in)
 
function optimiseSize (in me)
 optimiseSize remove the raw matrices etc. to reduce memory
 
function GUI (in me, in varargin)
 show a GUI if available for analysis object
 
function initialise (in me, in varargin)
 
function setTimeFreqOptions (in me, in varargin)
 setTimeFreqOptions for Fieldtrip time freq analysis of LFP data
 
- Public Member Functions inherited from optickaCore
function optickaCore (in varargin)
 Class constructor.
 
function get fullName (in me)
 
function getALF (in me, in subject, in sessionPrefix, in lab, in create)
 
function findAttributes (in me, in attrName, in attrValue)
 
function findAttributesandType (in me, in attrName, in attrValue, in type)
 find properties of object with specific attributes, for example all properties whose GetAcccess attribute is public and type is logical.
 
function findPropertyDefault (in me, in propName)
 
function clone (in me)
 Use this syntax to make a deep copy of the object, i.e. OBJ_OUT has the same field values, but will not behave as a handle-copy of me anymore.
 
function checkSuperclasses (in List)
 
function editProperties (in me, in properties)
 method to modify a set of properties
 
function setProp (in me, in property, in value)
 method to fast change a particular value. This is useful for use in anonymous functions, like in the state machine.
 
function initialiseGlobals (in me, in doReset, in doOpen)
 
function initialiseSaveFile (in me)
 Initialise Save prefix.
 
function checkPaths (in me)
 checks the paths are valid
 

Static Public Member Functions

static function plotSecondaryEyeLogs (in tS)
 we also collect eye position within the main PTB loop (sampled at every screen refresh) and this is a lower resolution backup of the eye position data if we need.
 
- Static Public Member Functions inherited from analysisCore
static function doFFT (in p, in fs, in ff, in normalise, in useHanning)
 phaseDifference basic phase diff measurement
 
static function phaseDifference (in x, in y)
 phaseDifference basic phase diff measurement
 
static function phase (in x)
 phase basic phase measurement
 
static function subselectFieldTripTrials (in ft, in idx)
 subselectFieldTripTrials sub-select trials where the ft function fails to use cfg.trials
 
static function findNearest (in in, in value)
 find nearest value in a vector, if more than 1 index return the first
 
static function linearFit (in x, in y)
 
static function var2SE (in var, in dof)
 convert variance to standard error
 
static function rad2ang (in alphain, in rect, in rot)
 
static function ang2rad (in alpha)
 
static function stderr (in data, in type, in onlyerror, in alpha, in dim, in avgfn)
 
static function areabar (in xv, in yv, in ev, in c1, in alpha, in varargin)
 
static function pupilConversion (in value, in cal, in calSize)
 
static function cellArray2Num (in data)
 
static function optimalLayout (in len)
 calculates preferred row col layout for multiple plots
 
static function optimalColours (in n_colors, in bg, in func)
 make optimally different colours for plots Copyright 2010-2011 by Timothy E. Holy
 
static function parsecolor (in s)
 
static function colorstr2rgb (in c)
 
- Static Public Member Functions inherited from optickaCore
static function makeArgs (in args)
 Converts cell args to structure array.
 
static function addDefaults (in args, in defs)
 add default options to arg input
 
static function hasKey (in in, in key)
 check if a struct / object has a propery / field
 
static function getKeys (in device)
 PTB Get key presses, stops key bouncing.
 

Public Attributes

Property fileName
 file name
 
Property trialStartMessageName
 which EDF message contains the trial start tag
 
Property variableMessageName
 which EDF message contains the variable name or value
 
Property rtStartMessage
 the EDF message name to start measuring stimulus presentation
 
Property rtEndMessage
 EDF message name to end the stimulus presentation.
 
Property trialEndMessage
 
Property rtOverrideMessage
 override the rtStart time with a custom message?
 
Property minSaccadeDistance
 minimum saccade distance in degrees
 
Property VFAC
 relative velocity threshold
 
Property MINDUR
 minimum saccade duration
 
Property tS
 the temporary experiement structure which contains the eyePos recorded from opticka
 
Property excludeIncorrect
 exclude incorrect trials when indexing (trials contain an idx and correctedIdx value and you can use either)
 
Property ROI
 region of interest?
 
Property TOI
 time of interest?
 
Property verbose
 verbose output?
 
Property pixelsPerCm
 screen resolution
 
Property distance
 screen distance
 
Property resolution
 screen resolution
 
Property ETparams
 For Dee's analysis edit these settings.
 
Property relativeMarkers
 
Property baselinePupil
 subtract the baseline for the pupil plot and average?
 
Property smoothPupil
 smooth the pupil signal for plot and average?
 
Property correctValue
 
Property incorrectValue
 
Property breakFixValue
 
Property trialsToPrune
 
Property rtLimits
 these are used for spikes spike saccade time correlations
 
Property rtDivision
 
Property xCenter
 screen X center in pixels
 
Property yCenter
 screen Y center in pixels
 
Property downSample
 downsample the data for plotting
 
Property excludeTrials
 
- Public Attributes inherited from analysisCore
Property doPlots
 generate plots?
 
Property baselineWindow
 +- time window (s) for baseline estimation/removal [-0.2 0]
 
Property measureRange
 default range (s) to measure values from
 
Property plotRange
 default range to plot data
 
Property rootDirectory
 root directory to check for data if files can't be found
 
Property gd
 getDensity stats object, used for group comparisons
 
Property options
 various stats values in a structure for different analyses
 
Property openUI
 is the UI opened?
 
- Public Attributes inherited from optickaCore
Property name
 object name
 
Property comment
 comment
 
Property verbose
 verbose logging, subclasses must assign this. This is normally logical true/false
 
Property dateStamp
 clock() dateStamp set on construction
 
Property uuid
 universal ID
 
Property paths
 storage of various paths
 
Property fullName
 The fullName is the object name combined with its uuid and class name.
 

Protected Member Functions

function closeUI (in me, in varargin)
 
function makeUI (in me, in varargin)
 
function updateUI (in me, in varargin)
 
function notifyUI (in me, in varargin)
 
function parseEvents (in me)
 main parse loop for EDF events, has to be one big serial loop
 
function parseAsVars (in me)
 
function parseSecondaryEyePos (in me)
 
function parseFixationPositions (in me)
 
function toDegrees (in me, in in)
 
function toPixels (in me, in in)
 
function computeFullSaccades (in me)
 
function computeMicrosaccades (in me)
 
function vecvel (in xx, in SAMPLING, in TYPE)
 
function microsacc (in x, in vel, in VFAC, in MINDUR)
 
function binsacc (in sacl, in sacr)
 
function saccpar (in bsac)
 
function getTrialDef (in me)
 
- Protected Member Functions inherited from analysisCore
virtual function makeUI (in me)
 make the UI for the analysis object
 
virtual function closeUI (in me)
 close the UI for the analysis object
 
virtual function updateUI (in me)
 update the UI for the analysis object
 
function initialiseOptions (in me)
 initialise settings for fieldtrip time frequency analysis
 
function inheritPlxReader (in me, in p)
 Allows two analysis objects to share a single plxReader object. This is important in cases where for e.g. an LFPAnalysis object uses the same plexon file as its spikeAnalysis child used for spike-LFP anaysis.
 
function setSelection (in me, in in)
 set trials / var parsing from outside, override dialog, used when yoked to another analysis object, for example when spikeAnalysis is a child of LFPAnalysis
 
function initialiseStats (in me)
 initialise the statistics options, see setStats()
 
function formatByClass (in me, in dp, in dn)
 format data for ROC
 
function roc (in me, in data)
 ROC see http://www.subcortex.net/research/code/area_under_roc_curve.
 
function auc (in me, in data, in alpha, in flag, in nboot, in varargin)
 Area under ROC.
 
function aucBootstrap (in me, in data, in nboot, in flag, in H0)
 AUC bootstrap.
 
- Protected Member Functions inherited from optickaCore
function parseArgs (in me, in args, in allowedProperties)
 Sets properties from a structure or normal arguments pairs, ignores invalid or non-allowed properties.
 
function addArgs (in me, in args)
 
function setPaths (in me)
 Sets properties from a structure or normal arguments pairs, ignores invalid or non-allowed properties.
 
function getFonts (in me)
 set paths for object
 
function toStructure (in me)
 Converts properties to a structure.
 
function getType (in me, in in)
 
function logOutput (in me, in in, in message, in override)
 Give a metaproperty return the likely property class.
 
function salutation (in me, in varargin)
 Prints messages dependent on verbosity.
 

Additional Inherited Members

- Protected Attributes inherited from analysisCore
Property panels
 UI panels.
 
Property yokedSelection
 do we yoke the selection to the parent object (e.g. LFPAnalysis > spikeAnalysis)
 
Property handles
 handles for the GUI
 
- Protected Attributes inherited from optickaCore
Property cloning
 are we cloning this from another object
 
Property mversion
 Matlab version number, this is transient so it is not saved.
 
Property sansFont
 sans font
 
Property monoFont
 monoFont
 
Property className
 class name
 
Property savePrefix
 save prefix generated from clock time
 
Property fullName_
 cached full name
 

Constructor & Destructor Documentation

◆ tobiiAnalysis()

function tobiiAnalysis::tobiiAnalysis ( in  varargin)

Member Function Documentation

◆ binsacc()

function tobiiAnalysis::binsacc ( in  sacl,
in  sacr 
)
protected

◆ clickMe() [1/3]

function tobiiAnalysis::clickMe ( in  src,
in  ignoredArg 
)

◆ clickMe() [2/3]

function tobiiAnalysis::clickMe ( in  src,
in  ignoredArg 
)

◆ clickMe() [3/3]

function tobiiAnalysis::clickMe ( in  src,
in  ignoredArg 
)

◆ closeUI()

function tobiiAnalysis::closeUI ( in  me,
in  varargin 
)
protected
Parameters

return

◆ computeFullSaccades()

function tobiiAnalysis::computeFullSaccades ( in  me)
protected

◆ computeMicrosaccades()

function tobiiAnalysis::computeMicrosaccades ( in  me)
protected

◆ computePupilAverage()

function tobiiAnalysis::computePupilAverage ( in  me,
in  trials,
in  sampleRate 
)
Parameters

return

◆ explore()

function tobiiAnalysis::explore ( in  me,
in  close 
)
Parameters

return

◆ exploreClose()

function tobiiAnalysis::exploreClose ( in  src,
in  ignoredArg 
)

◆ exploreNext()

function tobiiAnalysis::exploreNext ( in  src,
in  ignoredArg 
)

◆ explorePrevious()

function tobiiAnalysis::explorePrevious ( in  src,
in  ignoredArg 
)

◆ getTrialDef()

function tobiiAnalysis::getTrialDef ( in  me)
protected

◆ load()

function tobiiAnalysis::load ( in  me,
in  force 
)
Parameters

return

◆ makeUI()

function tobiiAnalysis::makeUI ( in  me,
in  varargin 
)
protected
Parameters

return

◆ microsacc()

function tobiiAnalysis::microsacc ( in  x,
in  vel,
in  VFAC,
in  MINDUR 
)
protected

◆ notifyUI()

function tobiiAnalysis::notifyUI ( in  me,
in  varargin 
)
protectedvirtual
Parameters

return

Reimplemented from analysisCore.

◆ parse()

function tobiiAnalysis::parse ( in  me)
Parameters

return

◆ parseAsVars()

function tobiiAnalysis::parseAsVars ( in  me)
protected
Parameters

return

◆ parseEvents()

function tobiiAnalysis::parseEvents ( in  me)
protected

main parse loop for EDF events, has to be one big serial loop

Parameters

return

◆ parseFixationPositions()

function tobiiAnalysis::parseFixationPositions ( in  me)
protected
Parameters

return

◆ parseROI()

function tobiiAnalysis::parseROI ( in  me)
Parameters

return

◆ parseSaccades()

function tobiiAnalysis::parseSaccades ( in  me)

parse saccade related data

Parameters

return

◆ parseSecondaryEyePos()

function tobiiAnalysis::parseSecondaryEyePos ( in  me)
protected
Parameters

return

◆ parseSimple()

function tobiiAnalysis::parseSimple ( in  me)
Parameters

return

◆ parseTOI()

function tobiiAnalysis::parseTOI ( in  me)
Parameters

return

◆ plot()

function tobiiAnalysis::plot ( in  me,
in  select,
in  type,
in  seperateVars,
in  name,
in  handle 
)

give a list of trials and it will plot both the raw eye position and the events

Parameters

return

◆ plotNH()

function tobiiAnalysis::plotNH ( in  me,
in  trial,
in  handle 
)
Parameters

return

◆ plotROI()

function tobiiAnalysis::plotROI ( in  me)
Parameters

return

◆ plotSecondaryEyeLogs()

static function tobiiAnalysis::plotSecondaryEyeLogs ( in  tS)
static

we also collect eye position within the main PTB loop (sampled at every screen refresh) and this is a lower resolution backup of the eye position data if we need.

Parameters

return

◆ plotTOI()

function tobiiAnalysis::plotTOI ( in  me)
Parameters

return

◆ ppd()

function get tobiiAnalysis::ppd ( in  me)
Parameters

return

◆ pruneNonRTTrials()

function tobiiAnalysis::pruneNonRTTrials ( in  me)

remove trials from correct list that did not use a rt start or end message

Parameters

return

◆ pruneTrials()

function tobiiAnalysis::pruneTrials ( in  me,
in  num 
)

prunetrials – very rarely (n=1) we lose a trial strobe in the plexon data and thus when we try to align the plexon trial index and EDF trial index they are off-by-one, this function is used once the index of the trial is know to prune it out of the EDF data set and recalculate the indexes.

Parameters

return

◆ saccpar()

function tobiiAnalysis::saccpar ( in  bsac)
protected

◆ saveChap()

function tobiiAnalysis::saveChap ( in  me)
Parameters

return

◆ spawnMe()

function tobiiAnalysis::spawnMe ( in  src,
in  ignoredArg 
)

◆ toDegrees()

function tobiiAnalysis::toDegrees ( in  me,
in  in 
)
protected

◆ toPixels()

function tobiiAnalysis::toPixels ( in  me,
in  in 
)
protected

◆ updateCorrectIndex()

function tobiiAnalysis::updateCorrectIndex ( in  me,
in  idx 
)

update correct index list

Parameters

return

◆ updateUI()

function tobiiAnalysis::updateUI ( in  me,
in  varargin 
)
protected
Parameters

return

◆ vecvel()

function tobiiAnalysis::vecvel ( in  xx,
in  SAMPLING,
in  TYPE 
)
protected

Member Data Documentation

◆ baselinePupil

Property tobiiAnalysis::baselinePupil

subtract the baseline for the pupil plot and average?

◆ breakFixValue

Property tobiiAnalysis::breakFixValue

◆ correctValue

Property tobiiAnalysis::correctValue

◆ distance

Property tobiiAnalysis::distance

screen distance

◆ downSample

Property tobiiAnalysis::downSample

downsample the data for plotting

◆ ETparams

Property tobiiAnalysis::ETparams

For Dee's analysis edit these settings.

◆ excludeIncorrect

Property tobiiAnalysis::excludeIncorrect

exclude incorrect trials when indexing (trials contain an idx and correctedIdx value and you can use either)

◆ excludeTrials

Property tobiiAnalysis::excludeTrials

◆ fileName

Property tobiiAnalysis::fileName

file name

◆ incorrectValue

Property tobiiAnalysis::incorrectValue

◆ MINDUR

Property tobiiAnalysis::MINDUR

minimum saccade duration

◆ minSaccadeDistance

Property tobiiAnalysis::minSaccadeDistance

minimum saccade distance in degrees

◆ pixelsPerCm

Property tobiiAnalysis::pixelsPerCm

screen resolution

◆ relativeMarkers

Property tobiiAnalysis::relativeMarkers

Is measure range relative to start and end markers or absolute to start marker?

◆ resolution

Property tobiiAnalysis::resolution

screen resolution

◆ ROI

Property tobiiAnalysis::ROI

region of interest?

◆ rtDivision

Property tobiiAnalysis::rtDivision

◆ rtEndMessage

Property tobiiAnalysis::rtEndMessage

EDF message name to end the stimulus presentation.

◆ rtLimits

Property tobiiAnalysis::rtLimits

these are used for spikes spike saccade time correlations

◆ rtOverrideMessage

Property tobiiAnalysis::rtOverrideMessage

override the rtStart time with a custom message?

◆ rtStartMessage

Property tobiiAnalysis::rtStartMessage

the EDF message name to start measuring stimulus presentation

◆ smoothPupil

Property tobiiAnalysis::smoothPupil

smooth the pupil signal for plot and average?

◆ TOI

Property tobiiAnalysis::TOI

time of interest?

◆ trialEndMessage

Property tobiiAnalysis::trialEndMessage

EDF message name to signal end of the trial, also parses a passed number, so e.g. "TRIAL_RESULT -1" sets the trial.result to -1, these are used to label trials as correct, incorrect, breakfix etc.

◆ trialStartMessageName

Property tobiiAnalysis::trialStartMessageName

which EDF message contains the trial start tag

◆ trialsToPrune

Property tobiiAnalysis::trialsToPrune

◆ tS

Property tobiiAnalysis::tS

the temporary experiement structure which contains the eyePos recorded from opticka

◆ variableMessageName

Property tobiiAnalysis::variableMessageName

which EDF message contains the variable name or value

◆ verbose

Property tobiiAnalysis::verbose

verbose output?

◆ VFAC

Property tobiiAnalysis::VFAC

relative velocity threshold

◆ xCenter

Property tobiiAnalysis::xCenter

screen X center in pixels

◆ yCenter

Property tobiiAnalysis::yCenter

screen Y center in pixels


The documentation for this class was generated from the following file: