The Python Microscopy Environment (or PYME for short) is a microscopy software environment originally designed and implemented by our colleague and collaborator David Baddeley.
David worked with us for several years, a large part of the SMLM functionality was tested and implemented while working together at the University of Auckland. David has continued to develop this package and we regularly contribute code and extensions. PYME offers a data acquisition module which performs the microscope and camera control functionality similar to that offered by e.g. micro-manager, but optimised for PALM/STORM type imaging. The PYMEAcquire GUI interface is highly configurable and has backends for a range of different hardware in terms of cameras, microscopes, etc. We run it on a range of custom built microscopes. A major strength is the flexible extensibility resulting from being built within the powerful Python framework.
PYME is not limited to super-resolution microscopy. It can also deal with various types of confocal data - it provides powerful deconvolution and 3D visualisation tools. David has also integrated functionally for STED data and the framework is extensible so that just about any modality could be usefully interfaced to PYME.
Installation instructions
For installation details go to the python-microscopy site. These days there are fairly simple 2-line installation options that use the very flexible Python Ananconda environment. David's page provides detailed instructions how to get PYME running on your computer.
Our PYME extensions
We regularly provide code to the main PYME codebase via pull-requests. In addition to that activity we are providing several extensions to the PYME platform. These come in the form of two distributions, one that captures local installation and custom protocol files, and another one that we use as a functionality testing platfor where we add modules and GUI plugins to extend the various PYME apps.
PYME Site Configuration
We are maintaining several packages to configure and extend PYME functionality. Our Site Configuration Files provide initialisation files and custom protocols for our acqusition systems.
PYME plugins
PYME has a config system that allows adding plugins for the GUI applications quite easily. We have used this recent ability of PYME in our PYME-extra suite of tools where we implement both experimental and tested new functionality for PYME.
For example, we have recently implemented a set of renderer and analysis modules to seemlessly calculate a Fourier Ring Correlation (FRC) resolution estimate from PYME event data. The code is implemented as a combination of plugin modules for the VisGUI and dh5View apps as well as general analysis modules. Once the extension modules are installed (with a couple of simple one line commands, see the PYME-extra installation instructions) the functionality is fully integrated into the PYME interface and indistinguishable from any of the core functionality.
Extending and configuring PYME for your site
The extension functionalty is provided by the PYME.config infrastructure. Read the PYME.config documentation and look at our usage in PYME-extra to get an idea.
Blogs on PYME tips
We are running a loose sequences of blog entries on PYME tasks and tips.
PYME bitbucket repositories
We maintain several repositories on bitbucket that contain our acquisition, analysis and control codes for various types of microscopy.
- python-microscopy-exeter - a fork of David's python-microscopy with our changes1
- pyme-extra - extra plugins for PYME, including qPAINT, camera map tools, etc
- pyme-exeter-siteconfig - PYME site specific init files and custom protocols
- python-microscopy-osxapps - an alternative mac app interface for PYME using the platypus app builder
1We have migrated most of our changes to the main PYME distribution maintained by David. Any remaining changes we try to capture via our pyme-extra and pyme-exeter-siteconfig distributions. We are therefore intending to retire the python-microscopy-exeter distribution in the foreseeable future.