Adam KrautBlogGitHub

Using Ruby for Bioinformatics Applications

06 May, 2008 - 2 min read

When I started working in a bioinformatics research lab I quickly discovered the wonderful dynamic language that is Perl. I’ve spent a couple of years with Mastering Perl for Bioinformatics somewhere on or around my desk. Perl itself was designed with text-processing and reporting in mind so naturally it’s become widely used when handling biological data.

So everything bioinformatics should be coded in Perl, right? A couple of years ago I might have agreed, but now I feel differently. My first “Perl, I’m leaving you.” moment came when I discovered the way that Rails does web programming. Ruby is the magic in Rails, but I soon discovered Ruby goes much beyond web frameworks. To quote Ezra:

“I came for the Rails, but I stayed for the Ruby”

I wanted to compile some links to show how an active community is positioning Ruby to be a powerful language for bioinformatics programming:

BioRuby – open source bioinformatics library

BioRuby on Github

Web Frameworks

Ruby on Rails – the famous MVC framework that made ruby popular

Merb – fast, lightweight MVC framework

Camping – 5k microframework

Sinatra – web development DSL

Ramaze – simple, light, and modular web application framework

Rack – Webserver interface

Distributed/Parallel Computing

DRb- Distributed Ruby

SkyNet- Map Reduce in Ruby

Rinda – Linda parallel programming model in Ruby

rxgrid – Xgrid batch language

MPI Ruby – MPI bindings for Ruby

amazon-ec2 – Amazon EC2 API

Testing/Spec

RSpec – BDD framework

Test::Unit – Unit testing in the Ruby standard library

Integration with other programming languages

JRuby – JVM ruby implementation

SWIG and Ruby – automatically generate C interfaces

Ruby C extensions

Math/Statistics

Ruby-GSL – wrapper for the GNU Scientific Library

RSRuby– R statistics package in Ruby

SciRuby

Ruby NArray – similar to NumPy

Visualization/Graphics

Ruby Gnuplot – Gnuplot bindings

Ruby-Processing – The Processing language in Ruby

ruby-opengl – OpenGL bindings

Gruff – Graph API

Ruby-SVG – SVG Graphics

Ruby Gnuplot

Machine Learning

AI Related Ruby Extensions

Support Vector Machines in Ruby

Fast Artificial Neural Network library

Blogs about bioinformatics and Ruby

Saaien Tist – Jan Aerts, on bioinformatics and personal productivity

Bioinformatics Zen – Micheal Barton

Be sure to visit the Ruby for Bioinformatics room on FriendFeed for even more Ruby goodness.