Abstract

ABSTRACTCustom-built microscopes often require control of multiple hardware devices and precise hardware coordination. It is also desirable to have a solution that is scalable to complex systems and that is translatable between components from different manufacturers. Here we report Python-Microscope, a free and open-source Python library for high-performance control of arbitrarily complex and scalable custom microscope systems. Python-Microscope offers simple to use Python-based tools, abstracting differences between physical devices by providing a defined interface for different device types. Concrete implementations are provided for a range of specific hardware, and a framework exists for further expansion. Python-Microscope supports the distribution of devices over multiple computers while maintaining synchronisation via highly precise hardware triggers. We discuss the architectural features of Python-Microscope that overcome the performance problems often raised against Python and demonstrate the different use cases that drove its design: integration with user-facing projects, namely the Microscope-Cockpit project; control of complex microscopes at high speed while using the Python programming language; and use as a microscope simulation tool for software development.

Highlights

  • The most advanced methods and applications in modern microscopy often require the assembly of custom-built specialised microscope systems

  • In order to provide an alternative route that mitigates against these limitations, we have developed Python-Microscope, a Python library that provides an abstracted high-level interface to control microscope devices

  • Library features The design of Python-Microscope was based around a series of use cases derived from the experience of microscope hardware and software developers: (1) code that is independent of specific device models and vendors; (2) creation of Python programs as microscope experiments; (3) distribution of devices over the network and horizontal scaling; (4) integration of high-performance hardware triggers and software triggers; (5) support of both software and hardware developers during the development phase

Read more

Summary

Introduction

The most advanced methods and applications in modern microscopy often require the assembly of custom-built specialised microscope systems. Such one-off systems may range from an off-the-shelf microscope stand with a range of specialised devices attached, to an advanced engineering project built from custom optical components. Other than developing software from scratch, there are currently three popular routes for controlling custom microscopes: individual device vendor software unique to each manufacturer; microscope-specialised control software, with the most popular being Micro-Manager (μManager), a general Java-based framework with a graphical user interface (GUI) that has the lowest barrier to use; and custom control software, often written in LabVIEW or MATLAB, both of which are proprietary software. LabVIEW offers a visual programming environment that is commonly used for building instruments in the physical sciences, whereas MATLAB is a programming environment with a focus on numeric computing

Objectives
Results
Conclusion
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.