ScanImage and Ephus are software applications, mostly written in MATLAB, for laser scanning microscopy, electrophysiology, laser scanning photostimulation, and other physiological methods focused on neurobiology. The software has been developed at Cold Spring Harbor Laboratory and Janelia Farm Research Campus. ScanImage and Ephus are used by dozens of laboratories throughout the world. The software originates in the laboratory of Karel Svoboda.
We have recently developed a new version of ScanImage (r3.6) which supports bidirectional scanning, allowing line periods down to 0.5 ms/line.
Supported Release(s)
Version Information ScanImage 3.5.1 is intended only for users who require Cycle mode operation. All other users, old and new, should now use ScanImage 3.6. Note that ScanImage 3.6 has brand new documentation.
If using Matlab 2007b and employing the MP-285 for motor control (e.g. stack collection), you MUST apply the patch described in Matlab Bug Report 250986 to ensure reliable/safe behavior
Support for bidirectional scanning; enhanced scan configuration; support for 4 channels and variable input voltage ranges; PowerBox feature enhancements
Compatibility with recent Matlab/NI versions; continuous disk logging; false color merge; external triggering; simplified standard.ini; improved 3 beam support
ScanImage is written primarily in Matlab and uses National Instruments data acquisition (DAQ) hardware for its core functionality. Matlab and National Instruments DAQ driver software must be installed prior to using ScanImage.
If using Matlab 2007b and planning to use the Sutter MP-285 for Z and/or X/Y motion, you MUST apply the patch described in Matlab Bug Report 250986 to ensure reliable/safe behavior. Simply copy the extracted contents of the ZIP file to your Matlab installation folder (e.g. c:\program files\matlab\r2007b) and say 'Yes to All' to replace any files (none will be replaced).
Matlab 6.5.2 is also known as Release 13/SP2 Image Processing toolbox is required, where specified, for ScanImage features involving graphical interaction (e.g. selecting line scan orientation, ROIs, or a Power Box region). If those features are not required, then the Image Processing toolbox can be omitted.
ScanImage Software Installation
(Instructions pertain to version 3.5.1 and higher)
Create a ScanImage folder at desired path location (suggestions: C:\Program Files\ScanImage or C:\My Documents\Matlab\ScanImage). Location is referred to hereafter as <ScanImage>.
Download ZIP file from table above and extract its contents into the ScanImage folder. This creates a version folder <ScanImage>\<Version#>.
Launch Matlab and select Set Path... from the File menu
Press the button Add with Subfolders... and, when prompted, select the directory <ScanImage>\<Version#>. This adds all the ScanImage installation contents to the top of the Matlab search path
Copy the file standard_model.ini from <ScanImage>\<Version#>\ScanImage\init_files to a desired path location (typical location: C:\Data\Config\ScanImage). Rename the file to standard.ini.
Modify the values in standard.ini according to your rig and experimental situation. For more information, see ScanImage INI File Overview.
How to Configure
ScanImage requires an initialization (INI) file, usually named standard.ini, to be specified at startup. This file initializes state variables for ScanImage that are considered to be invariant with respect to experiment or user employing the ScanImage installation (a 'rig'). Typically there is only one INI file per 'rig'.
The INI file should generally be stored in the same directory with one or more user (USR) files. On startup, ScanImage prompts for a USR file to be selected. If one is chosen, then ScanImage loads the standard.ini file located in the same directory, if found.
ScanImage only prompts to directly select an INI file if 1) no USR file is specified or 2) no file named standard.ini is found in the selected USR file's directory.
First Time Starting ScanImage? The first time running ScanImage, one will not have a USR file configured yet. When prompted to select a USR file, 'Cancel' should thus be selected. Then ScanImage will prompt for an INI file – the configured standard.ini file should then be selected. To avoid this double prompting going forward, it is highly recommended that users save a USR file to load on future startups.
Configuring the INI File
Each release of ScanImage (beginning with ScanImage r3.5) contains a file standard_model.ini located in the directory 'ScanImage\init_files' (and also provided below).
The user should:
Copy this standard_model.ini file to the desired INI (and USR) file directory (e.g. C:\Data\Config\ScanImage)
Rename the file to standard.ini.
Edit the file as appropriate for the hardware and experimental requirements of the rig.
The standard_model.ini file contains comments which document the meaning of each of the variables. The INI file parser is whitespace sensitive. The format <VARNAME>=<VARVALUE> must be strictly followed, i.e. no space to left or right of the equal sign
Find below the standard_model.ini file for each ScanImage release and a note for each indicating the changes, if any, compared to the prior release:
Multiple INI Files (Rarely Needed) As a general rule, only one INI file should be required per 'rig' (ScanImage installation). In rare circumstances, however, a rig might require more than one INI file. For instance, if two users – or two types of experiment – require that one of the variables contained in the INI file must differ from session to session. In such cases, there are two options:
Maintain separate folders for each INI file, each named standard.ini. Each folder contains the USR file(s) associated with that INI configuration. In this case, selecting the USR file on startup will cause the appropriate INI file to be loaded.
Name the INI files something other than standard.ini (e.g. rigConfig1.ini and rigConfig2.ini) and then select the particular INI file when prompted, after selecting the desired USR file (if any) on startup.
Download ZIP file for desired release (from table above)
Extract the ZIP file contents into Ephus installation folder
Add the unzipped Ephus directory, and its subfolders, to the Matlab path
Download the model Ephus data file archive corresponding to current Ephus version. Extract contents to desired data file location.
Download a model startup file from the list of available examples, selecting one that best matches your application. Modify as required. Locate this file on the Matlab path, and call it to start Ephus.
Ephus is named for the fabled baseball pitch, and pronounced as "EFF-ess". As with the pitch, it may trick you at first, but eventually you're sure to hit a home run. Of course, the name also evokes electrophysiology, which is the fundamental orientation of the project, be it optical or electrical.
Subversion is a free open source version control system, whose development is backed by a company (Collabnet). Using Subversion, code is hosted in a repository on a server and can be checked out into local working copies. Developers can commit code changes made in their working copy; they can update their working copies with changes made (by others) from the repository. Changes by different people (or the same person in different working copies) to the same file are merged automatically to the extent possible; otherwise conflicts are reported and must be manually resolved.
TortoiseSVN is a convenient GUI Subversion client for Windows which provides access to virtually all Subversion features.
Following the SVN convention, each project consists of three folders: trunk, branches, and tags.
The trunk contains the 'current' development version of the project's codebase. Changes to be included in the next release are committed here.
The tags folder contains snapshots of the trunk that have been captured; this allows previous versions of the codebase to be reconstituted. In our usage, the majority of tags are numbered releases.
The branches folder contains developer-specific, long-term, or experimental versions of the project's codebase; its changes are isolated from the trunk. Generally, for each branch, changes are periodically (and ultimately) merged to and from the trunk.
Ephus and ScanImage interface to a growing range of hardware devices. Frequently, custom software interfaces to these devices must be developed, allowing their capabilities to be accessed via scripting in Matlab.