Biologists working on the SynthSys project can now run time series analysis code to study circadian rhythms in plants and insects without fear of their software crashing, thanks to the Software Sustainability Institute.
SynthSys aims to increase understanding of genetic and chemical regulation in biological systems and to use this understanding to solve the challenges facing industrial biotechnology, clinical medicine, and agriculture.
Researchers on the project use the FFT NLLS (Fast Fourier Transform - Non-Linear Least Squares) program to examine the circadian rhythms of plants. Written in Fortran, the code was stable enough for the datasets it was designed for, but as the SynthSys researchers began to work on larger datasets - in mouse and fly research, for example - it began to reach its limits.
After hearing a talk from the Institute's consultants, biologists from the project realised this might be the answer to the problems they were facing. Eilidh Troup was brought in to look at the code, and see how it could be improved.
Eilidh realised the original Fortran was hard to maintain, and also difficult to integrate with the rest of the system used by the project. She therefore rewrote the code in Java and created comprehensive documentation to enable both its use and any future development.
The code can now handle all work that is being asked of it, and runs considerably faster than before, says Tomasz Zielinski, software developer for the SynthSys project. “The code crashed every few weeks, whenever it encountered ‘bad’ data. And then, due to various dependencies in the system, it would be 40 minutes before we could get on with any other processing.”
Thanks to the Institute however, Eilidh feels much more confident. “Now it runs consistently – and about ten times faster, because the setup is simpler and the processing is done in Java. Before, the data had to flow from Java to a bit of code in C, and then to code in Fortran and back.”Elidh also points out that is also possible to compare the FFT NLLS algorithm with others regularly used in this type of work, now that it is written in Java. “Once you take the language out of the equation you can properly compare timing and results,” she continues. “You can then use this information to advise users on which code would be best for analysing their particular data.”
Most of the SynthSys users are not even aware of the change, adds Tomasz, but simply know that the code now works, and works well. Thanks to the Institute, they can get on with their work without interruption.