Saturday, March 17, 2012

Count on your neighbour

Counting how many stuff you have is important
Scrooge counting his money
... but boring
counting sheeps
During last week, I saw a few times one of my fellow lab member printing a picture like this
Phase contrast microscopy picture of nucleation
and putting a cross on each white object. He was counting them. The first time I saw this, I thought he had to do it for one or two pictures. But at the end of the week, I asked him what he was doing and if I could help.


The above picture is taken when a phase A nucleates into a phase B. This appends for example if you cool a liquid below it's crystallization temperature. A crystal nucleus will appear from time to time and grow. The probability to form a nucleus (nucleation rate) is a very important physical parameter: if nucleation is extremely rare, you will have a single nucleus in you bottle that will grow to form a single crystal before the birth of the next nucleus. This is exactly what you want for example when you make a silicon wafer for microelectronics. If nucleation rate is high, then you will have many nuclei growing at the same time and at the end a material that is made of many different crystals. You may want this in ice creams, because small crystals have a more pleasant texture than big ones.




The only method to measure the nucleation rate in a given system is to count the number of nuclei function of time. So my colleague was counting ... for the whole week. He had done two dozens of experiments at different temperatures and compositions, and took a series of picture for each (like every couple of second for a few minutes). This makes hundreds if not thousands of pictures to analyze. And his plan was to do it by hand.

Try to count how many nuclei are in the above picture. This is a task that need careful attention: large nuclei have a good contrast, but there are many smaller ones very difficult to tell from the background. That's why my colleague was printing and crossing the counted nuclei.

As I told you in a previous post, this kind of procedure can be fully automatized. The programming takes time, so if you have only a few pictures to analyze, this may not be a good idea. In addition, this counting is tricky because the objects can have very different sizes and contrasts. However I, sitting 3 steps away, had already developed and tested such a program. The physical signification is different (I am tracking polydisperse colloidal particles) but the technology is the same. So yes, I could help.

An hour later my colleague had in his computer a script counting the nuclei for him, a picture per second or less, automated to treat a whole time series automatically without human intervention. Setting-up Python and dependencies on his computer took half of the time. We should have communicated earlier, before he had spent a week doing what the script could do in an hour.

Result of the localization. Original image (red) superimposed with localized positions (cyan squares)
As you can see on the picture above, the result is not 100% perfect, but quite close. For example there are problems when nuclei are fusing and there are also (very few) centers counted multiple times. I think I know how to adapt better my program to this situation, but my colleague told me it was enough precision for him.

This gives an other motivation to explain (in a future post) how this counting/localizing method is working.