(December 20th, 2016) Responding to their colleagues' desire of quickly exploring bioimage data in a reproducible fashion, UK scientists developed a new open source tool for image analysis that requires only a minimum amount of programming skills.
The first human biologists, or artists (depending on your view), depicted the main anatomical features of a pig-deer on the walls of Pettakire cave, Indonesia. Thirty-five thousand years later a Nature editorial described the images as an “aubergine with stick-like legs”. This inconsistency of interpretation highlights the importance of how to properly analyse bioimages. Nowadays, we paint zeros and ones in the caves of our servers - and biology produces zillions of pictures, from EM snapshots of protein complexes to four-dimensional movies of brains or satellite photographs of the Amazon rainforest. More than ever, the real bottleneck is how to reproducibly analyse all that pixelated information.
At the Computational Systems Biology Centre of the John Innes Centre (UK), Tjelvar Olsson and Matthew Hartley faced that recurrent bottleneck when working with biomedical scientists. Micrographs from tissues, pictures of yeast cells, or brain scans - they always required some level of custom-written code before biologists could make sense of them, mainly because there was no general straightforward way for bioimage processing. So, they decided to write their own tool in the programming language named Python by experts or “one of the friendliest programming languages” by everybody else. The tool is called jicbioimage and allows any biologist to analyse, in the absence of a programming guru, images in an automated and reproducible way.
You can load images from almost any format, process them as nice matrices and apply your favourite algorithms to squeeze out all the information you want. Several pre-existing packages are unified under jicbioimage, which brings the best features of different image handling tools together:
- First, jicbioimage can read all sorts of image file formats by taking advantage of the bio-formats library. The details, such as date, sample number, etc., collectively called metadata, are also presented in a standard format. It doesn’t matter, which proprietary software your microscope uses, the entire information about the acquired image will be used.
- To handle the images for what they really are, that is, a giant matrix with all the values of your pixels, jicbiomage uses the Numpy package, which is pretty good at working with matrices.
- Once the data are read and look like a nice matrix, a giant collection of algorithms, called scikit-image (van der Walt et al., 2014), is available for doing whatever you want to your image. Since the image is handled as a Numpy matrix, it can also be processed using algorithms from scipy (Jones, Oliphant & Peterson, 2016), OpenCV (Bradski, 2000), simpleITK (Lowekamp et al., 2013), and Mohotas (Coelho, 2013).
- No matter what you do to your image, the entire process of analysis is saved chronologically, effectively creating an audit log. Every step produces an image, so that you can see how the modifications add up into the final output.
To make their point clear, Olsson and Hartley took a micrography of cells from an A. thaliana germinating stem and segmented the image in literally less than 20 lines of code. At the end of the processing, they had not only the final false-coloured image but also the segmentation and algorithm-modified middle steps.
The bioimage tool makes things easier for anyone with a biology background and a keyboard, as long as you are willing to learn the 20 lines of code that stand between you and crunching the information out of your images. Honouring the great spirit of the vibrant bioimaging community, Olsson and Hartley have offered jicbioimage free to the world.
Picture: Images generated by segmentation code (Olsson & Hartley, PeerJ)