PhysImage Manual

J. A. Hayes

ORC-ID: http://orcid.org/0000-0003-2849-7672

Download PhysImage source or binaries

The PhysImage software is a distribution of ImageJ, in a vein similar to Fiji, but designed to aid neurophysiologists in the acquisition, analyses, and presentation of Ca2+-imaging and electrophysiology data in a rapid manner. Unlike Fiji, PhysImage is also a fork of the core ImageJ codebase that was necessitated due to a need to glue multiple components together in an interactive way that critically relies on several Open Source libraries and additional new core code. The "gluing" is accomplished using the Open Source Java implementation of the Python scripting language called Jython. This provides a mechanism for both interactively controlling the software, through the scripting language, while also providing a simple means of re-running previous defined scripts.

PhysImage is most useful when combined with the Micro-Manager acquisition plugin to ImageJ. This is the critical component for the 'acquisition' use of the software mentioned above. However, PhysImage can be run stand-alone like ImageJ or Fiji and is quite useful for automating complex analyses and figure generation in a high-throughput manner that can take advantage of essentially all of ImageJ's basic functionality (macros, plugins, etc.), as well as providing much more capabilities for those inclined to delve into the ImageJ Application Programming Interface (i.e., API -- see below), and/or use several of the useful PhysImage-specific extensions to the ImageJ core.

The easiest way to get started with this software is to walk through the installation guide and then follow the tutorials:
Installation Guide

PhysImage Tutorials

Overview of PhysImage enhancements
Tutorial #1. Python control of ImageJ/PhysImage
Tutorial #2. Chart generation of time-series data
Tutorial #3. Importing electrophysiology data
Tutorial #4. Online acquisition of
ΔF/F data
Tutorial #5. Auto-generated figures using Layouts
Tutorial #6. Simplifications for writing/using scripts
Tutorial #7. Controlling Micro-Manager through scripts

Basic Python Tutorials

Tutorial #0.1. Basic Types of Variables -- Strings
Tutorial #0.2. Basic Types of Variables -- Numbers and Booleans
Tutorial #0.3. Lists and Dictionaries
Tutorial #0.4. Control Structures
Tutorial #0.5. Functions
Tutorial #0.6. Files
Tutorial #0.7. Filesystems

Useful Resources

  - Basic API - the most frequently used classes/functions from the PhysImage for custom utilization

 - PhysImage API - this contains the full PhysImage code with the exception of the JFreeChart-specific code (see next link). The aforementioned documentation represents an API superceding that of the standard ImageJ API.

 - JFreeChart API - a very large and sophisticated chart plotting API included and used by PhysImage. See the library's website for details on its extensive capabilites.
    Note:
The included library is moderately tweaked to improve integration and therefore the local API is more applicable to this code than the one on the library's website.

Other Useful ImageJ Resources

ImageJ Macro language - the basic information needed to code and/or record ImageJ macros
ImageJ Macro built-in functions - the extensive list of built-in macro functions

Other Useful Micro-Manager Resources

BeanShell Scripting Panel GUI - the basic information for creating BeanShell scripts through Micro-Manager
Example BeanShell scripts - a series of example scripts for controlling hardware through Micro-Manager