If the optional file name argument is given, analysis will attempt to perform a Load operation on this file. (The file can be a parameter file, or a run file.) If no file is specified, you will have to select one later.
At the bottom of the display, analysis prints the following menu prompt line:
This is the main menu, the top level in a hierarchy of menus. To initiate an operation in this menu, or in any of the other menus in the hierarchy, type the first letter of an item in the menu. Some items will perform an operation and/or prompt you for input; other items will simply bring you to another menu, one level lower in the hierarchy. An alternative method of selection is to highlight the item you want from the menu, then hit RETURN. The space bar will cause the next item to be highlighted; the BACKSPACE key (or DEL key, if this is your erase key) will highlight the previous item. If an item is highlighted, the last line of the display briefly describes the choice, or shows the next menu. Pressing the ESCAPE key at any time will usually bring you back to the main menu. Some operations bring you back directly to the main menu after completion. Others leave you in some lower level menu, in which case the position in the menu hierarchy is shown at the left of the menu.
If your current analysis method is a form of graph, this selection allows you to see the numeric values used to generate the graph, and to save these numbers in an ASCII text file. By default, only the Y-axis values are saved, but you can change this by setting the "Number list format" string to indicate which values you want. This string will be output for each point in the graph, and any "x" or "y" in the string is replaced with the X or Y value for that point. Some of the titles and labels on the graph are also saved in this file. The information is first displayed on the screen, then you are prompted for the file name. The file will be created if it does not exist, or overwritten if it does. If you decide not to save the information, just hit RETURN without entering a file name.
When checking the "Run file" parameter, it also checks that the run file is present and readable. It will reread the file if some other program has modified it. Runs of averaged data will be rejected for most analysis methods that involve traces, since they require the sample number from the frames of raw data. This number is not available in averaged runs, since an average has no inherent "time of occurrence." The only trace analysis allowed on an averaged run is "Trace averaging by frame list."
Once all parameters have passed the test, the analysis is performed, and the results are displayed. Unless the "Top title display" option has been turned off, The top two lines of the display should indicate the run file name, the run description, and the "Graph description" string, as well as a few other statistics. If the "Graph description" has not been set, then the range analysed is shown instead in brackets, followed by the tag list if this is a trace analysis which uses the tag list. See ANALYSIS METHODS below for more details about the various analyses.
The first time the Go operation is invoked for a new analysis method, when the "Auto scale" option is disabled, the scaling parameters may be completely inappropriate. If they are set such that no data would be in range, the program will recalculate them, once, as though automatic scaling had been enabled. However, if any data points are in range, the scaling will not be altered. It is therefore usually a good idea for you to re-enable the "Auto scale" option when changing analysis method, or when changing parameters such that the display range will be altered.
If the "Get cursor readings" option is enabled, the program will pause after every "sweep" of data is displayed, to allow you to get readings from the data. You can set two markers, A and B, to two different points on the data, by using the pointing device to move the cursor to the desired position, then pressing either button A or B. The X and Y coordinates for the markers are displayed above the menu. Pressing the space bar will then cause the marker last set to advance to the next plotted point; the BACKSPACE key (or DEL key, if this is your erase key) will back up the marker to the previous plotted point. Press button C or D when you are done, then the next sweep, if there is one, will be displayed. You can also type the letter Q to quit entirely; this will simply disable the "Get cursor readings" option. Note that this option also affects other parts of the program, such as visual parameter setting; it is not restricted to the Go operation. It is usually wise to disable this option as soon as you are done with it, so it won't come back to haunt you later.
If the "Preview averaged data" option is enabled, and a trace or waveform average is being performed, analysis will display every "sweep" that is being added into a bin. After each screen-full, you are asked if you want to see more. A response of Y, or RETURN will get you the next screen-full. A response of N will cause the rest of this operation to be performed without previewing. Hitting the ESCAPE key, instead of Y or N, will abort the Go operation. After the last screen-full of raw sweeps, hitting any key will cause analysis to clear the screen and display the averages.
You will be prompted for a parameter file name. The current file, if one was loaded, is the default. The file name suffix .prm is appended to the given file name, if it has no suffix. The parameters are then saved in the named file, overwriting any previous contents.
Note that if you enter a file name containing a ".", but not ending with the .prm suffix, this suffix will not be appended automatically. Instead, whatever follows the last period in the file name is assumed to be the suffix.
The program checks for conflicting run file and parameter file names when you Keep parameters after a Set/File operation, or Load parameters saved with this file name conflict. For example, if eng01.prm points to eng03.frm, instead of eng01.frm, you will be warned.
First, if any of your current parameters have been modified, analysis asks you if you want to save them. If you answer N, it will load the new ones, discarding the current ones. If you answer Y, it will perform a Keep operation, i.e. it will ask you in which file you want to keep your current parameters.
Next, you are prompted for the name of the parameter file to load. Once the name is entered, the parameters will be loaded from the file, replacing your current set. If a file with the given name does not exist, and the name does not have the .prm suffix, then this suffix will be added to the name. After loading the parameters, the program attempts to open the run file whose name was stored in the parameter file. If it can't find the run in the location indicated, it looks for the run in the directory which contained the parameter file, as long as the base file name is the same for both files.
The program checks for conflicting run file and parameter file names when you load parameters saved with this file name conflict. For example, if eng01.prm points to eng03.frm, instead of eng01.frm, you will be warned.
If, instead of giving a parameter file name, you give the name of a new run, with no associated parameter file, then the current set of parameters is cleared (all parameters are set back to their initial values, if any), and the named run is selected as the run to be analysed. This is like performing a Reset/All operation, followed by a Set/File operation.
A Quit operation from any lower-level menu simply brings you up one level.
You will first be prompted for the waveform number of the waveform whose parameters are to be set. You are then presented with a new menu. See WAVEFORM PARAMETERS below for more details.
When you Quit from this menu, if you modified any of the waveform parameters, you are asked if you want to save these. A response of N will return you to the main menu, and the changes are lost. If you answer Y, you are then asked for the waveform number. Normally, you will want to use the default value, to keep the parameters in the same file as the one from which they were loaded. You can, however, enter a new number, to transfer parameters for one waveform to another waveform.
Typing a question mark, (?), at any menu will cause the program to search for a "help page" describing the currently highlighted menu item. If a help page exists for that item, it will be displayed on the screen, and if there is more than one screen-full of text, the program will pause after each screen-full, waiting for you to hit a key. Hitting the ESCAPE key will get you out of the help facility, and back to the main menu. Any other key will cause the help page to continue being displayed. Once the text has been displayed, the program leaves you at the same menu item where you called up the help facility. If no help page exists for the highlighted item, the program summarises the current menu, as it does for the slash key above. Help pages exist for each analysis method selectable under the Analysis menu, all analysis and waveform parameters, and all operations under the Maint menu.
Thirdly, you can find out which parameters must be set, and which key sequences to type to get to these parameters, by selecting the View/Required operation, or the View/All operation, from the main menu. These display the parameters required for the currently selected analysis method, or all of the program's parameters.
The usual sequence of events, after you selected a run file to analyse, is to first select an analysis method, under the Analysis item of the main menu. Help pages are available for any item under Analysis which sets the analysis method. These help pages contain the same descriptions found under the heading ANALYSIS PARAMETERS below. Next, select View/Required to see which parameters you have to set. Type in the key sequence given for each parameter you wish to set. If you are unsure of how to set any parameter, just hit RETURN when prompted for the parameter, to leave it unchanged. The menu item for that parameter will now be highlighted, so you can call up the help page for it. Once all parameters are set, select Go from the main menu, to perform the analysis.
Certain display parameters will affect the appearance of the resulting graph. Most will appear in the list of "Required" parameters, but some may not. To get a complete list of all display parameters, select View/Display-options.
For all of these analyses, the parameters "Start of run" and "End of run" can be used to limit the range of data to be analysed.
For most of these analyses, the "Interpolation" parameter specifies whether linear interpolation should be performed on the displayed data. If disabled, only the data points are shown. If enabled, the data points will be shown, and will be interconnected by line segments. The program normally interpolates only between points that are shown on the graph, and completely ignores points that are clipped out because they are too high or too low. This may give certain graphs a very "broken" appearance. If both the "Interpolation" and the "Extend interpolation" options are enabled, then the program will perform partial interpolation between clipped points; line segments are drawn toward these points, up to the top or bottom of the graph.
Many of these analyses are based on the phases of cycles on a particular waveform. These cycles correspond to bursts of activity on the waveform, either duty cycles (low frequency oscillations) or spike trains (bursts of spike activity). A cycle can span the start of one burst of activity to the start of the next, or go from the end of one burst to the end of the next. (The number of cycles is therefore one less than the number of bursts of activity in the range being analysed.) The "Cycle W.F. #" parameter selects this waveform, and you must set the cycle-related (or spike-train related) waveform parameters for this waveform. If the "Base cycles on stop time" option is enabled, then cycles will start at the ends of activity bursts, rather than at the starts of these bursts. If the "Base cycles on spike trains" option is enabled, then cycles will be based on bursts of spike activity on the selected waveform, rather than on its duty cycles. These two options combine to give four possible types of cycles from any given waveform.
Because the cycles can vary in length, they must be normalised to the same length, so that both the starts and the ends of the cycles line up. For averages based on cycle phase, the normalisation is always performed. For graphs where the X-axis represents the cycle phase, normalisation can be enabled or disabled via the "Normalization" option. If disabled, only the starts of cycles are lined up, and X values represent time from the start of the cycle. If enabled, both the starts and ends are lined up, X values represent the position in the cycle, from 0 to 1, and the cycle displayed may be repeated several times, as selected by the "Cycles on graph" parameter.
The "Cycles on graph" parameter can also be set to 0; one cycle will still be displayed, but it will be drawn as a polar plot. The position in the cycle (usually the X coordinate) determines the angle where a point is drawn. The angles are labelled around the graph, in degrees. An angle of zero gives some point directly right of centre, 1/4 cycle is directly above centre (90 deg.), 1/2 cycle directly left (180 deg.), etc. The Y coordinate determines the distance of the point from the centre of the graph. It is usually a good idea to disable auto-scaling, and fix the Y-axis lower-bound at 0 for polar plots. The Y-axis labels appear in the upper-left quadrant of polar plots. They are drawn using the same scaling as a one-cycle linear plot. You can easily switch between the two, by alternating the "Cycles on graph" parameter between 0 and 1. Only normalised cycle graphs make use of this parameter, so only they can be made into polar plots.
You can also make the program treat the whole range to be analysed as one single cycle, by setting the "Cycle W.F. #" to -1. This is useful with certain cycle-based analyses, to view the data over the whole run instead of by cycle.
Many analyses are also concerned with spikes, or action potentials, on a waveform. The "Spike W.F. #" parameter selects this waveform, and you must set the spike-related waveform parameters for this waveform. Many of the action potential graphs are concerned not only with individual spikes, but also with bursts of activity, or spike trains. In those cases, you should also set the spike train related parameters.
When graphs of averaged data are displayed, the "Display std dev" option controls whether the standard deviation curves are shown along with the mean curve. If the "Histogram display" option is enabled, instead of the usual graph, you will get a histogram showing the number of values added to each bin in the average. If the "Show areas under curves" option is enabled, the area under the mean curve is shown over the graph, as well as the areas under the standard deviation curves, if these are displayed.
Curvilinear regression can be performed on the data of any X-Y graph. The "Regression degree" parameter can be set to the degree desired: 0 for no regression, 1 for linear regression, 2 for quadratic, etc. (up to 20). The regression line or curve will be drawn on the graph. A line above the graph will indicate the correlation coefficient (R2), the intercept (b), and the slope coefficients (m).
This analysis method can also be used to view raw traces; just set the "Frame list" to select a single frame, and set the "Trace # list" to select the traces you want to see. The traces are shown in numerical order, and any repetitions in the list are ignored.
If your current run is a run of already averaged data, you can still perform this averaging. The total number of sweeps shown takes into account the number of sweeps already averaged into each frame in the run. The "Start of run" and "End of run" parameters have no effect here, since frames of averaged data have no inherent "time of occurrence."
The range of voltage levels can be restricted to a smaller range, by setting the parameters "Min W.F. amplitude" and "Max W.F. amplitude". Only frames whose associated waveform level readings stay within these bounds will be included in the average. Normally, these two parameters only restrict the range, and do not enlarge it: if the parameters are beyond the range of voltage levels in the waveform, it is the measured range which is divided into bins, not the range defined by the parameters. However, if the "Fixed W.F. level bins" option is enabled, then the two parameters above will always define the range which is divided into bins, even if it exceeds the range of levels in the waveform.
Deleted frames, and frames whose tag values are not in the "Tag list" are excluded. You can also exclude frames that occur during the inactive phase of cycles on the waveform selected by the "Cycle W.F. #", by enabling the "Active cycle phase only" option. This restricts the average to frames that occur between the start and stop times of activity in any cycle. If the "Base cycles on stop time" option is also enabled, then the opposite is true; frames occurring in the inactive phases are included, and frames in the active phases are left out.
The parameter "W.F. avg window" controls the duration of each sweep, and "W.F. avg delay" is a positive, zero or negative offset from the time the sweep is triggered to the time the sweep's window begins.
The "Spikes to skip" parameter can be set to indicate how many spikes to ignore at the beginning of each cycle. If it were set to, say, 5, then 10 bins would represent the sixth to the fifteenth actions potentials. If the "Reverse spike occurrences" option is then enabled, the 10 bins would represent the fifteen down to the sixth action potentials from the end of the cycle.
If the "Take interval after spike" option is enabled, the bin for a given sweep is selected based on the interval to the next action potential, rather than the interval from the previous one. No sweep is triggered for the last spike in the range to be analysed, rather than the first, nor for the last spike in each train, when spike trains are set.
If the option "Base X on stop time" is enabled, times for the end of activity, rather than for the start of activity, are used for the X coordinates. If the option "Base X on spike trains" is enabled, the start or end of spike trains for this waveform are used for the X coordinates, rather than the usual (duty cycle) activity. The "X-axis cycle offset" is used to effectively time-shift the cycles for the purpose of determining in which cycle a particular burst of activity or spike train falls. This allows more reliable results in borderline cases. For example, if a burst usually starts somewhat after the start of the cycle, but starts a bit early for a few cycles, you can select a negative offset of a few milliseconds so that these few bursts will properly be associated with the cycles in which they occur, even though they start a few milliseconds before the start of their associated cycles. Similarly, a positive offset can be used if a few bursts end slightly after the end of the cycle in which they occur. Note that this offset does not affect the calculation of the coordinate, so it is possible to get negative points plotted. Similar options for the Y-axis waveform exist, and are used in the same way.
If the "Cycle durations on X" option is enabled, the usual X-axis is overridden by the cycle durations. In other words, the graph becomes one of start or stop time of activity in cycle, versus cycle duration.
The "Burst cycle offset" is used to effectively time-shift the cycles for the purpose of determining in which cycle a particular burst of activity falls, much like the cycle offset parameters for the "W.F. activity start & stop time analysis" graph above. The "Burst duration type" parameter determines the way in which the burst duration is calculated for each burst of activity. The initial value, 0, means the duration is the time from the start of the burst to the end of it. A 1 means the time from the start of the burst to the start of the next burst. A 2 means the time from the end of the burst to the start of the next, and a 3 means the time from the end of the burst to the end of the next. If the "Relative burst durations" option is set, burst durations are shown as a percentage of the corresponding cycle durations.
If the "Burst positions in cycle" option is enabled, the usual X-axis is overridden by the cycle positions of the activity bursts. In other words, the graph becomes one of burst duration versus position of burst in cycle. Just like any of the other graphs of "something" vs cycle, this graph can be normalised, and the "Cycles on graph" parameter will then take effect.
If the "Flip durations" option is enabled, the usual X and Y axes are transposed, giving you a graph of cycle duration versus burst duration. If the "Flip durations" option and the "Burst positions in cycle" option are both enabled, the graph becomes one of cycle duration versus position of burst in cycle.
When the "Second W.F. bursts" option is enabled, the end of burst durations or train durations are taken from the cycle activity recorded in the waveform parameters of a second waveform, selected by the "Second ampl. W.F. #". Either the start or end of the burst is used, depending on the "Burst duration type" selected. If the "Second W.F. trains" option is also selected, it overrides this one, so the trains are used instead of the cycle activity for the second waveform.
The "Amplitude" reported at the top of this graph is simply the difference between the minimum and the maximum averages calculated, i.e. a peak-to-peak amplitude. On a DC-coupled intracellular recording of a motoneuron, this peak-to-peak amplitude is the locomotor drive potential or L.D.P.
If the "Preview averaged data" option is enabled, the calculated minimum and maximum levels are displayed as markers on the waveform. You can use the cursor to move the markers to the levels you desire, to correct the L.D.P. calculation. When you exit the preview display, the complete graph is shown. If this option is set, and you are repeating the "Go" operation when the graph does not need to be recalculated, the program will ask you if you want to recalculate it anyway, and if not, whether you want to review the calculated levels.
The top title lines of the graph will show a few calculated statistics: the mean L.D.P., trough & peak (min. & max. amplitude). If the alternate unit specifier for the displayed waveform is "mmHg", it is assumed that the signal is blood pressure, and in this case the mean arterial pressure is also shown, calculated as 1/3 of the peak plus 2/3 of the trough. If the "Display std dev" option is enabled, another top title line will show the standard deviation calculations for these means.
If the "Show time on X-axis" option is enabled, the usual X-axis is overridden by the cycle start times. In other words, the graph becomes one of L.D.P. amplitude versus time of cycle occurrence in the run.
If the "Flip L.D.P. and duration" option is enabled, the usual X and Y axes are transposed, giving you a graph of cycle duration versus L.D.P. amplitude. If the "Flip L.D.P. and duration" option and the "Show time on X-axis" option are both enabled, the graph becomes one of cycle duration versus time of cycle occurrence.
The position of these two points in the frame's window are selected by the parameters "Trace amplitude point" and "Trace amplitude ref". The first select the actual point to be sampled, and the second selects the reference measurement location. These two parameters have corresponding "window" parameters, which can be used to select two ranges of points in the frame's window: the program will search for the maximum point, or the minimum point, in each of the two ranges, based on the setting of the "Find max trace amplitude" parameter. If either of the two "window" parameters is set to 0, only one point is used for the corresponding measurement. A line above the graph will indicate which point or range of points was used for each of the two measurements. Regardless of whether the sample level and the reference level are obtained each from a single point, or the minimum or maximum in a range of points, the reference level is subtracted from the sample level to obtain the amplitude reading for the frame.
If the "Trace amplitude ref" option is set to a negative value (e.g. -1p), then the reference level is not measured, and the sample level is taken as an absolute reading.
If the "Average trace ampl. ref." option is enabled, rather than searching for the maximum or minimum point in the "Trace ampl. ref window" for each frame, the program will instead take the average of the points in this range as the reference level.
If the "Trace ampl. integration" option is enabled, rather than searching for the maximum or minimum point in the "Trace ampl. point window" for each frame, the program will instead integrate (sum up) the points in this range. (What are actually summed up are displacements relative to the reference level measured.)
The measurements for all cycles in the range to be analysed are overlaid on the graph. Deleted frames, and frames whose tag values are not in the "Tag list" are excluded.
Deleted frames, and frames whose tag values are not in the "Tag list" are excluded. You can also exclude frames that occur during the inactive phase of cycles, or the active phase, in the same way as for the "Trace averaging based on W.F. level" analysis above.
The trace amplitude measurements are taken the same way they are for the "Raw trace amplitude vs step cycle" graph above. Deleted frames, and frames whose tag values are not in the "Tag list" are excluded.
The trace amplitude measurements for the X axis are taken the same way they are for the "Raw trace amplitude vs step cycle" graph above. Deleted frames, and frames whose tag values are not in the "Tag list" are excluded.
The trace amplitude measurements for the Y axis are taken in a very similar way. The position of the two points in the frame's window are selected by the parameters "Second trace ampl. point" and "Second trace ampl. ref". These two parameters have corresponding "window" parameters, which can be used to select two ranges of points in the frame's window; the action taken in these ranges is determined by the parameters "Find second max trace ampl.", "Average second trace ampl. ref." and "Second trace ampl. integration".
The "Burst cycle offset", "Burst duration type", "Relative burst durations", "Flip durations", "Burst positions in cycle", "Second W.F. bursts" and "Second W.F. trains" parameters have the same effect as in the "W.F. activity burst duration vs cycle duration" graph.
For this graph, and for the sorted one below, when you disable normalisation and "Auto scale", you can set the lower bound and upper bound of the X axis to go beyond the start and end of each cycle and the program will display the points occurring in those areas (in the previous or next cycle).
If the "Take interval after spike" option is enabled, the interval to the following spike, rather than the previous one, is calculated. No interval is plotted for the last spike of the last cycle, if no following spike is found in the selected range. If spike trains have been set, no interval is plotted for the last spike in each train.
For this graph, and for the similar raw instantaneous frequency graph below, when you disable normalisation and "Auto scale", you can set the lower bound and upper bound of the X axis to go beyond the start and end of each cycle and the program will display the points occurring in those areas (in the previous or next cycle). This feature will not work for the averaged graphs.
The parameters "W.F. amplitude delay" and "W.F. amplitude window" indicate a range of points, relative to the point where the action potential occurred, used to obtain a level reading on the waveform selected by the "Amplitude W.F. #". The range of voltage levels can be restricted to a smaller range, by setting the parameters "Min W.F. amplitude" and "Max W.F. amplitude". Only action potentials whose associated waveform level readings stay within these bounds will be included in the histogram.
No interval is plotted for the first spike in the selected range to be analysed, since a previous spike is needed to permit an interval calculation. If the spike trains for the former waveform have been properly set, intervals are calculated and plotted only for spikes in the same spike train, and no interval is plotted for the first spike in each train.
If the "Take interval after spike" option is enabled, the interval to the following spike, rather than the previous one, is calculated. No interval is plotted for the last spike in the range to be analysed, nor for the last spike in each train, when spike trains are set.
The spike trains for this waveform must be properly set. Intervals are calculated and averaged only for spikes in the same spike train, and no interval is measured for the first spike in each train.
This graph is most useful when dealing with a differentiated waveform. Spikes on the differentiated waveform, indicating high rates of change in level on the original waveform, can be used to trigger firing level measurements on the original waveform.
If the spike trains for the waveform selected by the "Spike W.F. #" have been properly set, statistics will be given for activity on this waveform, relative to the above cycles.
You can limit the number of spikes counted in each sweep, to a certain number allowed before the sweep was triggered (if using a negative delay), and a certain number allowed after the sweep was triggered. This is done by setting the parameters "Corr. spikes before trigger" and "Corr. spikes after trigger".
The program performs a test of statistical significance on the peak of the graph, and indicates above the graph if the peak is significant. A significant peak is one where the peak count exceeds the mean baseline count by more than 3.29 times the root of this mean. The results of a "K test" are also shown above the graph. These tests are described in Short term synchronization of intercostal motoneurone activity by T. A. Sears and D. Stagg, J. Physiol. (1976), 263, pp. 357-381.
If the "Calculate overlap" option is enabled, the program calculates the total amount of time in which the activity on each waveform overlaps with activity on the waveform selected by the "Cycle W.F. #". This amount is shown as a percentage of the total "on" time of these cycles, on the line above each waveform in the display. The activity for each waveform is measured from the cycle activity bursts, if these have been set for this waveform, or the spike activity trains otherwise. If neither is set, the line will remain blank.
There is no corresponding "Raw trace display," since this can be accomplished with "Trace averaging by frame list."
It is possible to get raw waveforms and a raw trace displayed together, by enabling the "Mark frame positions on W.F." option. The top quarter of the display will be used to display sweeps from the trace selected by the "Amplitude trace #". The sweeps are displayed vertically, and the first point of each sweep is lined up with the time (on the waveforms below) at which the frame containing the sweep was triggered. Deleted frames, and frames whose tag values are not in the "Tag list" are excluded. If the trace selected by the "Amplitude trace #" doesn't exist, the frame positions are indicated, but no sweeps are shown.
If the "Partial W.F. resolution" option is enabled, the program will limit the resolution of the displayed waveforms to the number of points specified by the "Display resolution" parameter. This is useful for speeding up an uninterpolated display, when you don't need the full resolution.
All of these parameters can be set in "text mode," where you are prompted for a value for the parameter, and you type in the number or string desired. Many parameters can also be set visually. When setting parameters visually, a sweep of data is displayed on the screen, cursor tracking is enabled, and you are prompted with a "pointing device menu". Parameters are set by using the pointing device to move the cursor to the desired position on the screen, then pressing either button A or B. Button C is usually used to return to the previous menu, but is sometimes used to set a third parameter. The menu indicates which button sets which parameter. Button D usually gets you out of the visual mode of parameter setting, and returns you to your previous menu.
When setting parameters visually, you may or may not want the data displayed to be interpolated (i.e. you may want a line graph, or simply want the data points). Usually, the "Interpolation" option will apply to the data shown. It can be set by selecting Set/Disp-opt/Toggle/Interp. An exception to this is the display of waveforms for visually setting parameters, where interpolation is instead controlled by the "W.F. Interpolation" option. This option can be set from two different places in the menus, by selecting either Set/Disp-opt/Waveform/Interp.-W.F. or W.F.-activity/Set/Interp.-W.F.
When setting a numeric parameter in "text mode," you can enter the word min or max to set it to the minimum or maximum allowed value.
When setting, in "text mode," a parameter which is part of the analysis parameter file, instead of entering the parameter value in the usual way, you can enter a string of the form @@file, where file is the full name of an existing analysis parameter file, including the .prm suffix, if it has one. The program will set the selected parameter by reading its value from the named file. This feature is especially useful when setting up automatic command scripts for analysis.
Many of these analysis parameters are not set initially, while most are set to some initial value. Because this program can be used for a wide variety of analyses, the initial values of these parameters may not be appropriate for many of your needs. If this is the case, you may want to customise the initial set of analysis parameters that the program will use. To do this, just get into the program without selecting a run file, then set all of the parameters to suit your preferences. Once the parameters are to your liking, Keep them in the analysis parameter file .analysis.prm in your home directory. Whenever the program re-initialises all analysis parameters (when it starts up, or when you Load a run file with no associated parameter file) it will get its initial values from the above file. If you prefer to set up a file of initial parameter values for all users, store it as /usr/neuro/lib/.analysis.prm. This file will be loaded if it exists, and if the user has no .analysis.prm file in his home directory.
The menus under the Set selection allow you to set the waveform parameters. Most can be set in "text mode", and many can be set visually. The bursts of activity, for both cycles (duty cycles) and spikes (spike trains), must be set visually. Single-unit discrimination of spikes is also set visually.
The menus under the Export selection allow you to export some of the waveform parameters, namely the cycle start and end positions, the spike train start and end positions, or the spike positions for individual single unit data sets. Also, though not strictly related to specific waveform activity, you can export deleted sections selected under Set/Range. The menus under the Import selection allow you to import previously exported data in the same format, or similar comma-separated values in text files.
Pressing the ESCAPE key, while in this sub-system, will not bring you back to the main menu, but rather, to the top menu of this sub-system. This is so you don't accidentally leave without saving the waveform parameters. The Quit selection returns you to the main menu, but first, if any parameters were modified, you are asked if you want to save them. If you answer N, the changes will be lost. If you answer Y, you are asked for the waveform number, as for the Keep operation.
The hysteresis can be positive, zero or negative. If it is zero, the ending threshold is the same as the starting threshold; a positive transition across this threshold marks the start, and a negative transition across this same threshold marks the end. If it is negative, it is added to the starting threshold to obtain the ending threshold; a positive transition across the starting threshold marks the start, and the level must then go back down below the ending threshold, which is lower than the starting one, to mark the end.
If the hysteresis is positive, it is also added to the starting threshold to obtain the ending threshold. This time however, the ending threshold is higher than the starting one. In this case, a negative transition across the starting threshold marks the start, and the level must then go back above the ending threshold to mark the end.
The discriminator used for spikes causes rejection of noise which can be mistaken for spikes. If triggering on positive transitions, any spike which climbs above the discriminator is rejected. If triggering on negative transitions, any spike which falls below the discriminator is rejected.
The discriminators for cycles are used to define a range of levels to accept from the waveform. Any point which goes above the maximum discriminator, or below the minimum discriminator, will be rejected, and replaced by the last valid data value. This allows you to focus in on the range of interest, and ignore any large spikes the waveform may contain.
Once the cycle markers are more or less the way you want them, you can quit the automatic selection, then perform manual selection. Here you can select individual pairs of start and end of activity markers, and move them where you want them, or delete unwanted pairs. There are also phase-shift and time-shift operations that can be performed, to move over all of the markers.
Normally, the start of activity will be marked close to halfway up the rising edge of a cycle. For some applications, however, you may want cycle peak to indicate the start of activity, and the cycle trough to indicate the end (or vice versa). To do this, set the threshold to a level below, but near the peaks, and the hysteresis to a level above, but near the troughs (or vice versa). Once the cycles have been set in this manner, the Find-min&max operation will adjust all of the start and end of activity markers to the local maxima and minima.
Spike train markers must be set visually. You must first set the spike threshold, hysteresis and discriminator mentioned above, to indicate where the spikes occur. Then, you set the trains automatically, where you fiddle with the "Spike train gap" to get the desired separation of spike bursts. If two consecutive spikes are closer together than this gap, they are taken as part of the same spike train. If two spikes are farther apart than this gap, the first is taken as the end of one spike train, and the other is taken as the start of the next train.
Once the spike train markers are more or less the way you want them, you can quit the automatic selection, then perform manual selection. Here you can select individual pairs of start and end of activity markers, and move them where you want them, or delete unwanted pairs, just as for cycle activity markers. Sometimes, the start and end marker will overlap on a single, isolated spike; you will usually want to delete such a pair. There are also phase-shift and time-shift operations that can be performed, to move over all of the markers.
When this is not sufficient, you can perform further selections based on parameters such as spike width, area under spike, and a second level discriminator. You can also save all the spike positions for separate single-units, and later choose the single-unit data set you want, without having to repeat the whole selection procedure. These parameters are set from the W.F.-activity/Set/Spikes/Unit menu.
Begin by selecting the Number of the single-unit data set on which you wish to work (initially 1). You can then visually set the appropriate parameters, then perform an automatic selection. Once this is complete, you can perform a manual selection to delete inappropriate spikes. In both cases, you are warned if any remaining spikes in the current single-unit data set also appear in the data set for another unit.
Note that this is a very recent addition to the analysis program, and there is still much room for improvement, both in selection criteria, and in manual selection capabilities.
You are first asked for the number of the waveform to be linked. Any function or analysis that is asked to use the current waveform will use the one you specify here instead. You have to specify the number of a real waveform, as the program can't chain virtual waveform links. You are then asked if you want to differentiate the waveform on the fly. If you answer Y, the program will differentiate the selected waveform automatically when the current waveform is requested. This can save disk space by eliminating the need to store differentiated waveforms. If you answer N, the program will give the selected waveform as-is when the current waveform is requested. This is useful when you want to set up two or more independent waveform parameter settings for the same waveform.
Because the selected waveform is not copied, if it is ever changed or removed, the link to it will become unusable, or will yield different waveform data. When viewing waveform calibration information, the links will be indicated, in the effective rate column, with the label "link to WF #" or "diff of WF #". These links will only work in the analysis program - no permanent changes are made to the run file itself that would carry over to other programs - but the link will be saved with the waveform parameters for future use in analysis.
Virtual waveform links don't actually create file links, so they can work on file systems that don't support file links, for example on a DOS partition under Linux.
You can also provide an alternate unit specifier for any trace or waveform. This unit specifier, which is entered in parentheses at the end of the channel name, selects the units in which the trace or waveform will be scaled when displayed. This unit specifier overrides the global unit specifier for voltage levels. It is used by default for the final display; the global unit specifier is still used by default to scale values for parameter setting. When setting parameters for traces or waveforms that have an alternate unit specifier, the current parameter value is displayed in the units determined by the global unit specifier (normally "mV"), followed in parentheses by the value scaled in the alternate units. To set the parameter value using the alternate units, you must enter not just the numeric value, but you must explicitly follow it with the alternate unit name, as it appears in the alternate unit specifier for this trace or waveform. (E.g. "10 V/s".)
The alternate unit specifier can be in either of two forms. It can be a simple specifier of voltage or A/D units, such as (mV) or (A/D). It can also be used to indicate how voltage or A/D levels sampled represent some other type of units, such as pressure, temperature, current, etc. In this second form, a one-to-one correspondence can be specified, or numbers can be given to indicate the ratio of sampled levels to actual units. For example, you could specify units for various waveforms by setting the channel names as follows:
If voltage levels are specified on the left hand side, then values sampled will be converted to the specified voltage levels (using the zero, height and level in the calibration information) before being converted to the units on the right hand side. If A/D levels are specified on the left hand side, they are converted directly to the units on the right hand side, and the zero level is not shifted.
These alternate unit specifiers can be set ahead of time, using the calibrate(1) program. However, they are currently recognised only by analysis; any other program will ignore them, treating them simply as a part of the channel name.
You are presented a menu of parameters which you should set before proceeding. First, use the Number selection to set the waveform number for the data to be blanked. Use the Window selection to specify the length of the blanking interval triggered by each spike, and the Delay selection to specify the time (positive or negative) from the start of a spike to the start of the associated blanking interval.
Once these parameters, and the spike-related parameters mentioned above are all set, use the Go selection of the Maint/Blanking menu to begin the blanking operation. If the parameters have been set correctly, you are asked for the number of the new waveform, which must be different from the one being blanked, and different from the waveform used to trigger the blanking. If you enter the number of a waveform which already exists, this waveform is erased, and the new one takes its place.
A "sample and hold" technique is used to achieve blanking. I.e. the last sample in the waveform before the start of the blanking interval is repeated throughout the duration of the blanking interval, and the existing samples in that range are ignored.
The resulting waveform contains differences between adjacent sample points in the first waveform, with the first point set to the same A/D level as in the original waveform. An alternate unit specifier is set up at the end of the channel name for the new waveform, to indicate the units in which the waveform will be scaled when displayed.
This operation may not be necessary, as it can now be done on the fly using a virtual waveform link in the waveform parameters. It is still needed if you want to obtain a second differential.
Use the Zero-lag selection to select whether or not you want "zero-lag" (two pass) filtering to be performed. The low-pass filtering algorithm used is a version of the "Second-order, zero-lag Butterworth filter", but you can select whether or not the reverse pass is to be performed. This is a recursive, or infinite impulse response (IIR) filter, in which filtered output is fed back into the filtering calculations, and closely mimics a hardware RC or LC filter. If only the forward pass is made, phase-shift distortion will be introduced. If you select "zero-lag" filtering, it will take twice as long, but the reverse pass will eliminate the phase-shift. In either case, end-point extrapolation is used to start off the filter; points equal to the average of the first few points (and of the last few points) of the waveform are temporarily prepended (and appended) to the waveform. Note that when used with a low cutoff frequency, the reverse pass of zero-lag filtering can actually cause some smearing of the signal such that the onset of activity appears to occur before it actually does in the original signal. Because of the potential for erroneous results in your analysis that can be introduced by this, the Zero-lag option is now turned off by default. If you turn it on, use care to watch for and avoid such distortion of your signal, particularly when filtering aggressively. Notch and high-pass filters are second- and third-order IIR filters, respectively. The Zero-lag option works with these too, though phase-lag tends to be less of an issue with these than with low-pass filtering at a low cutoff frequency.
Use the Cutoff selection to specify the cutoff frequency of the low-pass, notch, or high-pass filter. You are prompted for the frequency in Hertz, which can be any positive real number. The program limits the cutoff frequency to 1/3 of the sampling rate for the new waveform, to avoid the "ringing" caused by too high a cutoff frequency. If you enter the number 0, then filtering will not be performed - only the other processing, such as rectification and spurious point rejection, will occur.
The Divisor selection allows you to set the sampling rate divisor to be used when the new waveform is created. This divisor must be a positive integer. A divisor of 1, the initial value, will mean that the sampling rate will not be divided.
The Rectify selection enables full-wave rectification of the signal, before filtering. This is disabled by default. The three remaining parameters - the rectifier baseline and the lower and upper window discriminators - can be set either by making the appropriate selection from the menu then entering the value, or by using the Visually selection then selecting the levels with the pointing device. (When you select Visually, the program asks you whether you want to view just the current analysis range, selected by the "Start of run" and "End of run" parameters, rather than the whole run. Whichever you choose, the waveform is displayed, and the cursor is turned on so you can point to the levels you want.) The window discriminators are used to perform spurious point rejection, as described below. If this is not desired, set them to the minimum and maximum allowed values. The baseline indicates the level to be used as the "zero" for full-wave rectification. To disable rectification, set it to the minimum allowed level, or just disable the Rectify option.
Finally, once all parameters have been set, use the Go selection of the Maint/Filter menu to begin the filtering operation. If some of the parameters are set incorrectly, the operation will quit. Otherwise, you are asked for the number of the new waveform, which must be different from the one being filtered. If you enter the number of a waveform which already exists, this waveform is erased, and the new one takes its place.
A new waveform data file will be created, and any combination of four operations will be performed to generate the new waveform, depending on which options are set. If the window discriminators are set, spurious point rejection is performed; all points out of this range are rejected, and replaced with the last valid point. If the baseline level is set, the waveform will be full-wave rectified. If the cutoff frequency is set, the (possibly rectified) waveform will be filtered. Finally, if the divisor is set to some integer n, which is greater than 1, then the resulting waveform's sampling rate will be divided by n. That is, only the first of every n points will be kept in the file. Once the operation has completed, the run header in the frame file is updated.
If the signal being filtering is fairly weak, you may want to amplify the signal to preserve the smoothness of the resulting signal. You can accomplish this by using the Amp selection to set the gain of the filter, before you start filtering. If you want to differentiate the filtered signal, a strong signal is needed, so you probably should amplify it. A negative gain can be used to invert the signal. You can amplify a signal beyond the range of 4096 levels generated by a 12-bit A/D converter; the software allows 16 times that range (-32768 to +32767). A problem can occur if you use too large a gain on a signal that is not centered on zero volts: the offset from zero volts is also amplified, and it can overflow the long integer in which it is stored, in the calibration information. If this occurs, the calibration will be incorrect. The relative voltage levels will still be accurate for the new waveform, but the voltage offset of the waveform will be false. This may not be a problem if you're only interested in the differentials.
You are first asked whether to include deleted frames. If these frames had been deleted due to false triggering, you will likely want to exclude them. Otherwise, they should probably be included.
You are then asked for the number of the new waveform to be created. If this waveform already exists, it is erased. The program then generates a trigger signal on this waveform, at the sampling rate at which the run was captured. It will include 1 ms trigger pulses at the times the frames were triggered, each one followed by a 2 ms encoded level representing the tag value for the frame. See dsepr(1) for more information about tagging on the trigger signal.
This operation has become obsolete, as it can now be done using a virtual waveform link in the waveform parameters. Whereas this operation requires a file system format that supports file links, the virtual waveform links will work without the need for such a file link, for example on a DOS partition under Linux.
You are first asked for the trace number for the trace to be converted. If this trace has no points, the operation will end. You are then asked whether to include deleted frames. Unless you have a good reason not to include them, they should probably be included. The program will interpolate missing data between frames that are included.
If the current run file contains averaged data, and no waveforms exist in this run, then the program can reset the run length to the correct value for the waveform that will be generated. This waveform will be the concatenation of all frames from first to last, with no intervening gaps. Depending on the averaging method used, this may be a sensible approach, or it may not. You'll have to be the judge. The program will ask if it's OK to change the run length. If you answer N, or if it can't change the length because waveforms already exist, then it will pad or truncate the waveform it generates to match the current run length.
You are then asked for the number of the new waveform to be created. If this waveform already exists, it is erased. The program then generates the trace signal on this waveform, at the sampling rate at which the trace was captured. For raw trace data, it will create the missing parts between captured sweeps by interpolating from the last point of one sweep to the first point of the next sweep. Before the first sweep, it will create a straight line at the level of the first point, and similarly at the end of the last sweep, it will extend a line from the last sample to the end of the run. (This is also how it will pad averaged data, if it has to.)
The calibration information, and all other information in the run header associated with the selected trace, is duplicated for the new waveform.
This operation uses the same parameters as the spike-triggered waveform averaging described above, i.e. it is concerned with the spikes, or action potentials, on a waveform. The "Spike W.F. #" parameter selects this waveform, and you must set the spike-related waveform parameters for this waveform. Each action potential triggers a sweep from each of the waveforms in the "W.F. # list". The "W.F. avg delay" and "W.F. avg window" control the onset and duration of each sweep. All of the sweeps from one action potential form a single frame, and a frame is generated for each action potential. All existing frames (if any) are thrown out; only the new frames are kept. The trace numbers for the sweeps in these frames are the same as the waveform numbers in the list, and the calibration information for these new traces is simply copied from their corresponding waveforms.
If you are creating a new run, you will be asked to enter the run file name for this new run. If you enter the name of an existing run file, or if you are overwriting the current run, you will be asked for confirmation before the run is overwritten. The reframing is performed in a temporary file, so you will need enough free disk space to hold the generated run, even if you are overwriting an existing run. Once the new frame file is generated, the waveform files are generated (and possibly trimmed) as for the Trim operation below. The same caveats apply to both operations.
Note that neither the analysis parameters, nor the waveform parameters, are changed by this operation. If you create a new run, none of the parameter files are copied. If you trim your current run, the time-related parameters will no longer be properly set, and will eventually have to be re-entered. (These include the analysis range and the spike and cycle activity bursts for all waveforms.)
Plotting with interpolation enabled allows the plotter to work much faster, with less wear on the pen.
(Note that, in either case, interpolation will not be performed on the data points in the graphs of action potential position vs cycle.)
Certain other errors are caught by the program, triggering an "INTERNAL ERROR" message. If this happens, the current set of analysis parameters will automatically be saved in a special directory, for later examination. You will be able to continue in the program, but bear in mind that any results produced at the time of the error will almost certainly be incorrect.
If you detect a bug which does not cause one of the above actions, but produces results which appear incorrect, save your current parameters so that the error can be reproduced, and make a note of the problem.
In all of these cases, keep the relevant runs of data on-line, and report the bug or error.
When analysis reports an error, whether an internal error or a user error, it asks you to hit a key to continue. After reading the message, hit a key from the main keyboard, such as SPACE, RETURN, or ESCAPE. The program will then return to the current menu, and allow you to continue.
If you redirected the standard input to the program, so that it reads its commands from a file, rather than the terminal, then errors (user and internal) will be handled differently. Instead of printing the message, reading the next "keystroke" from the file, and continuing, these errors are fatal; the program will show the message, and then terminate. However, warning messages are not fatal, and the program will simply continue.
The command, "analysis -core corefile", will cause analysis to start up in the usual way, then search for the analysis parameters in the given corefile, a core dump previously produced by analysis. This allows you to recover parameters after a fatal error, and is usually used only for debugging.
The command, "analysis -dispmenus", will cause analysis to print a listing of its hierarchy of menus, to the standard output, then quit. In this mode, the graphics terminal is not required.
As for most other X Window programs in this package, the following X command line options are accepted: