mPhys is a set of Matlab functions and GUIs for the acquisition of electrophysiological data. It is used in our lab for acquisition of cell attached and whole cell voltage- and current- clamp data with AxoPatch 1B, C, D amplifiers and Dagan BVC 700A. We also use it for extracellular unit and field recordings with Cygnus ER98, ER8 amplifiers. We also use it for calcium dye imaging with a home-built two photon system. We use it to interact with the Instrutech ITC-18, but it can also use the Matlab Data Acquisition Toolbox to talk to National Instruments boards, the sound card, or myriad other AD devices. It can also run without hardware as a demo of the capabilities of Izhikevich's recduced equation neurons or a Hodgkin-Huxley neuron. The full package download (185 Mb or so) should run on any Win32 computer (or Win64 conmputer) since Matlab bundled the libraries that it needs in there when it compiled. However, it rather defeats the purpose to run it compiled since the idea is to build on the incredibly high level of Matlab's image and signal processing tools to let you play with your data in ways that I couldn't imagine when I made the basic program. Also, if anyone is interested in using the data acquisition parts in linux, I would be happy to help you interface the code to those Instrutech drivers (the other parts all work fine in linux so I assume also Mac).
Data Acquisition:
Basic experiment information such as location, drugs, bath, internal, and hardware are stored along with each data trace. The data acquisition functions include a multi-channel running oscilloscope trace, ability to repeatedly apply the same stimulus in episodes, control of the four digital to analog lines and 16 TTL lines with simple steps, ramps, sine waves, artificial synaptic potentials, or any arbitrary vector. Also, a seal test and bridge balance utility are provided for estimating seal and access resistances. In addition, I wrapped Ray Mercer's excellent video capture ActiveX onto a figure, so that you can capture a DIC image of your cell or transmitted image of your slice if you have a digital camera and a cheap video capture device such as the ADS Tech USB Video Express that we use.
Data Access:
The data files are all in the Matlab compressed '.mat' format with a structure that contains the protocol used for data acquisition. The episodes are stored as separate files so that if you should be so unfortunate as to corrupt or delete one, you've not wasted a whole day's experiments. A file browser GUI allows simple access to the protocol information and allows you to browse and sort files that are grouped by cell and sequence (and day if you put them in folders by day). The browser pulls selected data files into variables that are accessible from the Matlab command line or by the trace browser GUI.
ABF File Access:
The data browser can also be used to analyse and view PClamp files thanks to the outstanding work of Harald Hentschke and Forrest Collman, who wrote the abf reader files. To achieve this simply rename "mPhys/FileBrowser/Loaders (ABF)" to replace "mPhys/FileBrowser/Loaders". Many, but not all, of the analysis functions will work with ABF files, with the exceptions being those files that are looking for details in the headers about stimuli, which I can't seem to locate in the ABF files.
Data Analysis:
Basic data analysis functions that I've put in various menus of the trace browser GUI allow for identification of PSPs, action potentials, extracellular spikes, or any other feature that you define. Once detected, spike-triggered averages, crosscorrelograms, frequency plots, and various event timing measures can be run on the events. Also, analyses of PSP amplitude, decay and rise times are available in graphical and command line forms. Action potential height, threshold, AHP, sinusoidal or step input resistance, and sag quantification are also available. If recording from multiple cells, a function that wraps the PSP detector allows for rapid identification of possible synaptic connections between neurons.
Image Analysis:
We acquire a lot of two photon images with a homebuilt system and also end up with a fair number of transmitted light images as well. We use Matlab to control a National Instruments 6111 and a Labjack that controls the pockel cell and PMT controller. The basic image browser lets you open any kind of image file that Matlab supports, as well as our image format and the Biorad PIC format. From there you can save images in various formats or make a time series into a movie (all of which one can easily do also from the Matlab command line). I've also wrapped a few basic image processing commands into the GUI and allow arbitrary Matlab commands on the image so that you can make your own filters and still use the image browser. In addition, you can average or maximum project images, zoom and pan, set a background or reference image, and see a histogram. Also, you can draw, move, and delete regions of interest on the image and integrate them over time data. I'm in the process of writing a function to autodetect regions of interest (as seen in the image to the right), but it still needs tweaking. Once you have regions of interest, you can generate galvo trajectories to scan them and can integrate either a whole rotation or any segments of it. Things in progress are fine-tuning the readouts that it gets from Mitutoyo or ASI position encoders so that it can do auto reconstructions and overlay traces of two-photon imaging onto low-res images. Also I plan to add some deconvolution algorithms to convert population calcium imaging data to raster plots of spiking, but I know that several other people have already implemented that in Matlab, so am hoping to get it from them.
Please email me with any questions or comments: "larimer" at "case.edu".