Matlab
(a) The official version is R2007b, initial testing seems okay on versions up to, and including, R2010a.
(b) No toolboxes are required. Data acquisition is through NiMEx, a custom toolbox that comes with Ephus 2.0.
GLib
Installing GLib was previously a requirement with older versions (pre-r2.1.0), but is no longer necessary as a separate install.
Data acquisition boards
Currently only National Instruments (NI) data acquisition boards are supported (E or M series).
NIDAQ version issues - NIDAQ-mx 8.9.5
The number of boards depends on the number of channels required.
For electrophysiology and mapping we currently use either: (a) three DAQ boards: 2x MIO 16-4, 1x 6713; or, (b)two USB-6229 boards (or USB-6259). A single board suffices if the second patch clamp channel is not needed.
Amplifier
The software supports the following amplifiers from Axon Instruments: Multiclamp 700A and 700B, Axopatch 200B.
Additional equipment for laser scanning photostimulation (LSPS)
Scan mirrors (e.g. Cambridge Technology 6210).
Digital camera to image the recorded slice (e.g. QImaging Retiga 2000).
Photodiode and a current preamplifier to read out laser power (e.g Edmund, Stanford).
Equipment to control the duration and power of the laser beam such as a shutter (Uniblitz), a Pockels cell (Conoptics).
Alternatively laser power can be controlled without extra equipment in laser models allowing direct analog modulation of the power ( e.g. Coherent Cube series).
Computer and Operating System
Ephus runs on 32-bit PC systems running Windows XP. It has been successfully run on Windows Vista, but this is not the general recommendation. Windows 7 and 64-bit support is planned, but not currently available.
Monitor: We have found a display resolution of 1920x1200 pixels to work well, and more is better.
Tip: for optimal graphical display of Ephus GUIs, set the monitor's display properties to 'Windows Classic'.
Installing Ephus software
See the How to Install instructions.
Modifying settings in the Ephus initialization file
Every time Ephus starts, it reads an initialization file establishing the correspondence between hardware channels and data and takes care of a few additional rig-specific parameters.
Before running your first experiment, you must ensure that your initialization file matches your rig's hardware configuration. There are a couple of ways to achieve this:
- A "model" initialization file is included with Ephus and contains line-by-line instructions for filling out the relevant sections.
- If you used the installer, this file was copied into your startfiles directory. Modify it to match your hardware.
- If you did not use the installer, you may copy this file (called ephusInit_model.m) into your "startfiles" directory (optionally renaming it, e.g. init_R210_rig1), and modify it to match your hardware.
- A variety of sample files are available on this website. Select one that matches your Ephus version and intended use case, download it, and modify as necessary to match your hardware.
- Previous versions of Ephus used an "old style start-up file". These are still supported, as custom startup scripts, and useful if non-standard features/functionality are needed. It is, however, best to adopt the new style.
Refer to NI's 'Measurement and Automation' utility to get device numbers for the boards. Serial numbers for Multiclamp amplifiers can be obtained using the Multiclamp software utility.
Warning
A lack of familiarity with the logic and syntax of the initialization file is the main impediment to getting Ephus configured and running properly.
Setting up the triggering in a custom startup script
All data acquisitions (DA, AD) are externally triggered. All boards are slaved to one DIO event. The channels are specified in the startup file (see below). In the code below the trigger signal originates in dev1, port0, line0 and goes to destination PFI0. (If using clock-timed DIO, see below.)
%-------------------------------------------------\- %Set up the triggering. <<<<<<<<<<---------\- CONFIG acqJob = daqjob('acquisition'); scopeJob = daqjob('scope'); setTriggerOrigin(acqJob, '/dev1/port0/line0'); setTriggerOrigin(scopeJob, '/dev1/port0/line0'); setTriggerDestination(acqJob, 'PFI0'); setTriggerDestination(scopeJob, 'PFI0');
Each board needs to be triggered externally through PFI0.
Setting up DIO with a custom startup script
If using a board that supports clocked (i.e., precisely timed; correlated) DIO channels, such as the NI 6259, the channels need to be wired as follows. The triggerOrigin needs to be configured to port 2 instead of port 0:
setTriggerOrigin(acqJob, '/dev1/port2/line0'); % Corresponds to EXTRB on a BNC2090 on connector 0 for a PCI-6259 board. setTriggerOrigin(scopeJob, '/dev1/port2/line0');
The triggerDestination needs to be configured to PFI9 instead of PFI0:
setTriggerDestination(acqJob, 'PFI9'); setTriggerDestination(scopeJob, 'PFI9');
In addition to the shared trigger, the various Ephus DAQ subsystems must also share a common clock, termed the 'Master Clock'. This is generated by a counter/timer (generally 'ctr0') on one of the boards. For Ephus deployments where only one DAQ board is used, this counter output may be routed internally, without any wiring, e.g.:
createMasterSampleClock(acqJob, '/dev1/ctr0', 10000); setSampleClockDestination(acqJob, 'ctr0InternalOutput');
For Ephus deployments where two or more DAQ boards are used, a physical terminal should be specified as the 'sampleClockDestination', either a PFI or RTSI terminal, e.g.:
createMasterSampleClock(acqJob, '/dev1/ctr0', 10000); setSampleClockDestination(acqJob, 'PFI1');
The CTR0 output from the 'Master Sample Clock' (available on the breakout box) should be routed to the specified terminal on all the other boards. Note that, unlike with trigger routing, it is not required to loop back to the specified terminal on the same board on which the clock is generated.
Running Ephus with QCam in a custom startup script
See QCam documentation for more details
Install QCam
Run Ephus
Bind QCam to Ephus by typing the lines
qc = program('qcam', 'qcam', 'qcam'); openprogram(progmanager, qc);
(or simply type startQCam)
To directly read imaged from QCam into the mapper install the userFunction
mapper:PreGrabVideo -> qcammexSnapshot
mapper:PostGrabVideo -> unloadImage4mapper
Other settings
Create the following directories on your hard drive:
C:\DATA\username1\CELLS - where primary data goes
C:\DATA\username1\SETTINGS\configs
C:\DATA\username1\SETTINGS\hotswitches
C:\DATA\username1\SETTINGS\mapPatterns
C:\DATA\username1\SETTINGS\pulseJacker
C:\DATA\username1\SETTINGS\pulses
C:\DATA\username1\SETTINGS\userFunctions
SETTINGS\userFunctions
A sample set of directories is provided under samples. This also includes pre-made map patterns and prototypical pulses. For convenience, you may copy this directory and rename it with your desired username as the basis of your configuration.
These directories will hold a variety of settings related to experiments.
configs - contain configurations of various programs (i.e. GUIs)
hotswitches - contains files storing the settings for different experimental modes
mapPatterns - contain files that control the positions of the laser beam during maps
pulseJacker - contain cycles --experiments in which configurations are changed from one cycle position to the next
pulses - waveforms used to generate DA objects
userFunctions - .m files that are executed at particular places in the code to allow user-defined on-line analysis and other functionality