Algorithms are at the core of all data processing in bioinformatics, from multiple sequence alignments and genome assembly to database searches and pathway analysis. In essence, an algorithm is a step-by-step plan for solving a particular problem and developing them requires a good understanding of the structures that exist in your data.
Oftentimes, these projects push the boundaries of what could be done with data thus far, and are thereby relevant to many researchers in the field. They require you to dive deep into the inner workings of existing algorithms and find out what parts are useful for the problem at hand. Sometimes a smart combination of existing ideas might do the trick, while other times a completely new approach is warranted.
Most of the algorithm development in our lab is done in Python and R, but if the project requires heavier computations, C++, Java and even GPU programming can be on the menu. Ideally, the end product will feature a user interface for other researchers in and outside the lab, but this is by no means a requirement.
- Decoy spectral libraries - MA
- Match-between-runs in ProteomicsDB - MA