JMWork

JMWork is a Java-based program that can be used to review Maestro and Cntrlx data files before analyzing them further in Matlab. It replaces two older programs: the original UNIX-based XWork; and Justin Gardner's MWork, a Matlab GUI program that some lab members had adopted and tailored for their own use. The general design of the user interface borrows heavily from MWork, so MWork users will probably find it very easy to learn JMWork. As of 2011, XWork is no longer supported and MWork has fallen out of use. Only JMWork is continually updated as changes are made to Maestro and its data file format.

With JMWork you can:

    • Review the recorded timeline of the various data collected in Maestro: analog data traces, the "spike" events detected by the rig's window discriminator and timestamped on digital IO channel 0, other digital event markers, and the 25KHz sampling of the extracellular electrode signal. Through a table of channel trace settings, you control whether or not a given channel is displayed, its trace color, and offset. All such settings are "remembered", so you don't have to fix them every time you start JMWork.

[JMWork logo]
    • Highlight a segment of the recorded timeline, [t0..t1]. Start time t0 may be specified as an elapsed time in the recorded timeline or relative to the time of occurrence of the N-th event on one of the digital input channels. Similarly, t1 may be specified by t0 + D for a fixed duration D, or relative to the time of occurrence of another digital event pulse. This highlight region can help focus your attention on a small portion of the timeline when you're trying to review many reps of a trial as quickly as possible.

    • Mark saccades in the recorded timeline using mark1-mark2 pairs, or cut saccades from individual eye-velocity trajectories. Mark or cut saccades automatically with a single keypress, then review and adjust them interactively on the trace display. You can also configure JMWork to automatically cut saccades when you first open the file (unless it already contains JMWork actions).

    • Define mark segments spanning a portion of the recorded timeline.

    • Mark a file as "discarded". User can choose one of three discard mark styles: (1) a single mark segment spanning the entire recorded timeline (XWork style); (2) a single mark1 at t = -1 (MWork style); or (3) a dedicated and explicit "discard" action code (JMWork style). The last of these options was introduced in JMWork 1.4.0 and is the preferred option for new users. The other options are maintained to avoid breaking existing analysis code. Remember that the discard-mark style is a user preference. It is set via a combo box in the Display panel.

    • Analyze the 25KHz sampling of the extracellular electrode signal and extract spikes detected therein -- ie, "spike sorting". User preferences set the trigger level, single-spike length, and pre-trigger interval. The individual waveforms of all spikes detected are displayed in a separate canvas to the left of the trace display. Up to six different constraint boxes are defined interactively on the spike sorter window. Spikes which touch all "require" boxes and lie outside all "exclude" boxes are "accepted"; all others are "rejected". The spike sorter algorithm's current output is also displayed above the electrode signal in the trace display, and it can be copied to any one of 200 "sorted-spike trains", which are appended to the data file. (NOTE: Originally, JMWork only supported 13 sorted-spike train channels; as of version 1.6.0, there were 50 available channels. Version 1.9.1 increased the number of supported channels to 200.)

    • Copy the window discriminator's spike train (in Maestro, this is the event train recorded on DI<0>) to any of the sorted-spike train channels.

    • Manually add or remove individual spikes to any sorted-spike train channel. For example, if the window discriminator's output is missing some real spikes and/or includes some false ones, use this feature to generate a sorted-spike train that is a corrected version of the discriminator's output.

    • (As of version 1.1.0) Collect channel data across multiple trial presentations in the current data directory and save the collected traces, or their average, in a DataNav dataset source file. These files can then be read directly into DataNav or loaded into Matlab for further analysis.

    • (As of version 1.2.0) Review target definitions and other pertinent information stored in the data file's header or selected "metadata" records within the data file. Display the computed trajectories of participating targets designated as fixation target #1 or #2 during a trial (Trial mode only).

    • (As of version 1.3.0) Read in and do spike-sorting on the 50KHz extracellular electrode signal data recorded by the old DOS-based spikesPC program and stored in a separate file. This feature is available only for data files generated by Cntrlx after 29 Jan 2002 (data file version = 1); the name of the spikesPC companion file is included in the header record of such data files. The companion file must be stored in the same directory as the Cntrlx data file.

    • (As of version 1.4.0) Attach labelled tags to the data file's recorded timeline. A tag is similar to a mark1 or mark2 timestamp, but it also associates a user-specified label with that timestamp. This feature was added to provide a truly general-purpose marker that users can employ for their own purposes, since the other annotations (mark1, mark2, mark segment, and per-channel saccade cuts) are typically dedicated to a specific usage.

Important notes and limitations

    • JMWork currently cannot handle Continuous-mode data files generated by Cntrlx prior to 29 Jan 2002. Such data files lack a header, which includes the list of analog data channels that were recorded in the file. To parse these older files, you must separately specify the recorded channel list and JMWork currently lacks a mechanism for doing so.

    • While JMWork now supports spike-sorting of the 50KHz spike waveform saved in the companion spikesPC file, it only can do so for data files generated by Cntrlx after 29 Jan 2002. Older Cntrlx data files (version 0) do not include the name of the spikesPC companion file, so there's no automated means of identifying the proper file.

    • Note that, if you make any changes (mark saccades, add a sorted spike train, and so on) to the data file, JMWork will automatically save it when you move on to another file (or when you exit the application). You'll get no warning, unless the save operation fails. This is by design, so that users can fly through files as quickly as possible!

    • JMWork's command menu is very simple. As in MWork, users do most of their work interactively in the trace display or spike sorter windows, or through a variety of single keypress commands. JMWork adopts many of the same keyboard assignments that existed in MWork. Go here for a complete listing of the "hot key" commands.

This section is it as far as a JMWork instruction manual goes. There's very little "help" built into the application, with the exception of some tooltips associated with individual widgets in the control panel that sits beneath the two canvas windows. A JMWork version history is in the Current Status chapter of this online guide, and the JMWork releases are available on the Downloads page.