Contributing to open source is quite an exciting journey. I embarked upon this path recently with few contributions to SequenceServer - A BLAST tool, a bioinformatics software built around BLAST+ that lets you setup a custom BLAST+ server to perform BLAST queries with your own database locally through a web interface.
For those who are not familiar with BLAST or Basic Local Search Alignment Tool Altschul et al. (1990) , it is an algorithm which allows quick comparison of biological sequence information which are long strings consisting of amino acids (in case of proteins) or nucleotides (in case of nucleic acids). It is routinely used by biologists all over the world to study new organisms, discover genes, and find similarity between proteins among many applications. One can see a working instance of the tool at Ant Genomes, maintained by Yannick Wurm. Dr. Wurm is a professor at the Queen Mary University of London and spearheads the project.
The program has already completed its major part of development and a stable version is already available for use. However, there are many pending issues and feature requests that could vastly improve the user experience and overall functionality of the tool. Seeing this, I got in touch with the maintainers on GitHub and submitted three pull requests fixing a few bugs and implementing a new feature.
While it was not a difficult task, I felt quite motivated with this small experience of working with the community, engaging with the developers, and obviously working with Git. Also, because SequenceServer is implemented in Ruby, this little exercise gave me an interesting opportunity to brush up my knowledge of Ruby and understanding the code. Ruby is a concise and appealing language which is not very tough to understand once you are in with the flow.
Anyway, I plan to continue my contribution to SequenceServer for quite some time and also encourage you to take a look if you are even just a little bit of biology enthusiast. I will talk more about BLAST algorithm in my next post.