Icy 2nd Coding Party – An overview of the different projects by participants


We are snapping images from a webcam displaying the live feed in the viewer window And you can turn on live image processing – in this case binarization – I can change the live protocol. How long did you take to do this ? I took one day ! I came here to actually to learn and get to know the API of Icy and how to develop plugins, make some nice implementation of our own code in Java. I implemented the reconstruction algorithm which is kind of deconvolution for microscopy. It works now with a nice user interface and nice tooltips for the biologists and it also run in headless mode, can run on a Cluster. So, now I can easily put my code to Icy, all the previous algorithms that we have been developing can easily be translated with this knowledge now. So, we can also run it headless and then it takes the same input image an output image and then after sometimes it produces the result which is saved on the harddrive. Yeah ! So it’s done ! Thank you ! Our projects are all about snakes and user interaction. Here we have an image of yeast cells. so for example we can add a snake here, the user can place it where he wants and then he can segment it. So this is what we already had. Now, if you have several snakes that are segmented, for example here we have 4 cells that are segmented, let’s assume that the user wants to analyse those shapes because these are parametric spline shapes. I have added this functionality that is called “Shape Lab”. When you open it, you get this interface done with the library called JFreeChart, and now the goal is to analyse these 4 shapes here in this new Shape Lab. The user can see the parametric shapes here, he can maybe do some eigen analysis later and get some parameters out of it. I want to add user interaction, so here for example just play a little bit with the functionalities, it’s not yet as it should be but this is just for me to get familiar with the library. So, this is one of the projects I have done. The other thing I was discussing with Stephane the other day was improving the user interaction of our 3D snakes. So for example this is some kind of a spherical 3D snake that we have to segment blob-like structures. Stephane really helped me to make things faster in term of moving a snake, replacing a snake, for example if you go over a control point, you can drag it, kind of change its shape and all this was implemented in a very inefficient way, so Stephane helped me a lot. Now as you can see, it’s really really fast, it’s absolutely intuitive for the user to modify. I am absolutely happy with the outcome of this workshop. I hope there will be another one next year. At the Icy hackathon we’ve been building plugins to integrate OpenBIS which is a data management system that works with Icy. So the goal of the hackathon was to build plugins that integrate with the microscopy technology in OpenBIS and will allow you to download images stored in OpenBIS, process them in Icy and maybe in the future store them back in OpenBIS. We are connecting to an OpenBIS instance that runs the microscopy technology. I am now connecting to one of the production instances of OpenBIS and what you can do here is that you can select a sample and download the images that are related to this sample. Before you download it you can pick a place where the files will be downloaded. You see that it’s here and that’s the image that is coming directly from OpenBIS We build the blocks for the protocols and you can just specify here the address the user that should be used, the password and where the files should be saved so this is a config node and then here we have a node that imports the images, the data in the microscopy case, we just pick a sample as in the plugin and this works for just open the the files that has been downloaded to show that it worked So, this is what we have done during those 3 days, I hope you liked it hope to see you soon when we will build some plugin to save the data back to OpenBIS I am just discovering Icy and I am really amazed by all the features included in the software I think people are very good because they are able to sort out almost all the problems alone, so – Yeah because I see you’re doing… – Yeah Exactly I expected to be very busy and I am not ! – Meaning the API ? – Maybe because the software is too nice People don’t even need help You don’t need help ? No, thank you ! For example if I look for HeLa cells then I can look for the cell corresponding to the project which I have done which corresponds to the cell and I load it it tells me where it comes from and this is just like you want to process then you can also upload back, anything, and put some labels What I have done also you can have both download some images upload them back I could run it from the blocks I run it aldready from here and then it was uploaded I can show you You can also launch it from the command line And for now it’s just on my computer and that will run from my computer it’s going to take some time now it’s finished so it has told me that it has processed the image this is the main interface some light microscopy images with some phase contrast image and some fluorescent image we can see the green here that’s actually exactly the same cell but in EM (electron microscopy) and this cell is here and here so the scale is kind of different 2 points placed for now place the third one There is a very nice functionality in Icy that you can use in order to synchronize the things which is very useful like when you want to register images where you can see exactly where are the points and the differences between the points between the two images so, in here I am just displaying also two informations which are the difference in position between 2 points that the circle here and a predicted error based on the configuration of the registration points And you can also get a full map of the error in this area, I have less than 100 nanometers of error two images… I am just going to place my points My points are going to be placed in 3D I just have to find back which ones are the same points so for example here if I look now to the 3D view This one has been transformed to the same to the same place that it was here that’s it ! I am gonna show you an object-background separation that allows you to extract the object you can also have a segmentation do some statistics about it and the background component I worked on the parameters like you have advanced parameters you can use it on 3D image sequences the output of your background component look like this it’s pretty good except when you have a big region then you see that it’s interpolated your object component nice you can visualize it in 3D It’s always nicer so you have your 3D ROIs here and another thing that I did I worked on the protocol version So I use the plugin I put the ROI statistics on the ROIs and I save it you can run it obviously this is your input same one then you can have some statistics about your ROIs coordinates of the ROIs width, height, sphericity etc, etc that’s it ! Recently we have developed a plugin for spot detection People are using in general dyadic wavelets but the problem is inter scale details are diffused among the wavelet coefficients and if the size of the blob relies between 2 scales then it’s difficult to extract it properly This is my plugin the Scalable wavelet detector Here you can choose some different options and then the user can run the detection here those are HeLa spot images and the size of the objects vary in a huge range so you can see that we capture some small spots and the big ones as well so with the software you can easily add some extra spots if you want and you can also delete the spots if you are not satisfied or if you want to add then you can just also like drag them and then you can see that the size of the circle follows the size of the objects and all the computations are done behind the scene so it’s all automatic ! I came here to finish developing my plugins deconvolution plugin and blind deconvolution it will work with an image that is here and the PSF that is hidden because I don’t have the inner space and if I load the deconvolution you have the results in real time here you have the old image and this is the new image Where I am a cell biologist reconverted into what is called Image analysis an image analyst So the main issue is, when working on several softwares is to make softwares communicate the plugins I have been working on for Icy during this coding party is a plugin that allows importing the region of interest created under the metamorph software into the Icy software and I am quite glad because after 2 days of intensive programming I successfully made it ! So, here is a short demo You first start it, you only have two things a box to choose the file look here aaaaaarg I didn’t select a file ! so I get a message ! ok, let’s select a file this file is a test file I open it That’s fine, I run it, and… oh nooooo ! I am missing an image !! so, now, let’s create a dummy image and if I re-click, look ! I have got my ROIs ! Excellent ! Our goal in this Icy coding party was to implement ImageJ plugins from Daniel which is called log detector so this log detector is working in 3D but it’s only using 1 scale and the goal is to translate it implement it into Icy and to make it multi scale it makes the log onto all the 30 slices but actually as you can see it’s not working so I hope it will work by the end of the day maybe ! One of the big points that was very interesting in this coding party is the fact that everybody wants to use all the possible systems they want to write plugins, protocols, scripts It’s actually forcing us to to give good practices on how to write the code in a proper way so that everybody can use it at once in all possible ways laying this out in a proper way was something very interesting it’s seems that the system is maturing quite well So I hope to have a very nice system by the end of the days that works in all possible ways with a lot of interactions I developed several plugins for making the connection between ImageJ and Icy One of them which is here It’s this “import Lena” I would like to show this PSF Generator So it’s an old plugin that I have converted to Icy The goal of this PSF Generator is to generate a PSF with different kind of models we have a lot of models I can run it I didn’t set the parameters. It starts to run It’s computing for 65 here and it generates a nice PSF like that In Icy we have a .jar file This .jar file is common for Icy and in ImageJ It is the same .jar file I can run it also in FIJI or ImageJ So it looks exactly the same I can generate, probably it’s not the same parameters I can run using the same things What I did during these 3 days was actually a wrapper that makes ImgLib2 library accessible from within Icy That’s now reported to Knime ImageJ Obs ImageJ 2, ImageJ 1 and now Icy ! The wrapper itself is actually a simple set of classes and you would do something like that simply take an Icy sequence and wrap it to the ImgLib2 structure From now on, we have access to all ImgLib2 structures One of the ImgLib2 core algorithm for instance just the Perona Malik anisotropic diffusion You can simply run it and so you get ImgLib2 based anisotropic diffusion So of course there is already something like that that exists in Icy don’t want duplicating too much One of the main interest of ImgLib2 is that it is dimension agnostic and for instance you can say Hey ! take the C dimension as the 3rd dimension and compute anisotropic diffusion along that for free. So what I have been doing during this hackathon my goal was to import plugins that we have in ImageJ to Icy and basically the plan was to extract the parts of the plugin that are ImageJ dependent to make them generic enough to be use both in Icy and ImageJ At some point I needed to use complex types and Fourier transform instead of re importing an ad hoc complex class that I created some time ago I thought that I could use some types that are already there therefore I started to interact with some other people to know how to yeah ! to know how to use this ImgLib2 thing It’s not completely easy but I think it’s a pretty cool competence to have, because I mean this is something that is totally new for me and I am learning how to use that so hopefully in the end my code will be both usable by Icy and ImageJ plus it will rely on ImgLib2 things and I had absolutely no clue how to use that before coming here that’s a good achievement ! It’s the end of this Coding Party So we would like to… Well, I would like first to thanks those 2 guys Stephane and Alexandre because they have been very helpful to you they were helping everywhere and thank you guys for coming I hope that you will come back next time and that you learned a lot of things Thank you very much !

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *