Module 3: Scientific Computing

This module mainly uses a high-level language MATLAB to implement numerical solutions to basic models.
The first week introduces the basics of MATLAB, from Ordinary differential equation (ODE) solvers to fast fourier transform, from command windows to GUI! I realised that the code for GUIs across different languages are fairly similar: firstly include the position and properties of the control, then defining the local/global (!!) variables, execute within function calls. However I must say that the GUI for GUIs design on MATLAB helps a real lot with the actual manipulation. Perhaps I should try using wxWidgets for my pet project?

Biochemical reaction network modelling started off our second week, followed by various python-based protein simulation software tutorials. The interesting thing about network modelling is that, given the system of 17 variables and 28 ODEs, we were taught, for the sake of time, to implement these using numerical solvers. I had taken one control theories module in each of the three years in Sheffield, where we reduced the problems to the engineering black box – the System G, usually in the form of transfer function using Laplace Transform. The ease of Laplace Transform manipulation is that, we are able to simply add or remove the “blocks” of systems. Indeed, when I approached the professor about this “wild” idea (which is prominent in engineering, but rarely among biologists), he confirmed that his team actually works with transfer functions to look at damping and stability more effectively. Admittedly the two-day course was too short to introduce the complex concept behind Laplace Transform. It was really nice to gain the reassurance of the engineering theories being used for biological modelling. (Furthermore, my dormant passion in neural networks has made its return!)

The final week was for high performance computing using MATLAB with the use of the parallel toolbox. At the end we worked in groups of mixed background to reproduce a model presented in a recently published paper. Our group worked on a HIV infection model that connects components in the immune system which are attacked and natural degradation/immune system removal of components in this infection. We managed to combine the models from Pawelek et al., 2012 – which introduces the time-delay in the responses from different interconnecting and sequential immune system components, and the model by Elaiw et al., 2012 – which describes two types of infected cells and their respective influence on the system behaviour. This combined model assimilated clinical observations (although the magnitude was not quite right… would have been nice to tune some of the parameters – after all, most of the parameters were only taken from previous models fitted to patients’ data). It was awesome working in an interdisciplinary group where coders code effectively, biologists read up about the pathology effectively, and we all gather to talk through what we have done and what we should do effectively- without jargons floating around.

In fact, before I started the second week, I was in doubt whether I should have chosen the Biophysics module instead of continuing with MATLAB. The answer had become clear soon, that network modelling (which is one of the many aspects of control engineering that I would like to learn whilst as an undergraduate student) and the mere potential of observing system stability using control theories analysis have been ideal for what I had wanted to learn. I would not assume the content of biophysics to be less interesting but at the moment, what attracts me more strongly, is still engineering principles. And this has been a perfect fit for me.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s