J. A. Hayes
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:
PhysImage TutorialsOverview 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
- 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