Easier Micro-manager User interface (EMU) loads reconfigurable user interfaces in Micro-manager. This page describes the basics of EMU, refer to the user guide for more details.
In order to provide better user experience, tailored user interfaces (UI) are often an important, albeit regularly overlooked, feature of a microscope. In Micro-Manager, UIs can be implemented as plugins and should modify the state of device properties whenever the user interacts with the UI controls (buttons, sliders…etc..). Because similar devices might have different types of properties (e.g. power percentage vs absolute power) and states (e.g. “On” vs “1”), great efforts should be spent to accommodate various devices. Otherwise, the interface will not be easily transferable and shared with other groups.
EMU provides a mechanism to build flexible and reconfigurable user interfaces. In the user point of view, EMU delivers a choice of UIs that are rapidly ready to use thanks to an intuitive configuration menu. In particular, the configuration menu allows mapping the device properties to the various functions of the interface in few clicks. EMU also simplifies the task for programmers, as implementing a new UI can be as simple as using a drag and drop software (such as Eclipse WindowBuilder) to create the interface and writing few lines of code for compatibility. EMU then takes care of the configuration and all interactions with the devices.
In summary, with EMU:
- Users have access to a bank of UIs
- The interfaces are rapidly configured and ready to use
- The UIs are easily be transferred between similar set-ups
- New UIs can be designed with drag and drop softwares and few extra lines of code
In the future, we hope to increase the number of available EMU plugins thanks to community contributions.
User interfaces will now be referred as plugins for EMU. Each plugin consists of several modules called configurable panels. Upon loading a plugin, EMU aggregates the properties and parameters of each module and provides the user with an intuitive interface to configure them.
Upon starting EMU for the first time, the user must choose a plugin to load:
After validating the choice, the plugin is loaded. Since no configuration exists yet, EMU also automatically starts the configuration wizard.
Plugins are configured using the configuration wizard, which is accessible through the configuration menu by clicking on modify configuration:
The configuration wizard allows changing aspects of the interface and mapping Micro-manager device properties to UI properties. On the upper part of the wizard’s window, the user can set the name of the configuration and show/hide the help window.
In addition, it features four tabs:
- Plugin settings
- Global settings
Note that changing the name of an existing configuration will create a new configuration without deleting the old one. Use the configuration manager to delete existing configurations.
One the plugin configured, click on save to write the configuration to disk. The configuration can be found in the Micro-manager installation folder, under /EMU/config.uicfg.
Plugin settings are intended to be general options of the interface. They can for instance be used to hide/show some modules, to set the number of modules or simply give them a name.
Note that in this example, the SimpleUI plugin has a single plugin setting. htSMLM (see third-party plugins) has many more.
The property tab is aimed at pairing Micro-Manager device properties with UI properties. For each relevant UI property (1st column), select a device in the device list (2nd column) then the corresponding device property (3rd list).
Some UI properties require state values. For instance, some UI properties are linked to a toggle button (button with on and off states) and therefore require two state values. Use the device property browser (Micro-Manager menus) to read out the correct values and enter them for each state (see on the previous image the states for the filterwheel position). Note that configuration preset groups can also be allocated to a UI property.
There are then different types of UI property:
- Without states
- Single-state, with only one state
- Two-state, with On and Off state
- Multi-state, with N states
- Rescaled property, see example 2
Once the UI property is allocated, the state values have to be set to a value allowed by the device property. If the UI property is not allocated, then these will be ignored.
Example 1: In the above screenshot, the filter wheel has multiple states (N=6). If your filter wheel has four positions numbered from 0 to 3, then the set the first four UI property states to 0, 1, 2 and 3. Then set the remaining ones to one of these values.
Example 2: Rescaled properties do not have states but two parameters: slope and offset. When the user enter a value for the property in the UI, the value is scaled to slope*value+offset before being applied to the device property. A good example use for such a property is with laser percentages. Some lasers only have a power (mW) device property in Micro-Manager, while the controls of the UI might be intended for percentages. Then, setting slope=max_power/100 and offset=0 allows the user to use percentage with the UI, while modifying the device property with the absolute laser power.
Parameters are mostly intended to provide reconfigurable aspects of the UI, whether they are aesthetic (e.g.: colors), functional (e.g.: hide/show or enable/disable buttons) or for improved user-friendliness (e.g.: titles or button texts).
Global settings are EMU options. For the moment, there is only a single setting:
- Enable unallocated warnings: when checked, it warns the user that some UI properties have not been allocated.
Note that global settings are set for all configurations.
Upon clicking on the help button, the help window pops up:
This window is updated every time the user clicks on a row in one of the configuration wizard tabs. The help window provides a description of the currently selected setting/property/parameter or property state.
The configuration manager can be found by clicking on the Configuration menu, then on manage configurations.
It allows deleting existing configurations. Note that the currently loaded configuration cannot be deleted.
When multiple configurations related to the currently loaded plugin exist, then the user can switch between these configurations using the switch plugin menu:
Example: If a set-up has two laser combiners, different configurations can map each combiner with the laser controls.
In the same way as for configurations, the user can switch between plugins:
The plugin menu has two entries:
Refresh UI query all current property states and updates the controls of the UI (e.g.: buttons, text boxes, sliders…) to reflect the new states. If a device property is modified outside the plugin then the state of the UI will not be in sync anymore. This happens for instance by interacting with the device property browser or configuration preset groups (main Micro-manager window). Using Refresh UI will sync the UI back with the device property states.
Description shows the description of all modules (panels) of the plugins.
Compiled plugins (.jar files) can be placed in your Micro-Manager installation folder, in the /EMU/ folder. They should then be automatically discovered by EMU and either loaded upon the first start or using the switch plugins menu.
Currently, two plugins are distributed with EMU: SimpleUI and iBeamSmart.
SimpleUI is a simple interface controlling four lasers and an optional filter wheel.
All laser/filter names and colors are configurable parameters.
iBeamSmart provides an interface for multiple iBeamSmart lasers from Toptica. Each module (= laser) features in particular controls for the FINE settings and for external digital triggering. Both of these features can be hidden using the corresponding parameters.
- htSMLM, the Ries group SMLM microscope interface. It controls four lasers, multiple filter wheels, a z-stage and features various additional controls. It includes automated activation for SMLM and unsupervised imaging tools.
Implementing your own plugin
In order to implement your own plugin, check out the programming guide, as well as the following resources:
- Tutorial using a drag and drop software (in Eclipse).
- Example code from the programming guide.
- Source code of the example plugins.
Contribute a plugin
Contribute your plugin to EMU and Micro-Manager by creating a pull request on the EMU source code or the Micro-Manager 2-gamma source code, or by contacting us.
EMU latest source code is on Github.
EMU was developed by Joran Deschamps (joran[dot]deschamps[at]embl.de) at EMBL.