Stimulus Runs

NOTE: Little Used Feature Since Maestro 3

In the past, the two primary uses for stimulus runs in Continuous mode were VOR studies using only the Chair (and a fixation target defined in the Active Targets list), or receptive field characterization using the specialized XYseq target, which uses a grid of XYScope targets.

Lab members have not conducted these kinds of studies for a number of years, so the stimulus run feature has seen little or no use since Maestro 3 was introduced. There are no longer any viable vector oscilloscopes available, so the XYSeq target cannot be used; and Maestro 4 lacks hardware support for the XYScope display platform. Furthermore, you cannot use an RMVideo target in a stimulus run; you can only use it as a fixation target in the Active Targets list. Finally, for technical reasons related to the PSGM hardware, the PSGM cannot yet be used in Continuous mode. Maestro will not prevent you from doing so, but you'll likely find that it causes a stimulus run to abort, especially if you are recording when the PSGM sequence is configured. Since there has been little interest in using the PSGM, this problem is unlikely to be addressed any time soon.

Thus, the only useful "target" for a stimulus run in Maestro 3/4 is the Chair.

A stimulus run is the fundamental experimental protocol in Continuous mode. Like trials, stimulus runs are grouped into run sets in the experiment document tree. While not as versatile as a trial, a stimulus run is designed specifically to present repetitive or periodic stimuli for an indefinite period of time. It is characterized by a few general parameters and a set of up to 20 different stimulus channels. Each channel describes a motion trajectory for a particular target. The table below details the types of stimulus channels currently supported in Maestro, and the motion modes available for each channel type.

One of the most important characteristics of the Chair stimulus channel type is that more than one channel of that type can be turned "on" simultaneously, and all such channels are added to form a composite stimulus waveform. Thus, one can define a rich variety of relatively complex, continuously-changing stimuli driving the animal chair's motion. Of course, this feature does not apply to the PSGM or XYseq channels; for these, only one channel may be enabled (although many can be defined) in any given stimulus run.

Editing a stimulus run on the Run Editor

Like other objects in a Maestro experiment document, a stimulus run is created by selecting the appropriate command from the Object|New menu. To load a stimulus run into the Run Editor, simply double-click on its label in the document object tree. The editor includes several individual controls in the top-left portion of the form, plus two grid controls -- one displaying the parameters for every stimulus channel defined in the run, and the other displaying the set of XY scope targets involved in an XYseq stimulus. A sample snapshot of the editor is shown below.

General parameters

Duty Cycle -- This edit control displays the duration of one cycle of the stimulus run, in milliseconds. Any integer value in [0..999999] is admissible. At the end of each duty cycle, all active stimuli are immediately turned off and the run repeats from the beginning. Thus, it is important to design the stimulus channels so that they are finished by the end of the specified duty cycle; otherwise, unexpected behavior -- particularly with the Chair target -- may result. If the run includes an active XYseq channel, Maestro will adjust the duty cycle at runtime to ensure it is large enough to encompass the projected duration of the XYseq stimulus.

#Cycles to Auto-stop -- If this parameter is nonzero, Maestro will automatically terminate the stimulus run after the specified number of duty cycles have elapsed. If it is zero, the stimulus run will repeat indefinitely until the user manually stops it. The edit control admits any integer value in [0..9999].

Duty Marker Pulse -- This combo box selects the digital marker pulse channel on which a brief pulse is delivered at the start of each duty cycle; channels DO<1..10> on the marker pulse delivery module (see Apparatus) are available for this purpose. Rigs are typically configured to route such "marker pulses" back into the Maestro's digital input port so that they are timestamped during presentation of the stimulus run. Analysis programs can use such markers to help parse each duty cycle's worth of data from the recorded file.

Pos Offset H, V -- These parameters are intended to allow the user to offset the initial position of a Fiber1 or Fiber2 target at the start of the stimulus run. Since these "optic bench" targets are no longer supported, these parameters are no longer used.

The stimulus channel table

The grid control filling the bottom portion of the Run Editor displays the parameters of all stimulus channels currently defined in the stimulus run object. Each channel is represented by a single row in the table. The first column displays the channel number, and the next five columns list parameters that are common to all supported stimulus channel types:

    • ON/off -- This flag determines whether or not a stimulus channel is presented at all. This might seem unnecessary -- typically, a user constructs a separate stimulus run for each distinct experimental protocol, so why bother to define a stimulus channel if you do not turn it on?! However, another approach might be to create a stimulus run with a long list of channels, only some of which are ON to achieve the desired composite stimulus. Different experimental protocols could be "created" on the fly by turning on different groups of channels in this "master" stimulus run.

    • Marker -- This multiple-choice parameter selects a marker pulse channel on which a brief pulse is delivered to mark the start of the stimulus. Allowed values are [DOUT1 .. DOUT10] and NONE; in the latter case, no pulse is sent. As with the Duty Marker Pulse, these channel marker pulses are typically recorded during the experiment to ease the task of parsing the data file and synchronizing the timeline of behavioral and neuronal responses with the stimuli presented.

    • Type -- The stimulus channel type: Chair, XYseq, or PSGM.

    • Motion -- The motion mode. Allowed values depend on the channel type.

    • t0 -- The start time of the stimulus relative to the beginning of the run's duty cycle, in milliseconds. Any integer in [0..999999] is admissible here.

The remaining parameters in a stimulus channel row will vary in number and content, depending on the channel type. See the table at the top of this page for a complete discussion of the parameters defining the different stimulus channels. Right-click repeatedly on the cell displaying the channel type, and notice how the length of each row changes (if a cell in the grid is empty with a light gray background, then it contains no information). This might be a little confusing, because there are no header labels for parameters following the t0 column. You can check the identity of any such parameter by right-clicking on the cell. A tooltip displaying the parameter's name appears immediately above the cell for a few seconds.

All parameters in the stimulus channel table fall into two categories: numeric or multiple-choice. To edit a numeric parameter, double-click on the cell or simply start typing if the focus is already on that cell. An in-place edit control appears on top of the cell. Type in the new value and hit Enter or click somewhere else on the grid. The new value appears in the grid, corrected if necessary. The edit control restricts keyboard input, allowing only the digits 0-9, the minus (-) sign if negative values are permissible, and one decimal point (.) if floating-point values are allowed. The control also restricts the total number of characters that can be entered, and the number of digits that can be entered after the decimal point.

To edit a multiple-choice parameter, double-click on the cell to invoke an in-place combo box control. Its dropdown list is initially displayed, and the current choice is selected in this list. Use the mouse or arrow keys to make a new selection. Alternatively, right-click (or Shift-right-click) on the cell to move to the next (or previous) choice in the list without invoking the combo box.

A newly created stimulus run will initially contain no channels. To add a stimulus channel, right-click on the first column of the stimulus channel grid. A context menu appears, offering a selection of commands that operate on the grid. Some commands will be selectively disabled depending on the context.

    • Remove All -- Removes all stimulus channels defined in the run object. Use this command to "start from scratch".

    • Copy -- Make a copy of the stimulus channel displayed in the row that was right-clicked. The copy can then be pasted somewhere else in the grid via the Paste command.

    • Cut -- Same as Copy, except that the selected stimulus channel is removed from the grid.

    • Delete -- Remove the stimulus channel displayed in the row that was right-clicked. No copy is made; the definition of the stimulus channel is lost.

    • Paste -- Insert a copy of the stimulus channel that was last "copied" to the clipboard. The command is disabled if there's nothing in the clipboard. The new channel is inserted into the row that was right-clicked, shifting the other channels down one row as needed.

    • Insert -- Insert a new stimulus channel (with default parameter values) at the row that was right-clicked, shifting the other channels down one row as needed.

    • Append -- Append a new stimulus channel (with default parameter values) at the bottom of the channel grid.

Targets for the XYseq stimulus

Another grid control occupying the top-right corner of the Run Editor lists the set of XYScope targets participating in a XYseq stimulus. If the stimulus run does not involve a XYseq channel, this target table is usually left empty. There are 3 columns, displaying the name of the target and the coordinates (Xo, Yo) of the target window's center point (remember that an XYseq is intended to move only the random-dot patterns, not the target windows). To edit a coordinate value, double-click on the cell to invoke the usual in-place numeric edit control. Alternatively, you can right-click (or Shift-right-click) on the cell to increment or decrement the coordinate value. To change the identity of a target, double-click on the cell to invoke an in-place tree control displaying the contents of the Targets branch in the document object tree. The currently selected target is highlighted in the tree; find the name of the target you want and double-click on the label to replace the original target. Make sure you choose a target that is not already in the XYseq target list; the same target cannot appear twice.

Clicking on any cell in the first column of the target table will invoke a context menu that lets you add and remove targets from the list, among other operations:

    • Remove All -- Empty the XYseq target table. A quick way to "start from scratch".

    • Delete -- Delete the row that was right-clicked.

    • Move to origin -- This is a quick way to reset a target's center point to (0, 0) degrees.

    • Insert -- Insert a new XYScope target at the current row in the target table. The in-place tree control appears; select the name of an XYScope target that does not already appear in the table. A new row is inserted at the current position in the table, and the other rows are shifted down.

    • Append -- Similar to Insert, except that the new target entry is appended to the bottom of the table.