360-320-6221 caperren@caperren.com

Zebrafish Scan Processor


If you’ve looked at my other projects, or my github if you don’t see it on my site yet, you’ll know that I previously wrote an application for SARL which imaged 96-well plates using a very very expensive Nikon microscope. While it was a very fun project, and they still used it up until the end of 2016, the imager became a bottleneck in the lab’s day to day operations. A single microscope wasn’t fast enough, and at $80,000 or so a piece, it wasn’t very feasible to buy and set up duplicate systems. So, the researchers played around with different ways of acquiring high resolution images faster, and much more cheaply.

After consulting with me and testing a few different models, we settled on a high end flatbed scanner that had a scanning light on the top as well as the bottom of the bed. The top lighting turned out to be necessary to avoid diffraction that would occur due to the round bottom well plates that the lab uses. So now they could easily get high resolution images with little effort, but this did not solve all the problems created by switching. In order to increase throughput, they are now scanning two images on the bed at a time, which means they can’t easily name files to correspond to the barcodes associated with the plates. This gave me an idea, and developed into what this small and hopefully useful project.

I currently have testing code that handles this problem in what I consider to be a pretty slick way. The researchers will scan all the plates for a day and forget about them. Then, late at night when no one is using the computers the application I am writing will run. The application will take each image, split it into the two individual plates, crop out the barcode on the plate and clean it up, feed that into a barcode detector which spits out the barcode number, renames the plates based on their number, splits each plate into individual images of the wells on the plate, makes a new compressed version of the original plate images, and deletes the original. As I mentioned, the testing version currently already works, and I’m actively working on it, albeit slowly as I have a lot on my plate. Check back here as time progresses to see my progress!