![]() |
Opticka 2.16.1
Opticka is an experiment manager for behavioral research.
|
eyelinkAnalysis offers a set of methods to load, parse & plot raw EDF files. It understands opticka trials (where EDF 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...
eyelinkAnalysis offers a set of methods to load, parse & plot raw EDF files. It understands opticka trials (where EDF 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
Public Member Functions | |
function | eyelinkAnalysis (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 | plotRaw (in me) |
give a list of trials and it will plot both the raw eye position and the events | |
function | plot (in me, in select, in type, in seperateVars, in name) |
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 | fixVarNames (in me) |
function | removeRawData (in me) |
function | reparseVars (in me) |
![]() | |
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 | |
![]() | |
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 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 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 | file |
file name | |
Property | dir |
directory | |
Property | trialStartMessageName |
which EDF message contains the trial start tag | |
Property | variableMessageName |
which EDF message contains the variable name or value | |
Property | rtStartMessage |
Property | rtEndMessage |
EDF message name to end the stimulus presentation or subject repsonse. | |
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 | useDiameter |
Property | correctValue |
Property | incorrectValue |
Property | breakFixValue |
Property | trialsToPrune |
Property | rtLimits |
these are used for spikes spike saccade time correlations | |
Property | rtDivision |
Property | trialOverride |
trial list from the saved behavioural data, used to fix trial name bug in old files | |
Property | xCenter |
screen X center in pixels | |
Property | yCenter |
screen Y center in pixels | |
Property | override573 |
57.3 bug override | |
Property | downSample |
downsample the data for plotting | |
Property | excludeTrials |
Constant Property | EVENT_TYPES = struct |
Constant Property | RECORDING_STATES = struct |
Constant Property | EYES = struct |
Constant Property | PUPIL = struct |
Constant Property | MISSING_DATA_VALUE = |
![]() | |
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? | |
![]() | |
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 | 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) |
![]() | |
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. | |
![]() | |
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 | |
![]() | |
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 | |
![]() | |
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 | |
function eyelinkAnalysis::eyelinkAnalysis | ( | in | varargin | ) |
|
protected |
function eyelinkAnalysis::clickMe | ( | in | src, |
in | ignoredArg | ||
) |
function eyelinkAnalysis::clickMe | ( | in | src, |
in | ignoredArg | ||
) |
function eyelinkAnalysis::clickMe | ( | in | src, |
in | ignoredArg | ||
) |
|
protected |
return
|
protected |
function eyelinkAnalysis::fixVarNames | ( | in | me | ) |
return
function eyelinkAnalysis::load | ( | in | me, |
in | force | ||
) |
return
|
protected |
return
|
protected |
|
protectedvirtual |
function eyelinkAnalysis::parse | ( | in | me | ) |
return
|
protected |
return
|
protected |
main parse loop for EDF events, has to be one big serial loop
return
|
protected |
return
function eyelinkAnalysis::parseROI | ( | in | me | ) |
return
function eyelinkAnalysis::parseSaccades | ( | in | me | ) |
parse saccade related data
return
|
protected |
return
function eyelinkAnalysis::parseSimple | ( | in | me | ) |
return
function eyelinkAnalysis::parseTOI | ( | in | me | ) |
return
function eyelinkAnalysis::plot | ( | in | me, |
in | select, | ||
in | type, | ||
in | seperateVars, | ||
in | name | ||
) |
give a list of trials and it will plot both the raw eye position and the events
return
function eyelinkAnalysis::plotRaw | ( | in | me | ) |
give a list of trials and it will plot both the raw eye position and the events
return
function eyelinkAnalysis::plotROI | ( | in | me | ) |
return
|
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.
return
function eyelinkAnalysis::plotTOI | ( | in | me | ) |
return
function get eyelinkAnalysis::ppd | ( | in | me | ) |
return
function eyelinkAnalysis::pruneNonRTTrials | ( | in | me | ) |
remove trials from correct list that did not use a rt start or end message
return
function eyelinkAnalysis::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.
return
function eyelinkAnalysis::removeRawData | ( | in | me | ) |
function eyelinkAnalysis::reparseVars | ( | in | me | ) |
|
protected |
function eyelinkAnalysis::spawnMe | ( | in | src, |
in | ignoredArg | ||
) |
|
protected |
|
protected |
function eyelinkAnalysis::updateCorrectIndex | ( | in | me, |
in | idx | ||
) |
update correct index list
return
|
protected |
return
|
protected |
Property eyelinkAnalysis::breakFixValue |
Property eyelinkAnalysis::correctValue |
Property eyelinkAnalysis::dir |
directory
Property eyelinkAnalysis::distance |
screen distance
Property eyelinkAnalysis::downSample |
downsample the data for plotting
Constant Property eyelinkAnalysis::EVENT_TYPES = struct |
Property eyelinkAnalysis::excludeIncorrect |
exclude incorrect trials when indexing (trials contain an idx and correctedIdx value and you can use either)
Property eyelinkAnalysis::excludeTrials |
Constant Property eyelinkAnalysis::EYES = struct |
Property eyelinkAnalysis::file |
file name
Property eyelinkAnalysis::incorrectValue |
Property eyelinkAnalysis::MINDUR |
minimum saccade duration
Property eyelinkAnalysis::minSaccadeDistance |
minimum saccade distance in degrees
Constant Property eyelinkAnalysis::MISSING_DATA_VALUE = |
Property eyelinkAnalysis::override573 |
57.3 bug override
Property eyelinkAnalysis::pixelsPerCm |
screen resolution
Constant Property eyelinkAnalysis::PUPIL = struct |
Constant Property eyelinkAnalysis::RECORDING_STATES = struct |
Property eyelinkAnalysis::ROI |
region of interest?
Property eyelinkAnalysis::rtDivision |
Property eyelinkAnalysis::rtEndMessage |
EDF message name to end the stimulus presentation or subject repsonse.
Property eyelinkAnalysis::rtLimits |
these are used for spikes spike saccade time correlations
Property eyelinkAnalysis::rtOverrideMessage |
override the rtStart time with a custom message?
Property eyelinkAnalysis::rtStartMessage |
the EDF message name to start measuring stimulus presentation, and this is the 0 time in the analysis by default, can be overridden by send SYNCTIME or rtOverrideMessage
Property eyelinkAnalysis::TOI |
time of interest?
Property eyelinkAnalysis::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.
Property eyelinkAnalysis::trialOverride |
trial list from the saved behavioural data, used to fix trial name bug in old files
Property eyelinkAnalysis::trialStartMessageName |
which EDF message contains the trial start tag
Property eyelinkAnalysis::trialsToPrune |
Property eyelinkAnalysis::tS |
the temporary experiement structure which contains the eyePos recorded from opticka
Property eyelinkAnalysis::useDiameter |
conversion pupil size to mm? true/false | calibration value | measured diameter
Property eyelinkAnalysis::variableMessageName |
which EDF message contains the variable name or value
Property eyelinkAnalysis::verbose |
verbose output?
Property eyelinkAnalysis::VFAC |
relative velocity threshold
Property eyelinkAnalysis::xCenter |
screen X center in pixels
Property eyelinkAnalysis::yCenter |
screen Y center in pixels