CLASS ndi.app.stimulus.tuning_response¶
ndi.app.stimulus.tuning_response - an app to decode stimulus information from NDI_PROBE_STIMULUS objects
NDI_APP_TUNING_RESPONSE_OBJ = ndi.app.stimulus.tuning_response(SESSION)
Creates a new ndi.app.stimulus.tuning_response object that can operate on NDI_SESSIONS. The app is named 'ndi_app_stimulus_response'.
Documentation for ndi.app.stimulus.tuning_response
doc ndi.app.stimulus.tuning_response
Superclasses¶
ndi.app, ndi.documentservice
Properties¶
Property | Description |
---|---|
session | |
name |
Methods¶
Method | Description |
---|---|
compute_stimulus_response_scalar | compute responses to a stimulus set |
control_stimulus | determine the control stimulus ID for each stimulus in a stimulus set |
find_tuningcurve_document | find a tuning curve document of a particular element, epochid, etc... |
label_control_stimuli | label control stimuli for all stimulus presentation documents for a given stimulator |
make_1d_tuning | create 1d tuning documents out of stimulus responses that covary in 2 parameters |
newdocument | return a new database document of type ndi.document based on an app |
searchquery | return a search query for an ndi.document related to this app |
stimulus_responses | write stimulus records for all stimulus epochs of an ndi.element stimulus object |
tuning_curve | compute a tuning curve from stimulus responses |
tuning_response | an app to decode stimulus information from NDI_PROBE_STIMULUS objects |
tuningdoc_fixcellarrays | make sure fields that are supposed to be cell arrays are cell arrays in TUNINGCURVE document |
varappname | return the name of the application for use in variable creation |
version_url | return the app version and url |
Methods help¶
compute_stimulus_response_scalar - compute responses to a stimulus set
RESPONSE_DOC = COMPUTE_STIMULUS_RESPONSE_SCALAR(NDI_APP_TUNING_RESPONSE_OBJ, NDI_TIMESERIES_OBJ, STIM_DOC, ...)
Given an NDI_TIMESERIES_OBJ, a STIM_DOC (an ndi.document of class 'ndi_document_stimulus_presentation'), and a CONTROL_DOC (an ndi.document of class 'ndi_document_control_stimulus_ids'), this function computes the stimulus responses of NDI_TIMESERIES_OBJ and stores the results as an ndi.document of class 'ndi_stimulus_response_scalar'. In this app, by default, mean responses and responses at the fundamental stimulus frequency are calculated. Note that this function may generate multiple documents (for mean responses, F1, F2).
Note that we recommend making a new app subclass if one wants to write additional classes of analysis procedures.
This function also takes name/value pairs that alter the behavior: Parameter (default) | Description
temporalfreqfunc | ('ndi.fun.stimulustemporalfrequency') | freq_response ([]) | Frequency response to measure. If empty, then the function is | called 3 times with values 0, 1, and 2 times the fundamental frequency. prestimulus_time ([]) | Calculate a baseline using a certain amount of TIMESERIES signal during | the pre-stimulus time given here prestimulus_normalization ([]) | Normalize the stimulus response based on the prestimulus measurement. | [] or 0) No normalization | 1) Subtract: Response := Response - PrestimResponse | 2) Fractional change Response:= ((Response-PrestimResponse)/PrestimResponse) | 3) Divide: Response:= Response ./ PreStimResponse isspike (0) | 0/1 Is the signal a spike process? If so, timestamps correspond to spike events. spiketrain_dt (0.001) | Resolution to use for spike train reconstruction if computing Fourier transform
control_stimulus - determine the control stimulus ID for each stimulus in a stimulus set
[CS_IDS, CS_DOC] = CONTROL_STIMULUS(NDI_APP_TUNING_RESPONSE_OBJ, STIM_DOC, ...)
For a given set of stimuli described in ndi.document of type 'ndi_document_stimulus', this function returns the control stimulus ID for each stimulus in the vector CS_IDS and a corresponding ndi.document of type ndi_document_control_stimulus_ids that describes this relationship.
This function accepts parameters in the form of NAME/VALUE pairs: Parameter (default) | Description
control_stim_method | The method to be used to find the control stimulu for
('psuedorandom') | each stimulus:
-----------|
| pseudorandom: Find the stimulus with a parameter
| 'controlid' that is in the same pseudorandom trial. In the
| event that there is no match that divides evenly into
| complete repetitions of the stimulus set, then the
| closest stimulus with field 'controlid' is chosen.
|
|
-----------|
controlid ('isblank') | For some methods, the parameter that defines whether
| a stimulus is a 'control' stimulus or not.
controlid_value (1) | For some methods, the parameter value of 'controlid' that
| defines whether a stimulus is a control stimulus or not.
find_tuningcurve_document - find a tuning curve document of a particular element, epochid, etc...
[TC_DOC, SRS_DOC] = FIND_TUNINGCURVE_DOCUMENT(NDI_APP_TUNING_RESPONSE_OBJ, ELEMENT_OBJ, EPOCHID, RESPONSE_TYPE)
label_control_stimuli - label control stimuli for all stimulus presentation documents for a given stimulator
CS_DOC = LABEL_CONTROL_STIMULI(NDI_APP_TUNING_RESPONSE_OBJ, STIMULUS_ELEMENT_OBJ, RESET, ...)
Thus function will look for all 'ndi_document_stimulus_presentation' documents for STIMULUS_PROBE_OBJ, compute the corresponding control stimuli, and save them as an 'control_stimulus_ids' document that is also returned as a cell list in CS_DOC.
If RESET is 1, then any existing documents of this type are first removed. If RESET is not provided or is empty, then it is taken to be 0.
The method of finding the control stimulus can be provided by providing extra name/value pairs. See ndi.app.stimulus.tuning_response/CONTROL_STIMULUS for parameters.
make_1d_tuning - create 1d tuning documents out of stimulus responses that covary in 2 parameters
TUNING_DOCS = MAKE_1D_TUNING(NDI_APP_TUNING_RESPONSE_OBJ, STIM_RESPONSE_DOC, PARAM_TO_VARY, PARAM_TO_VARY_LABEL, PARAM_TO_FIX)
This function examines a stimulus response doc that covaries in 2 parameters, and "deals" the responses into several tuning curves where the parameter with name PARAM_TO_VARY varies across stimuli and the stimulus parameter with name PARAM_TO_FIX is fixed for each tuning doc.
newdocument - return a new database document of type ndi.document based on an app
NDI_DOCUMENT_OBJ = NEWDOCUMENT(NDI_APP_OBJ)
Creates a blank ndi.document object of type 'ndi_document_app'. The 'app.name' field is filled out with the name of NDI_APP_OBJ.VARAPPNAME().
Help for ndi.app.stimulus.tuning_response/newdocument is inherited from superclass NDI.APP
searchquery - return a search query for an ndi.document related to this app
C = SEARCHQUERY(NDI_APP_OBJ)
Returns a cell array of strings that allow the creation or searching of an ndi.database document for this app with field 'app' that has subfield 'name' equal to the app's VARAPPNAME.
Help for ndi.app.stimulus.tuning_response/searchquery is inherited from superclass NDI.APP
stimulus_responses - write stimulus records for all stimulus epochs of an ndi.element stimulus object
[RDOCS] = STIMULUS_RESPONSES(NDI_APP_TUNING_RESPONSE_OBJ, NDI_ELEMENT_STIM, NDI_TIMESERIES_OBJ, [RESET])
Examines a the ndi.session associated with NDI_APP_TUNING_RESPONSE_OBJ and the stimulus probe NDI_STIM_PROBE, and creates documents of type STIMULUS/STIMULUS_RESPONSE_SCALAR and STIMULUS/STIMULUS_TUNINGCURVE for all stimulus epochs.
If STIMULUS_PRESENTATION and STIMULUS_TUNINGCURVE documents already exist for a given stimulus run, then they are returned in EXISTINGDOCS. Any new documents are returned in NEWDOCS.
If the input argument RESET is given and is 1, then all existing tuning curve documents for this NDI_TIMESERIES_OBJ are removed. The default for RESET is 0 (if it is not provided).
Note that this function DOES add the new documents RDOCS to the database.
tuning_curve - compute a tuning curve from stimulus responses
TUNING_DOC = TUNING_CURVE(NDI_APP_TUNING_RESPONSE_OBJ, STIM_RESOPNSE_DOC, ...)
This function accepts name/value pairs that modifies its basic operation:
Parameter (default) | Description
response_units ('Spikes/s') | Response units to pass along independent_label {'label1'}| Independent parameter axis label independent_parameter {} | Independent parameters to search for in stimuli. | Can be multi-dimensional to create multi-variate | tuning curves. Only stimuli that contain these fields | will be included. | Examples: {'angle'} {'angle','sFrequency'} constraint ([]) | Constraints in the form of a vlt.data.fieldsearch structure. | Example: struct('field','sFrequency','operation',... | 'exact_number','param1',1,'param2','')
See also: vlt.data.fieldsearch
tuning_response - an app to decode stimulus information from NDI_PROBE_STIMULUS objects
NDI_APP_TUNING_RESPONSE_OBJ = ndi.app.stimulus.tuning_response(SESSION)
Creates a new ndi.app.stimulus.tuning_response object that can operate on NDI_SESSIONS. The app is named 'ndi_app_stimulus_response'.
tuningdoc_fixcellarrays - make sure fields that are supposed to be cell arrays are cell arrays in TUNINGCURVE document
varappname - return the name of the application for use in variable creation
AN = VARAPPNAME(NDI_APP_OBJ)
Returns the name of the app modified for use as a variable name, either as a Matlab variable or a name in a document.
Help for ndi.app.stimulus.tuning_response/varappname is inherited from superclass NDI.APP
version_url - return the app version and url
[V, URL] = VERSION_URL(NDI_APP_OBJ)
Return the version and url for the current app. In the base class, it is assumed that GIT is used and is available from the command line and the version and url are read from the git directory.
Developers should override this method in their own class if they use a different version control system.
Help for ndi.app.stimulus.tuning_response/version_url is inherited from superclass NDI.APP