User Manual for

GePulse

Michael Pusch, Istituto di Biofisica, Genova, email: pusch@ge.ibf.cnr.it 
Last change: 17.10.2014

1. Introduction

GePulse is a free acquisition program for electrophysiologists. It is similar to the HEKA Pulse Program (and maybe to Axon Clampex) allowing flexible stimulation sequences. The program supports

- National Instruments PCI interfaces (PCI-6035E/PCI-6036E,PCI-6052, PCI-6221, PCI-6251, ...)
- National Instruments USB interfaces
- Instrutech ITC-16 and ITC-18 interfaces.

Pulsed and gap-free continuous acquisition (of up to 4 channels) is supported.

(Note for ITC16/18 users: the possibility of changing the holding potential during continuous acquisition has an unavoidable effect of small gaps at the moment of the VHold change. See A1. Limitation in gap-free recording with the ITC-16 and ITC-18 interface when the holding potential is changed during the acquisition.)


Index

1. Scope of GePulse - Introduction

2. Hardware

3. Basic Features of GePulse

4. Installation

4.1 Data files, set-files, stimulation-sequence files; Easy export of data into spreadsheet

5. The front panel windows and commands

6. How are parameters like gain or frequency read?

7. Shortcuts

8. The settings dialog

9. The Stimulation-Sequence Editor

10. Remote control through batch file and 'macros' and triggering of macros by digital input

11. How to control the Rs and Cm calculation

12. Sound indication

Appendix

A1. Limitation in gap-free recording with the ITC-16/18 interface when the holding potential is changed during the acquisition

A2. Known bugs

A3. The file-format
 

2. Hardware requirements

So far GePulse runs  with the following National Instruments interfaces: PCI-6035E/PCI-6036E, PCI-6052, PCI-6221, and PCI-6251. These require the Nidaq (or Nidaqmx) software (comes with the interface or can be downloaded). In principle, with Nidaqmx, GePulse should run with almost every National Instruments acquisition interface. But not all have been tested.

Both, traditional Nidaq and Nidaqmx are supported. Traditional Nidaq is superior if a fast repetition rate of pulses is needed. The overhead in Nidaqmx prohibits fast repetition.For all NI interfaces the following triggering connection has to be wired:

CONNECT DIGITIAL I/O CHANNEL 0 WITH PFI0 for NI-interfaces!

This connection "triggers" the synchronous stimulation and acquisition. Without this connection the program "hangs" and the pulses will not start.

See here how to make this connection on the BNC2090 connector block.

The hardwire-connection Digitial io channel 0 - PFI-0 has to be implemented, depending on your connector to the NI-interface.

Alternatively, GePulse runs with the Instrutech ITC-16/18 interfaces.

If you use an ITC-16/18 interface you must install the Instrutech driver. Sampling is limited to 200 kHz /NumberOfChannels.
 
The interface must be defined once in the Edit->Define Interface dialog, and the program must be restarted afterwards.

3. Basic Features of GePulse

4. Installation

To install GePulse on your computer: download the   GePulse-zip-file . Unzip the files into the folder where you want to store the program (e.g. "c:/programs/GePulse"). Create your own Short-cuts on the desktop or in the Start-Menu. The zip-file contains GePulse.exe and some dll's that you might need. In order to be able to acquire data with the National Instruments interfaces you must have installed the National-Instruments (Nidaq) software on your computer. This normally ships with the interface. GePulse supports both traditional Nidaq as well as Nidaqmx. For the ITC-16 and ITC18 you must install the respective driver.  If you have not installed any driver GePulse will run in a "simulation"- or "offline"-mode. You can use it in this mode to test it without the necessity of an interface. You can use it in this mode also to read existing data files, e.g. for looking at them or for exporting data. You can also use the Ana-program to analyze GePulse data.

The interface is defined in the dialog Edit->Define Interface. After changing the interface type you must restart the program.

4.1 Data files, set-files, stimulation-sequence files

Acquired data are kept in memory only if the Store-Button is active (i.e. red). Otherwise the data will not be stored anywhere in memory but only displayed! A valid file-name has to be chosen before the Store-Button can be activated. If you try to activate it without having specified a file-name before, you will be asked for a file-name.
Even if the Store-Button is active, however, the data is not immediately stored on the file but only in  memory. Only when you select File->New or File->Open (Read only) or File->Open (modify) the data will be written on the file, the file will be closed and a new file opened. If you select  File->Save (update on disk) the currently available data will be written to the file, but the file will not be closed, and the memory will be not be emptied.

GePulse stores in the registry the directory name of the last used data file name and proposes it as the data directory when you restart GePulse next time.

GePulse also stores in the registry the name of the last used (i.e. stored or opened) settings-file and Stimulation-Sequence-file and reloads them automatically on restart (if the files are still existent).

Data can be exported to spreadsheet programs in the followong easy way: After acqusition, select View->Edit format of numbers to show in redraw to define the format, then View->On redraw: show numbers, and then select the item in the tree to export and press return. The data are shown as a table from where they can be copied to the clipboard by right clicking on the table (select all, then copy). Now they can be pasted into SigmaPlot, for example.


  

5. The front panel windows and commands

The main window is divided into 4 subwindows. On the left/top are shown in  an expandable tree all acquired series and sweeps.

For redrawing already acquired data, expand the tree and right-click on the series or entry (or hit return once the desired item is selected).

On the left/bottom are shown various parameters like the actual voltage, gain etc. Some of the fields are read-only, while others may be editable. This is particularly interesting for the gain of the amplifier. Several options to "feed" the actual gain to GePulse are possible. Normally, the most convenient manner is to "telegraph" the gain value via a dedicated ADC channel using the telegraphing output provided by the amplifier (available in all modern amplifiers, but not, for example, for the EPC7). The procedure to feed the gain value to GePulse is decribed in more detail below.

NOTE: Gain values for the current are in Ohms = V/A. For example a classical gain setting on a patch clamp amplifier could be 50 mV / pA. This value is equivalent to 50 GOHM = 50E9 OHM = 50* 109 OHM.

If the amplifier does not have a telegraphing gain, the gain value (in Ohms = V/A) can be edited directly in the front panel.

Some fields are optional - see the flags dialog. The "Seal" button (Ctrl+space) invokes the repetive application of a square pulse. The parameters of this pulse (test pulse) can be edited in the settings dialog.

The right part of the screen is divided in two windows, the trace window (top) and the notebook/info window (bottom). The notebook/info window shows either text messages of actions or of data analysis, or, in graphical fomat, the results of the online-analysis. The mode (text / graphics) is toggled with the shortcut N or with the menu command Online Analysis -> Show/Hide.

The top-right window shows the acquired data and several buttons that either invoke an action or set a flag or a value.
Of particular importance are the top-left fields - the Store button and the selection dialog that selects the type of experiment. Data are stored if, and only if, the Store button is red (see 4.1 Data files, set-files, stimulation-sequence files).

In the selection field next to the store button, the experiment type is defined. The choices are

    - In out                     meaning "inside out configuration of the patch clamp technique"
    - On cell                   meaning "cell attached configuration of the patch clamp technique"

    - Out out                  meaning "outside out configuration of the patch clamp technique"
    - Whole cell              meaning "whole cell configuration of the patch clamp technique"
    - Voltage clamp        meaning "2-electrode voltage clamp"

If, and only if, the recording mode is selected as In out or On cell, the voltage-output and the current-input are inverted. For example, if you select VHold = 100 mV, and the recording mode is In out the DAC output is set to obtain a voltage-output of -100 mV, because the voltage is referred to in the physiological convention. This assures that voltage-gated sodium channels always activate at positive voltages. If you do not care about such things, chose one of the three latter settings (Out out - whole cell -  voltage clamp).

In the Filt. field you can specify a filter frequency (in Hz). Data are filtered using a Gaussian filter only for display, not permanently. Set to 0 Hz for no filtering.

In the
Avg. field you can specify the number of averages to perform for a selected pulse protocol. This applies only to pulsed data and is iognored for gap-free recording. The average is performed sweep by sweep.

Clicking on the Clear button erases the screen but has no effect on the data (Shortcut: Ctrl+Backspace).

The Timer field shows the time since its last reset. Reset can be invoked by hitting "t".

In the Vhold field the holding potential is specified in mV. It can be increased / decreased in 10 mV steps using Ctr+Arrow up / Ctrl + Arrow down.

If the Show Pn button is active (i.e. red) the data acquired during the "leak pulses" are shown in green. However, for reasons of efficiency this is only possible upon replay of the acquired and stored data. Thus to inspect the leak response the acquired series has to be selected in the tree and redrawn.

If the Leak sub button is active (i.e. red) the leak pulses are subtracted from the raw data for diplay, otherwise not. This does not affect the way how the data are stored: data are always stored leak-subtracted, together with the response to the leak-pulses. Thus it is always possible to recover the unsubtracted, raw data, offline.

If the Overlay button is active (i.e. red) the sweeps of one series are overlayed on the screen (old sweeps in gray).
If the Overlay all button is active (i.e. red) the screen is not wiped before starting a new series.

In the Display gain field an amplification factor is specified to scale up the traces. If more than one channel is acquired this affects only the actually active channel. See also Shortucts.

In the
Offset field a fractional display offset is specified to move traces up or down. If more than one channel is acquired this affects only the actually active channel. See also Shortucts.

The radio buttons in the group Act. ch. determine the active channel (if more than one channel is acquired). This is necessary for the display-gain and offset settings.

The
Re. Sc. button resets all scales.

The Break button interrupts any ongoing acquisition immediately (shortcut: Ctrl+B).

The Stop button finishes the current sweep before interrupting (shortcut: Ctrl+S).

The Gap free button starts a gap-free recording (shortcut: Ctrl+G). The parameters (SampleTime and length of sweep) are determined in the Settings dialog (F8) or in the Stimulation-Editor (F9).

Clicking on one of the buttons corresponding to the stimulation sequences, starts execution the the pulsed acquisition. Right clicking on these they can be edited.



6. How are parameters like gain or frequency read?

For each recorded channel (max. 4 right now) it has to be defined which ADC should be used for its acquisition. To do this, and to define the gain settings for each channel, in the settings dialog (F8) (in the "source and gain source" block), a row of parameters is shown and editable for each channel. In the first column the ADC for the channel has to be specified. In the second column the units can be specified. Default is "A" for Ampere. The third column ("Gain ADC") is relevant only if the gain-setting of the amplifier (or other device) is fed to GePulse telegraphically. In this case, the ADC used for the gain-input is specified in this third column. However, this is not the only possibility to determine the gain (see below). How the gain is determined is described in the following paragraph.

The gain-setting of each channel, the recording bandwidth, the temperature and two "user-defined" parameters can be
    - fed to the program "telegraphically" with an ADC,
    - or a default value can be assigned,
    - or it can be made "editable" in the front panel.

The procedure for each of these parameters is as follows:

In the settings dialog you first define for a given parameter the mode of the determination of its value in the field with the heading "gain source" (for the gains of the channels) or "source" for the other parameters. The possibilities are:

  • Default:      the default value, that is also assigned here, is used. The field in the front-panel is not editable.
  • Value:         the corresponding field in the front panel is editable and the user has to assign a value there (see here for using a table with  fixed values together with this option, for easier selection of predefined values)
  • ADC:          a voltage is read from the corresponding ADC (defined in the Settings dialog) and a value is assigned according to a table (see below)
  • Eqn.:          a voltage is read from the corresponding ADC (defined in the Settings dialog) and a value is assigned according to an equation (see below)

  • The "ADC"- option is useful for a limited number of possible values like e.g. the gain settings of the amplifier or the filter settings of a filter if the instruments has a corresponding "telegraphing" output. The voltage (normally between -10 V and  +10 V) is read from the specified ADC. It is used to obtain a value e.g. for the gain from a table that is read in from an ASCII-file that is specified through the button "Change" in the settings-dialog. The table MUST CONFORM to the following format:

    voltage1  value1
    voltage2  value2
    ...

    A typical table could be

    7.5  1
    8.5  2
    9.5  5  

    The interpretation by GePulse is that if the voltage is larger than 9.5 than the gain is 5. Otherwise: if the voltage is larger than 8.5 than the gain is 2. Otherwise: the gain is 1. It does not matter in which order the values are written in the table because they are reordered anyway. Thus the above table is equivalent to

    9.5  5
    7.5  1
    8.5  2
     

    ATTENTION: IF THE TABLE IS NOT FOUND IT MIGHT BE THAT NO ERROR IS ISSUED

    The "Eqn."- option is useful if a continuous parameter like e.g. the temperature is read from a device like e.g. a temperature controller. Let's make an example. The temperature controller provides a voltage-output that converts to a temperature (in degrees C) by a complicated function:
    T = 0.01*x*x +  10*x + 20, where x is the voltage-output of the device. You connect the voltage-output to ADC-5 and assign 5 to the ADC for the temperature, "Eqn." for the "source" and the string (without quotes)  "0.01*x*x +  10*x + 20" in the "table-file or equation"-field.

    The following rules apply for the equation:

    The independent variable can be written as "x", or as "v" or as "t".
    Arbitrary nested expressions (with parenthesis) are allowed.
    Spaces are ignored. No distinction between upper- and lowercase is made.
    Allowed functions are:
    a+b
    a-b
    a*b
    a/b
    a^b
    cos(a)
    sin(a)
    exp(a)
    exp10(a) = 10^a
    inv(a)=1/a
    sqrt(a)=square root
    log(a)=natural log
    log10(a)= log base 10
    fabs(a)=absolute value
    step(a) = 0 for a<0; 1 else (this can also be used to calc. the maximum and minimum: Max(a,b)=a*step(a-b)+b*step(b-a) ; Min(a,b)=a*step(b-a)+b*step(a-b) )

    Comments can be added after the function definition after a '. Example:

    0.01*x*x +  10*x + 20 ' calibration curve of temperature control
     


    If you select the "Value" option, you can still read and use a table for selecting the various settings as described now for an example. Suppose your amplifier has 3 possible gain-settings: 1 mV/pA, 5 mV/pA and 20 mV/pA (corresponding thus to the gain settings 1 GOhm, 5 GOhm, and 20 GOhm). Create a table as above with "fake" voltages, e.g.

    1  1e9
    2 5e9
    3 20e9

    name the file "Gain-Table.txt" (or any name you prefer). Go the the settings-dialog and select this table-file in the corresponding channel. Don't forget to save you settings-file such that next time everything goes automatically! Now in the front-panel, close to the "Gain-text-field" two small buttons (one "+" and one "-") appear that can be used to select the next or previous gain setting. The short-cuts "Ctrl+left arrow" and "Ctrl+right arrow" do the same thing.
    Note that in  this case the table has to be ordered in the sense that smaller "fake-voltage" values have to correspond to smaller gain values.Otherwise it will not work properly. I.e. the table

    3  1e9
    2  2e9
    1  3e9

    will not be good.
     

    7. Shortcuts


    D                        Delete selected item in tree
    O                        Overlay On/Off
    ,                        Overlay all On/Off
    L                        Subtract Leak On/Off
    P                        Show Leak On/Off
    B                        Subtract baseline On/Off

    N                        Toggle graphical online analysis on/off

    F                        Toggle "Play sound"

    S                        Store On/Off
    “+”                      Double Display gain (of the active channel)
    “-”                      Half Display gain   (of the active channel)
    F8                       Setup
    F9                       Stimulation editor

    Ctrl  + Backspace        Clear Screen
    Ctrl  + Page Up/Down     Increase/Decrease display offset (of the active channel)
    Ctrl  + Arrow Up         Increase Vhold by 10 mV
    Ctrl  + Arrow Down       Decrease Vhold by 10 mV
    Ctrl  + Arrow Left       Same as pushing the "plus gain button" (see here for explanation)
    Ctrl  + Arrow Right      Same as pushing the "minus gain button" (see here for explanation)
    Ctrl  + Space            Start/Stop Seal test
    Ctrl  + 0                Start Sequence 0

    Ctrl  + 9                Start Sequence 9
    Ctrl  + B                Interrupt Stimulation (Break)
    Ctrl  + M                Open file for modify
    Ctrl  + N                New File (for write)
    Ctrl  + O                Open file read only
    Ctrl  + S                Stop Stimulation (i.e. finish this sweep, then stop)
    Ctrl  + E                Export
    Ctrl  + G                Start gap-free recording
    Ctrl  + I                Show some info about the selected tree item
    Ctrl  + F                Edit flags
    Ctrl  + R                Reset scales
    Ctrl  + W                Clear message window
    C                        Estimate Rs and Cm in the next seal-test pulse

    Alt   + O                Edit settings for online analysis
    Alt   + Q                Interrupt any ongoing batch-command processing 
    Alt   + U                Save File (update to disk)
    Alt   + Z                ZAP (i.e. apply a short pulse as defined by the zap-parameters; the
                             sample time used is the same as for the seal-test pulse)
     
     

    8. Settings

    Most settings are set in the general dialog Edit->Settings (F8), while some flags are set in the Edit->Flags dialog.

    The meaning of the various parameters in this dialog are:

    For each of the possible 4 input channels the following parameters can be defined:

    - ADC:           the zero-based index of the ADC from which this channel shall be acquired

    - Unit:         a string of the unit, e.g. "V", "A" (to be entered without the " ")

    - GainADC:  if the amplification setting of the channel is "telegraphed" to the computer here the corresponding ADC is specified. Otherwise this field is without use. For example in general, the current signal will have a variable gain (in units V/A!) while often the voltage-channel has a fixed gain of e.g. 10 V/V.

    - Gain Source:  In this selection menu the way of how the gain shall be determined is defined. There are 4 possibilities as explained in 6. How are parameters like gain or frequency read?  Note that the "equation" option is not available for the regularly sampled input channels, but only for the extra parameters, like e.g. temperature.

    - default
    and table-file and equation (latter only for the extra parameters) are also explained in 6. How are parameters like gain or frequency read?.

    The four additional parameters, bandwidth, temperature, user param1, user param2, are saved with each series. You define which ADC is to be used if they are fed telegraphically etc. just as for the gain settings of the acquired channels (see above).

    The parameters of the Test-pulse group define the properties of the "seal-test pulse".
     

    The parameter "Sample time (gap free)" defines the sample time for gap-free recordings. The parameter "time window (gap free)" defines the length of individual sweeps in gap-free recordings. These sweeps are an artificial subdivision of the truly gap-free recording.

    Parameters of the "General" group:

    - Number of channels: self-explanatory

    - Stimulus Scale: defines the scale factor of the command voltage. It depends on the amplifier setting. If you have to apply 1 V at the command input BNC of the amplifier to actually clamp a cell at 100 mV the stimulus scale = 0.1.

    - Stim Dac: the DAC channel of the interface used for command output

    - Volt. Input Scale: If the amplifier provides an output of the potential with a gain of  10 V/V you have to insert Volt. Input Scale = 10.

    - Voltage Inp. ADC: the ADC where the potential shall be read. This parameter is not really essential because the voltage is practically never used. It is only stored for each series and displayed on the screen.

    - Voltage Range ADC (+/-) in Volt: for National Instruments interfaces this is generally 10 V, for the ITC16/18 this is 10.24 Volt. This value cannot be edited - it is shown for information.

    - Voltage Range DAC (+/-) in Volt: for National Instruments interfaces this is generally 10 V, for the ITC16/18 this is 10.24 Volt. This value cannot be edited - it is shown for information.



    The group "Alternative output channel" is used to control an alternative usage of the pulse-protocol, e.g. for the control of a perfusion system. If the checkbox "Use alternative output channel" is checked, the analog output defined in the pulse-protocol is directed on the alternative DAC channel defined here with the alternative scaling defined here. The Holding potential is, of course, still controlled normally and the alternative channel does not apply to the "seal-test".


    - Checkbox "Do write parameter values on file": if checked, several parameters are written on an ASCII file during seal-test or waiting. These can be read by another program and used for various purposes. Currently the format of the string is (example):

    "R 10295;I4412.84;H-0.100;V0.045;G1.00;Rs9.2;Cm13.4;f999.00;T10.0;U0.000;u0.000;S0;#"

    Meaning:
    R: Seal resistance = 10295 MegaOhm
    I: current = 4412.84 pA
    H: VHold = -0.1 Volt
    V: Vm = 0.045 Volt
    G: Gain = 1 mV/pA
    Rs: Series resistance 9.2 MegaOhms
    Cm: Membrane Capacitance 13.4 pF
    f: bandwidth (filter) = 999 Hz
    T: temperature = 10 degrees,
    U: Userparam 1 = 0
    u: Userparam 2 = 0;
    S: Sealtest off (S0 or S1)
    #: end of string

    Flags in the Edit->Flags dialog:

    - The check-box dimmed overlay defines if the old traces are to be shown in gray (checked) or black  (unchecked).

    - Checkbox "Do NOT do online analysis": As a default some online analysis is performed on the "relevant" Y-Segment (see 9. The Stimulation-Sequence Editor ). This includes the mean value, the maximum value and the minimum value. These values are displayed in the "message-window". They are calculated between 10%  and 90% of the length of the segment. For very fast stimulation or if you have overflow problems of the interface you turn off the online-analysis with this check-box.

    - Checkbox "Do write parameter values on file": see  above

    - show noise box: if checked the rms-noise during the seal-test pulse is indicated in the front panel

    - do check for clipping: this flag activates the clipping button and the check for clipping. E.g. for high speed pulsing this can be turned off.

    - calc Cm and Rs continously: this flag determines if the Rm and Cs should be calculated with each seal-test pulse or only on demand (see 11. How to control the Rs and Cm calculation. Also the method of Rs and Cm calculation is explained there).

    - Allow multiple instances of Gepulse to run (with program name "Gepulse.exe"): this flag determines if more than one instance of GePulse can be started. To avoid errors in the interface comunication it is generally advisable to forbid multiple instances. For analysis-purposes, instead, it might be more useful to allow multiple instances. Note that this flag works only if the executable is not renamed, i.e. the "exe" file has the name "GePulse.exe".

    - Show capacity subtract button: this flag determines if the "capacity subtract" button should be visualized in the front panel. Activation of this activates an automatic procedure to subtract the capacity based on pulses to a voltage where no ionic currents is expected to flow. For this, the last segment of the pulse protocol  is considered to be at such a voltage and the responses to voltage steps during the other segements is corrected according to the reponse to the last segment, assuming a linear (in voltage) capacity.

    - Keep in memory last unsaved series: if this flag is checked, and if the store button is not active (red), the last acquired series (pulsed or gapfree) is  stored in an internal buffer and can be recovered using File->Recover last unsaved series.

    - Update disk file after each series: if this flag is checked, and if the store button is active (red), all currently acquired data (that is shown in the tree) is saved on the specified disk-file, after completion of a series that is acquired with the store button active. Normally, this should not be necessary, but if the computer tends to crash, or if you have experienced data loss, you may opt to check this flag.


    9. Stimulation-Sequence Editor

    Sorry, almost no help yet.

    The upper bar of buttons and fields is used to select the squence to be edited.

    An internal "buffer" keeping at most one stimulation sequence can be used to copy stimulation sequences from one pool (stored on a file) to another or from a data file to a pool. To this end the buttons "Copy in internal buffer" and "Paste from internal buffer" in this dialog, and the command "Edit->Copy pulse protocol" are used. The latter command copies the pulse protocol from the currently selected tree item (if this is an entry or a series) into the internal buffer.

    The "Load" - button loads a pool of stimulation-sequences from a file.

    The "Make train" button can be used to create a train like stimulation by copying the existing segments. There is no limitation in the number of segments such that e.g. trains with several thousand of segments can be created without problems (if the number is not excessively large such that memory problems might arise).

    For each segment the class determines what voltages shall be assigned during the time of the segment.
        constant     means that the voltage is constant and is calculated according to the values assigned in the fields.
        ramp             means that the voltage changes linear from the previous value to the one calculated according to the values assigned in the fields.
        vhold          means that the voltage is kept fixed at the holding potential  as in the main control outside of this dialog

     

    10. Remote control: reading a command batch file, 'macros', and triggering of macros by digital input

    GePulse can be remotely controlled by an ASCII-text batch file containing one or more commands. The name of the batch-file is chosen in the settings-dialog. It will be stored in the settings-file along with the other settings if the settings are saved on file.

    Similarly, up to ten 'macro' strings can be edited (Commands->EditCommands) and the corresponding sequence of commands is executed by pressing Ctrl+F1 ... Ctrl+F10. The commands in these strings are treated identical as the ones saved in the batch file (see below). The 10 command strings are contained in the general settings file that can be loaded and saved through the Edit->Settings (F8) menu command.

    If you have a National Instruments interface and if you have selected "Monitor digital input" in the "Define interface" dialog you can also trigger one or more of these 10 command macros by changing the status of a digital input line. The behavior is controlled in the Commands->EditCommands dialog.

    To invoke the reading of the batch file select "Commands->Read Command file" or hit Ctrl+K. This will open the batch-file, and read and execute the commands. Some error message are generated if for some reason the command(s) could not be executed or if a syntax-error occurred.

    If a command cannot be read because of a syntax error (e.g. no space between "Vhold" and "-0.1" in the example below) processing of the batch file/command string is interrupted and no further commands will be read.

    If more than 1 command is present, the commands have to be separated by a ";".

    Example:

    Vhold -0.1; STO 0

    These commands set the holding potential to -100 mV and switches off the test/seal pulse -  if it was on.
    No distinction is made between upper and lower case, thus the above line is equivalent to

    vHOLD -0.1; stO 0

    The space between the "Vhold" and the value "-0.1" is essential! Thus the command

    Vhold-0.1

    will have no effect and will stop further processing.

    So far the following commands are implemented:

    Vhold value    - "value" is the voltage in Volts

    Average value    - put the average number to value

    G0 value   - put display gain of  channel  0 to value

    G3 value   - put display gain of  channel 3  to value

    GAIN0 value   - put gain of  channel  0 to value. This works only if the gain is editable in the front-panel. See 6. How is the gain read.

    GAIN3 value   - put  gain of  channel 3  to value. This works only if the gain is editable in the front-panel. See 6. How is the gain read.

    Off0 value   - put display offset of  channel  0 to value

    Off3 value   - put display offset of  channel  3 to value
     

    D0 value   - put digital output channel  0 to value (value = 0 or 1)

    D9 value   - put digital output channel  9 to value (value = 0 or 1)

    DO value   -  put the digital outputs to "value" (the O is not a zero but an "oh").
     examples: "DO 0101" – will put Dig-out  channel 0 to 0
                                                                            channel 1 to 1
                                                                            channel 2 to 0 and
                                                                            channel 3 to 1

          "DO 11" – will put Dig-out  channel 0 to 1 and
                                                            channel 1 to 1

          "DO 101"  – will put Dig-out  channel 0 to 1,
                                                                channel 1 to 0 and
                                                                channel 2 to 1

    A0 value  -  put analog output channel 0 to value,
                               where value is in Volts (normally from -10 to 10 V)

    A7 value     - put analog output channel 7 to value
     

    STO value   - switch seal-test on / off if value is 1 / 0.

    STO         - without argument: same effect as clicking on the seal/test-pulse button i.e. toggles on and off

    SW value    - start sweep with index "value". To start gap-free use "SW -1" .
                           This has no effect if an acquisition is already ongoing.  To start another stimulation you have to use the wait command (see below).

    BREAK         - same effect as clicking on the "Break" button i.e. interrupt acquistion

    STOP         - same effect as clicking on the "Stop" button i.e .finish sweep, then stop acquistion (gap-free: stops immediately!)

    CLEAR         - same effect as clicking on the "Clear" button i.e .clear screen

    RESETTIMER     - same effect as clicking on the "Reset" button i.e .sets timer to 0

    RESETSCALES     - same effect as clicking on the "Re. Sc." button i.e .set scales to 1 and puts full time scale

    FILTER value    - "value" is the digital filter frequency in Hz

    OVERLAY value   - switch overlay of traces on / off if value is 1 / 0.

    OVERLAY         - without argument: same effect as clicking on the "Overlay" button i.e. toggles on and off

    OVERLAYALL value   - switch overlay all of traces on / off if value is 1 / 0.

    OVERLAYALL         - without argument: same effect as clicking on the "Overlay All" button i.e. toggles on and off

    SUBTRACTLEAK value   - switch "Subtract leak" on / off if value is 1 / 0.

    SUBTRACTLEAK         - without argument: same effect as clicking on the "Leak sub." button i.e. toggles on and off

    SUBTRACTBASELINE value   - switch "Subtract baseline" on / off if value is 1 / 0.

    SUBTRACTBASELINE         - without argument: same effect as clicking on the "Sub baseline" button i.e. toggles on and off

    SHOWLEAK value   - switch "Show leak" on / off if value is 1 / 0.

    SHOWLEAK         - without argument: same effect as clicking on the "Show Pn." button i.e. toggles on and off

    STORE value   - switch "Store" on / off if value is 1 / 0.

    STORE         - without argument: same effect as clicking on the "STORE." button i.e. toggles on and off

    RSCM            - same as selecting Commands->Calc Rs Cm (when seal test on) (i.e calculate Rs and Cm)

    PLAYSOUND value       - if value = 0 playsound is switched off, else it is switched on

    ZAP             - same as selecting Commands->Zap (i.e zap = apply a short pulse to go whole cell; the sample time used is the same as for the seal-test pulse)

    ZAPDURATION value - set the duration of the zap-pulse to "value" (in seconds)

    ZAPAMPLITUDE value - set the amplitude of the zap-pulse to "value" (in Volts)

    SETMODE value - set the recording mode. Value can be
    INOUT, ONCELL, OUTSIDEOUT, WHOLECELL, VOLTAGECLAMP

    COMMENT string - this command is to insert comments during a gap-free recording; a new sweep is started and gets this comment as name. The event is also stored in the gap-free events list.

    wait poll_duration   - this command is essential if more than one stimulation sequence shall be started, or if for example you want to set a digital lineafter a simulation is finished or change the holding potential after a stimulation sequence ... The meaning of the WAIT command is as follows: the WAIT command halts the batch-processing as long as a stimulation is going on. As soon as no stimulation is active, batch pocessing resumes. The poll-duration parameter determines the timer interval in milliseconds that is used to check if a stimulation is going on. For example WAIT 20; will start a timer that checks every 20 ms if a stimulation is on. The following sequence of commands will set Vhold to 0, then start sequence 0, then set vhold to -50 mV, then start sequence 1, then set vhold back to 0 mV:

    ATTENTION: The following command sequence will not work properly:

    sto 1; some_commands; break; wait; further_commands;

    The sto 1 command will start the seal-test pulse and the some_commands will also be executed. However, the overhead to start the sealtest is generally quite long such that when the break command is executed, the sealtest is not yet started. Thus, the break command will actually NOT  interrupt the sealtest and the wait command will wait forever, until the sealtest is interrupted manually.

    WAIT          - without specification of the poll-duration is equivalent to WAIT 50 (i.e. the default poll-duration is 50 ms)

    donothing time_in_millisecods   - this command invokes a waiting cycle during which no other command is processed and the continuous pararameter measurements (current, voltage, gains, etc) is interrupted. For example A0 5.0; DONOTHING 1000;A0 -5; will put analog out to 5 volts; wait 1 second, put analog out 0 to - 5 Volts.


    The following commands are applicable if a Pollux step motor is connected to a serial port.

    POLLUX_MOVE_REL  value        - move the Pollux controlled step motor by "value" microns, relative

    POLLUX_MOVE_ABS  value        - move the Pollux controlled step motor by "value" microns, absolute

    POLLUX_GO_HOME        - move the Pollux controlled step motor to the home position

    POLLUX_SET_HOME        -set the current Pollux controlled step motor position as the new home position
     

     

    11. How to control the Rs and Cm calculation

    Using the current response recorded on channel 0 with the "seal-test" pulse it is possible to estimate the series resistance, Rs, and the membrane capacitance, Cm. In the flags dialog (Edit->Flags) it is determined if this calculation should be done with each seal-test pulse, or only on demand. The "on-demand" is activated either with Commands->Calc Rs Cm, or clicking on the corresponding button in the lower-left sub-window, or hitting "C" (The values of Rs and Cm are written on the parameters value file if the corresponding option  of writing this file is activated).

    How are Rs and Cm calculated? Cm is in either case calculated by integrating the charge during the first half of the first step in the test-pulse after subtracting the resistive component. The resistive component is estimated by the mean of the current during the second half of the first pulse  (assuming that this is steady state).
    Thus     Cm = [Integral over {(I-Iss)} ]/ DeltaV     (where Iss is the steady state current).
    DeltaV is the voltage-step of the seal-test pulse.

    Rs is calculated using the formula
    Rs = DeltaV / I0
    Here I0 is the estimated initial current minus the steady-state current, Iss (Iss is obtained as described above).
    The calculation of I0 depends on the method chosen in the Edit->Flags dialog. If "Calc with simple method (I0, Q)" is selected I0 is taken as the maximum value of I-Iss during the first half of the step.
    If  "Extrapolate exponential to get I0" is selected, a single exponential function is fitted and back-extrapolated using the following conditions:
    The fit begins after the delay calculated by "1/bandwidth" , where the bandwidth is obtained from the parameters. However, the delay is not larger than 1/4 of the length of the segment of the first step in the test-pulse. The single-exponential is then back-extrapolated to 1/2 of the delay to estimate I0. TRY IT OUT! It may not work for your conditions. Suggestions are always welcome!
     

    12. Sound indication

    This feature does not yet work properly. It is intended to produce a tone whose frequency depends either on the membrane potential, Vm (to give an aid for the penetration of oocytes with the potential electrode), or dependent on the resistance (to give an aid when touching the cell with the patch-pipette).

    Appendix
     

    A1. Limitation in gap-free recording with the ITC-16/18 interface when the holding-potential is changed during the acquisition

    Because of the special architecture of the ITC-16/18 interfaces the output at a DAC can not be changed at an a priori undefined time-point (i.e. at user's will) without briefly interrupting the ongoing acquisition. Thus, if during a "gap-free" continuous acquisition the holding potential is changed some data are lost. On one computer the gap amounted to 15 sample-points but I have done no systematic analysis.
    You can measure the gap e.g. by acquiring a sine wave and looking later how much points are missing. If you never change the holding potential, no gap will occur.

    A2. Known bugs

    - When sampling more than 2 channels with the ITC16 interface there is a problem with the channel assignment. Maybe someone can help me here.
    - The ITC18 is little tested so far.
    - Some theoretically possible command sequences for batch processing will not work properly. See here for an example.


    A3. The file format


    An up-to-date description of the file format (13/04/06) can be found in this MS-Word file.

    Chengyu Li, from the university of Berkley, has created a Matlab program able to read current Gepulse data files. Download here (zipped).


    The following code is old, refering to Version 1

    char[]      "GePulse"       7 bytes
    int32       Version         4 bytes
    int32       DataFormat      4 bytes //normally "0" indicating  2 bytes per point, right now.
    int32       NumberOfSeries  4 bytes

    Then come all series, one after the other

    Then the general header continues:

    SYSTEMTIME  time              18 bytes
    int32       LengthLabel       4 bytes
    char[]      Label             LengthLabel bytes
    int32       LengthComment     4 bytes
    char[]      Comment           LengthComment bytes
    int32       ExperimentNumber  4 bytes
    int32       unused[100]       400 bytes

    END DATAFILE
     

    A single series:

    int32       SweepType       4 bytes // 0 for Pulsed; 1 for GapFree
    if SweepType==GapFree then
       int32         LengthGapFreeParamList   4 bytes
       for each entry of the list:   GapFreeParam
    end if

    int32       NumberOfChannels 4 bytes
    int32       NumberOfSweeps   4 bytes

    Then come all sweeps, one after the other

    Then the series continues:

    BOOL        StimPresent      4 bytes;

    if (StimPresent)then
        StimulationSequence
    end if

    SYSTEMTIME  time             18 bytes

    double      frequency         8 bytes
    double      Potential         8 bytes
    double      VHold             8 bytes
    double      Resistance        8 bytes
    int32       unused[4]         16 bytes
    double      Temperature       8 bytes
    int32       unused[2]         8 bytes
    double      UserParam1        8 bytes
    double      UserParam2        8 bytes
    for(i=0; i<14; i++){
       char  UserParam1Name[i]       1 byte
       char  UserParam2Name[i]       1 byte // total of 28 for the names
    }
    for (i=0; i<2; i++){
       char  UserParam1Unit[i]       1 byte
       char  UserParam2Unit[i]       1 byte // total of 4 for the units
    }
    double   DataFactor[16]       128 bytes

    int32    NumAveraged          4 bytes

    int32    RecordingMode        4 bytes  // inside out : 0; on-cell: 1; outside-out: 2; whole-cell: 3; voltage-clamp: 4
    int32    LengthComment        4 bytes
    char[]   Comment              LengthComment bytes
    int      unused[20]           80 bytes

    END SERIES
     

    GapFreeParam:
    int32     index            4 bytes  // the data index of the event
    int32     GapFreeParamType 4 bytes  // 0: changed vhold; 1: mark; 2: comment
    double    VHold            8 bytes
    int32     LengthComment    4 bytes
    char[]    Comment          LengthComment bytes
    double    DataFactor       8 bytes // unused right now
    int32     Unused[100]      400 bytes

    END GAPFREEPARAM
     

    A single sweep:

    SYSTEMTIME  time           18 bytes

    int32     StimCount        4 bytes
    int32     SweepCount       4 bytes
    int32     AverageCount     4 bytes
    BOOL      Leak             4 bytes

    int32     LengthLabel      4 bytes
    char[]    Label            LengthLabel bytes

    int32     DataPoints       4 bytes

    int32     DataSizeInBytes  4 bytes

    double    Cm               8 bytes
    double    Gs(=1/Rs)        8 bytes
    double    Rs               8 bytes

    int32     unused[30]       120 bytes

    for (i=0; i<NChannels; i++){
         byte[]   data              DataSizeInBytes*DataPoints bytes
         if (Leak) then  byte[]   leak              DataSizeInBytes*DataPoints bytes
    }

    END SINGLE SWEEP
     

    StimulationSequence:

    int32      NumberOfSegments     4 bytes

    Then come all segments, one after the other

    int32      LengthEntryName      4 bytes

    char[]     EntryName            LengthEntryName bytes
    double     SampleTime           8 bytes
    double     unused               8 bytes
    double     SweepInterval        8 bytes
    int32      NumberSweeps         4 bytes
    int32      NumberRepeats        4 bytes
    double     RepeatWait           8 bytes
    int32      LengthLinkedSequence 4 bytes
    char[]     LinkedSequence       LengthLinkedSequence bytes
    double     LinkedWait           4 bytes
    int32      LeakCount            4 bytes
    double     LeakSize             8 bytes
    double     LeakHolding          8 bytes
    BOOL       LeakAlternate        4 bytes
    BOOL       AltLeakAveraging     4 bytes
    double     LeakDelay            4 bytes
    in32       NumberOfTriggers     4 bytes // unused
    int32      RelevantXSegment     4 bytes
    int32      RelevantYSegment     4 bytes
    BOOL       WriteEnabled         4 bytes
    int32      unused[37]           148 bytes
    BOOL       WaitBeforeFirst      4 bytes

    END STIMULATION SEQUENCE
     

    Stim segment:

    int32      SegmentClass        4 bytes
    BOOL       IsHolding           4 bytes
    double     Voltage             8 bytes
    double     Duration            8 bytes
    double     DeltaVFactor        8 bytes
    double     DeltaVIncrement     8 bytes
    double     DeltaTFactor        8 bytes
    double     DeltaTIncrement     8 bytes
    int32      unused[5]           20 bytes

    END STIM SEGMENT
     

    System time:
    WORD        wDay           2 bytes
    WORD        wDayOfWeek     2 bytes
    WORD        wHour          2 bytes
    WORD        wMilliseconds  2 bytes
    WORD        wMinute        2 bytes
    WORD        wMinute        2 bytes // yes, twice. Bug kept for compatibility
    WORD        wMonth         2 bytes
    WORD        wSecond        2 bytes
    WORD        wYear          2 bytes

    END SYSTEMTIME