Having worked with Micro-Manager for the past several years, I’ve been intrigued by the progress and impact this open-source software platform has had in the life science imaging community. Micro-Manager is changing the way we think of device control software for microscopy. I had an opportunity to collaborate with Pariksheet Nanda, one of the most excellent field imaging technicians I’ve worked with and a very experienced Micro-Manager user, to cook up a set of interview-style questions we always wanted to ask, regarding the Micro-Manager project and it’s team leaders. We presented these to Nico Stuurman, leading founder of the Micro-Manager project, and he was gracious enough to indulge us. I hope you’ll find this an interesting discussion.
(A&P = Austin & Pariksheet)
Personal + Trivia
(A&P) How did you learn to program? What do you enjoy about it?
(Nico) At the end of my undergrad studies I took a programming course (which was taught on the original Macintosh computer). I enjoyed it so much that I took on a few projects. One involved writing software to interface to a microplate reader, another one was to read Mac-formatted disks under the Atari ST operating system. I enjoy the ability to create useful tools just by writing. I also like to work in a completely logical environment, even though it may get so complex that it starts to look like illogical phenomena start happening, you can always find a logical explanation.
(A&P) How did you improve your skills as a programmer? What was the best programming advice given to you?
(Nico) I have learned most by doing. That is also my advice to anyone wanting to learn to program or to improve: Pick a project, code something that you are interested in. I have learned a lot from Nenad Amodaj concerning managing a large project like Micro-Manager. He set up very strong boundaries between the different layers of the software such that multiple people can work on the project without interfering with each others’ work.
(A&P) Describe the moments leading up to you and Ron Vale being inspired to start the Micro-Manager project.
(Nico) Ron’s lab has always operated a rather large number of microscopes. Initially many of the microscopes were running different software packages, none of them being very good. At one of our lab retreats, a student (Adam Douglass) as post-doc (Reed Kelso) and I proposed to write our own software to operate microscopes. We were a bit naive in thinking that we could do this in not too much time. Ron really liked the idea, but realized that we needed a professional programmer and helped get initial funding. We were extremely lucky to run into Nenad Amodaj, who had let a team at Axon Instruments that created the software to run their automated microscope, the Axon ImageXpress.
(A&P) Did you settle on branding the software by it’s present name from the get-go? Officially should one write the name using the greek letter as μManager or the English Micro-Manager?
(Nico) A couple of months after the start of the project it became important to have a name. We solicited ideas from our lab members. Nick Endres proposed Micro-Manager (the other contender was “OpenMic”). Ron did not like the name very much (we discovered that most people in a management position dislike the name, but everyone who is managed likes it) and changed it into μManager. The problem with the Greek letter is that it often does not reproduce well through the various electronic systems. So, both forms (Micro-Manager and μManager) are fine.
Challenges
(A&P) What do you see as the major challenges for Micro-Manager now and in the future?
(Nico) The biggest challenge will be to move Micro-Manager out of our lab and into a self-sustainable entity that can continue stewardship of the project. It has been an interesting experience to operate out of Ron’s lab, but the main focus of the lab is scientific discovery and not long-term tool development. Nevertheless, we are fully committed to give Micro-Manager a long-term future. We are thinking about various ways to continue Micro-Manager as an Open and Freely available software, supported by a community of users and microscope-related hardware suppliers. Please do approach us if you are interested in this challenge or have ideas on how to go about it. Also note that we will develop Micro-Manager in our lab for quite a few years to come.
(A&P) What is the biggest thing you had to overcome in the early days of Micro-Manager?
(Nico) We had to get a working version out in a reasonable amount of time (i.e. before we had to put in new funding requests), yet at the same time build a sane framework that could grow in the future. Nenad was critical in making that happen. He was the only one who fully understood the challenge, and now, almost 7 years later, it is impressive to see where his initial work has led to.
(A&P) What code have you worked on that you are most proud of?
(Nico) Hard to say. We are still using a web-based database that I wrote 10 years ago (together with Ethan Garner) called phplabware (http://phplabware.sourceforge.net/). It amazes me that it is still useful (and that it is hard to find better alternatives). I am also amazed by the impact of an ImageJ plugin that I wrote for a post-doc in our lab (Dieter Klopfenstein) 10 years ago. It is called MTrack2 (http://valelab.ucsf.edu/~nico/IJplugins/MTrack2.html) and apparently is still used by many researchers. I am also quite proud of seeing Micro-Manager being used on thousands of systems world-wide.
(A&P) Do you think of yourselves as engineers or scientists?
(Nico) Right in between. I really like engineering, but engineering should have a purpose. What is better than working on building systems to answer scientific questions?
Community
(A&P) What do you say to people who want to learn to hack Micro-Manager? What steps and resources for getting proficient in Java do you recommend?
(Nico) In my experience, the best way to learn programming is by doing it. So, pick a project that you would like to accomplish and that can be done in a reasonable amount of time (so that you will not give up prematurely) and go for it. For instance, write an ImageJ or Micro-Manager plugin. Start with examples that already work and change them into doing what you want them to do. Take the time to figure out every obstacle on the way, do some web searches, read whatever you can find about the problem, and do not hesitate to ask (mailing lists are great for this purpose), as an insurmountable hurdle for you can sometimes be solved in seconds by someone else.
(A&P) What developer conferences can Micro-Manager programmers meet with each other, developers of closely related projects, and perhaps also interact with users?
(Nico) Good question! We currently do not have regular meetings of Micro-Manager programmers. We have at least once attended one of the ImageJ-related hackatons (http://developer.imagej.net/hackathons) and those are probably the best venue for getting together (regretfully, we had to scrap a request to finance a hackaton from our latest grant proposal).
(A&P) Have you considered hosting on GitHub? Many active bioimaging projects have migrated there (ImageJ, CellProfiler, Bioformats), and Arthur uses it for his projects (like Clooj). GitHub supports Subversion, so no conversion of your workflow to Git is required.
(Nico) The main problem we have is that some of the vendors do not allow us to make the device adapter code public (at last count, we have 18 modules in the “SecretDeviceAdapters” section). We have a very fine grained access system to our subversion repository. I do not know if that can be replicated on GitHub. In any case, it will be a lot of work to do so, and since the benefit is not that high (after all, the repository seems to work fine), we rather spend our time on other issues.
Vendor Relationships
(A&P) Has Micro-Manager tried to partner with tech distributors and companies for user support? These distribution channels have significant budgets and people available to support microscopy systems, either by selling hardware or software maintenance contracts. Commercial activity using Micro-Manager seems to target integration of specific hardware or functionality rather than general user support.
(Nico) There have been some attempts to provide commercial support (for instance, 100xImaging and ESImaging). We also will help any company who wants to provide commercial support for Micro-Manager. I would love to see more commercial support for Micro-Manager.
(A&P) What do you think of a rating system being introduced for hardware compatibility? (For example Ubuntu’s certified hardware program, and Bio-formats’ supported formats matrix). Potential buyers frequently inquire about the experiences of other Micro-Manager users on the mailing list, and with a rating system available, they could first consult an un-editable wiki page that only you administer. This might provide a healthy competitive way for vendors to improve their popularity with the community by providing better support.
Qualifying factors for good Micro-Manager support could be:
- Availability of an SDK *
- Availability of development documentation
- EULA licensing on the SDK (permission to redistribute, requirement to sign NDA, etc)
- Different listing of features available in their own software which are not in the Micro-Manager DeviceAdapter
- Performance measurements of the product (camera frame rates, hardware typical response times)
* Some companies seem to try hard to prevent easy access to SDKs and relevant specifications. Maybe community shame can solve this issue?
(Nico) Johan Henriksson (Endrov) started such a certification. His site was at http://www.endrov.net/index.php/Open_hardware but does no longer appear to be active. If anyone is interested in starting such a site, I’ll help by providing information, however, the Micro-Manager project itself does not want to shame anyone, rather we want to work with everyone and include them in the project in whatever way the company feel comfortable. Luckily, this approach really works because customers are asking for Micro-Manager compatibility. When customers ask for it, companies will respond.
(A&P) Zeiss for the longest time did not release the SDK for their AxioCam as mentioned in your FAQ. Recently Arthur announced Henry Pinkard is developing an AxioCam device adapter. Do you think reflects a larger change in attitude towards free software, or bending to pressure from your users?
(Nico) Zeiss is a large company and has many different heads. They have been amazingly helpful from the very beginning in support of their microscopes. Their technical support always responds immediately with the exact information that we are looking for. Moreover, they have allowed us to make the microscope adapters Open Source (whereas the license to their documentation does not let one do so). The head of their camera division has been trying for a long time to make the camera SDK available to us, but it has taken a long time to convince management. I am really happy that this happened and curious to see how many people will use it. If anything, these changes will only come about when people ask for it. All commercial companies will listen to their customers (or go under).
Future
(A&P) It seems that the install base of Micro-Manager has grown the most in the geographic locations closest to the software’s origin at UCSF. Is this an accurate view? If so, what do you think will help extend the hardware install base for systems being run by Micro-Manager?
(Nico) I do not think that view is accurate. We now have pretty good data obtained from configuration files that are uploaded to our server by users. When counting only systems that use hardware, less than half (46%) are in the United States. Just 3% are from San Francisco. So, Micro-Manager is installed on systems all over the world and not only at UCSF.
I hope you enjoyed this discussion. It will be interesting to see how a continually maturing software market changes over the next few years. Thanks to Pariksheet and to Nico for taking the time to entertain this discussion. I hope customers and manufacturers will find it of use.
-Austin