-
Notifications
You must be signed in to change notification settings - Fork 0
Workflow
Generally, how we generate and present stimuli using the OneLights is as follows:
- Calibrate the OneLight
- Define a nominal background around which to modulate
- Define a nominal direction of modulation
- Define a temporal profile of modulation / a timeseries of contrast in a direction.
- Correct the direction
- Combine the background, direction and temporal profile into a modulation
- Create settings (i.e. apply gamma-function)
- Create starts-stops
- Apply starts-stops
- Validate corrected direction
In practice, the flow (i.e., the call stack) in the OLApproach_XXXX and OLApproachSupport codebase is outlined below. For each function call, parenthetical reference indicates which preceding function/script made the call, or, "(man)" for manual call.
-
tbUseProject('OLApproach_XXXX')
(man) uses ToolboxToolbox to resolve dependencies on other toolboxes, and execute the local hook to define approach and machine specific preferences (e.g., directory structures). -
SetupXXXXApproach.m
(man) defines some initial approach parameters, most importantly the name of the approach, the name(s) of the calibration file(s) to use, the names of any directions to use, and the names of any backgrounds to use. Then creates the nominal backgrounds (3). and nominal directions (4). -
OLMakeBackgroundNominalPrimaries
(2.)-
OLBackgroundNominalParamsDictionary
(3.) -
OLBackgroundNominalDictionaryDefaults
(3a.) -
OLBackgroundNominalDictionaryValidate
(3a.) -
OLReceptorIsolateMakeBackgroundNominalPrimaries
(3.)
-
-
OLMakeDirectionNominalPrimaries
(2.)-
OLDirectionNominalParamsDictionary
(4.) -
OLDirectionNominalDictionaryDefaults
(4a.) -
OLDirectionNominalDictionaryValidate
(4a.) -
OLReceptorIsolateMakeDirectionNominalPrimaries
(4.)
-
Currently, these steps reference (2), create (3a-c; 4a-c), read from (3d; 4d) and write to (3d; 4d), dictionaries and cache-files. These serve to standardize parameters, to precompute things that don't have to be computed day-of, and to document how the underlying architecture work. Work is in progress to separate the underlying functional architecture generating backgrounds and directions, from the dictionary and caching systems.
-
RunXXX
(man). The remainder of the call stack is initiated by a protocol script, with a name usually starting with . This protocol script is manually called by the experimenter at the start of a session, and controls any number of acquisitions.
Retrieve nominal directions and nominal backgrounds referenced by name in the protocol params
-
OLMakeDirectionCorrectedPrimaries
(5.) corrects the primaries day-of, by measuring the spectra the nominal primaries produce, and searching over primary space to get closer to the desired spectra. -
OLMakeModulationStartsStops
(7.)-
OLReceptorIsolateMakeModulationStartsStops
(8.) -
OLCalculateStartsStopsModulation
(8a.) -
OLPrimaryToSettings
(8b.) -
OLSettingsToStartsStops
(8c.)
-
-
OLValidateDirectionCorrectedPrimaries
(5.) -
OLAnalyzeDirectionCorrectedPrimaries
(5.)
-
ApproachEngine
(5.)
-
OLValidateDirectionCorrectedPrimaries
(5.) -
OLAnalyzeDirectionCorrectedPrimaries
(5.)
- Home
- OLLibrary
- Primary values
- Calibration
- OLSpectrum
- Validation
- Correction
- OLApproachSupport
- For developers