Have you ever run experiments only to receive gigabytes of data that is hard to navigate, visualise or manipulate; and impossible to use with traditional programs like Excel?
Some simple programming could be the solution you’re looking for!
Some simple programming could be the solution you’re looking for!
My experience with programming began relatively recently when I found myself needing to process large numbers of atomic force microscopy (AFM) force curves yet unwilling to part with money for a program that seemed reasonably simple. After a week spent learning the basics of several common languages (e.g. Ruby, Javascript, Python and jQuery) at Codecademy, I settled on Python to develop further. It seemed most appropriate since it made sense to me and had some statistical and graphical packages (pre-written functions) available. Codecademy is great for learning the basic concepts and, importantly, is free to use. However, the websites I looked at tended to overlook how to write and run the programs on your own computer.
Some time later, I had become more familiar with the concepts through practicing by building simple things like a calculator, a clock, hangman (it’s simple but I’m proud of it :-); and noughts and crosses. I broached the initial problem – creating something to display, interpret and analyse force curves from AFM. Since this task was more complex than the previous ones I encountered more problems. However, with a simple Google search you can find the answers to most queries, typically on the Stackoverflow forum, since it’s highly likely that someone will have had a similar problem before. The first product was a little clunky, slow and plagued with bugs, but later versions were more streamlined – good enough for personal use (but probably not good enough to share with the wider community). My simple pieces look like other simple pieces I’ve seen but my lack of formal training makes me concerned that my code would look like a hideous train wreck to the more experienced coder.
While at the outset I wanted to save time and money, it is completely possible that more time has been spent creating a solution than strictly necessary.
Since then I’ve become more proficient (or at least think I have) and have been able to cobble together some other programs far more rapidly to help me with my work from really insignificant, and useless pieces that illustrate droplet contact angles, to those that display Raman spectra (I couldn’t find the original program), animate AFM images and one that allows Voronoi polygons to be overlaid on an AFM image of a surface to analyse the order and size distribution of pores.
Since then I’ve become more proficient (or at least think I have) and have been able to cobble together some other programs far more rapidly to help me with my work from really insignificant, and useless pieces that illustrate droplet contact angles, to those that display Raman spectra (I couldn’t find the original program), animate AFM images and one that allows Voronoi polygons to be overlaid on an AFM image of a surface to analyse the order and size distribution of pores.
Coding can be used to interact with real, physical world by using products such as the Raspberry Pi or an Arduino board with some electronics knowledge and a good helping of ambition. Just see Hackaday or Instructables for some examples.
I’d encourage everyone to take the time to explore basic programming even though if it appears daunting. It sounds cliché, perhaps it is, but with the limitless problems to apply yourself to overcoming ‘programming can be fun’ – I promise – and there’s a strange satisfaction to be found when a program runs as it should first time!
I’d encourage everyone to take the time to explore basic programming even though if it appears daunting. It sounds cliché, perhaps it is, but with the limitless problems to apply yourself to overcoming ‘programming can be fun’ – I promise – and there’s a strange satisfaction to be found when a program runs as it should first time!
About the Author: David Mallinson. David studied Pharmacology at Newcastle University and is now doing a PhD investigating protein-biomaterial interactions. ORCID 0000-0003-2615-633X
Comments
Post a Comment