Bioinformatics is an interdisciplinary field with biology,
computer science, statistics and information technology at its core.
A colossal amount of data is generated by biological
experiments. When biologists need tools to analyse, store and interpret this
data, Bioinformatics comes for the rescue. The job of a bioinformatician
entails writing algorithms, creating user interface, creating databases and help
molecular biologists in interpreting the computed data.
Nussinov's Algorithm - Traceback Step |
In my basic and advanced courses of bioinformatics, we were
taught about dynamic programming algorithms, namely, Nussinov’s algorithm for
RNA secondary structure prediction, Viterbi algorithm for Decoding of HMM and
UPGMA for phylogenetic tree construction. Though these algorithms are accurate,
they are very slow for large data sets. Heuristic algorithms were used instead
of dynamic programming algorithms as they gave approximate but fast solutions.
Protein Structure |
There are tons of algorithms to solve any problem in any
other field. However, it is extremely difficult to solve a biology problem
because, the living system is so complex and divergent. It becomes almost
impossible to device a perfect algorithm. For example, finding the actual representation
of the protein structure and all its function is one of the biggest challenges
faced by bioinformaticians today.
A myriad of packages for predicting genes (Ex: GenScan), for
aligning sequences (Ex: BLAST, CLUSTALW and CLUSTAL Omega), constructing
phylogenetic trees are available, but none of these give an accurate solution
for all types of problems. Though researchers are facing new problems every day,
they are being helped immensely by computer scientists. It will certainly take
a number of years to solve complicated problems, but we must remain dedicated
to this field since it offers great hope in solving diseases like HIV, Cancer, Alzheimer’s
etc that plague the society today.
References:
Dr. Sami Khuri – Bioinformatics CS123A and CS223