Tuesday, 3 June 2008

Would you want to contribute to a small open-source project?

Just a quick plug to see if I can find people interested in helping me out in some of my projects.

In the last 2 years, I started four open source projects (well: the last one was today...), each of which scratches my own itch and does what it needs to do for me. However, some features will have to be added and bugs be fixed to make them more useful to others (you, that is...).

If you are using one of these projects, please think about contributing. With that all-new fancy git version control system, it should be simpler than ever to get your own copy, tweak things a bit and send the improvements back.

1. Bio::Graphics
The Bio::Graphics library "allows for drawing overviews of genomic regions, similar to the pictures drawn by gbrowse" (from the homepage). I believe dgtized (Charles Comstock) and I have done not a bad job in creating something that is really useful, but of course some features are still missing.

Some things that come to mind that need help:

  • Find a good description on how to install it on a Mac (I've just changed job and am trying to do that, resulting in a major headache and no bio-graphics still).
  • Add new features such as a type of track to show continuous data (e.g. GC-content). We're thinking about ways to implement this, but additional ideas are welcome to get that done.
  • Is someone working on a gbrowse-like application in ruby?
  • Although I haven't found it a bottleneck yet, it'd might be a good idea to look at the performance of the thing.

A full tutorial and more information can be found here. The actual code repository has been moved from rubyforge to github and can be downloaded at http://github.com/jandot/bio-graphics. To get your copy: git clone git://github.com/jandot/bio-graphics.git

2. Ruby API to the Ensembl database
In late spring 2007, I started the ruby API to the Ensembl database. This API relies on ActiveRecord and very much tries to copy the functionality of the perl API (including transfer of coordinates between coordinate systems). Just recently I was glad to hear people at the Sanger here are looking/have looked into it as well. At the moment, only the core database is covered but it would be nice if the other ones (funcgen, variation) would be added as well. In addition, the API was developed based on Ensembl release 45. With a new release coming out every few months, the API has to be tested against those as well.

What needs help:
  • Add an API for the other databases, including variation and funcgen.
  • Keep the API testing going for each new release of the database.
The full tutorial can be found on rubyforge, but the source control has also moved to github at http://github.com/jandot/ruby-ensembl-api. Get your copy using git clone git://github.com/jandot/ruby-ensembl-api.git

3. Ruby API to the UCSC database
I just started out the API for the UCSC database. There is data available in that database that cannot be found in Ensembl yet, for example copy number variations. So I started a new project (now solely on github) by copy-paste-modifying some code of the Ensembl API. Unfortunately, there are 3415 tables in the hg18 database (yes, that's three thousand four hundred and fifteen). Obviously, I only created interfaces for the tables that I will need at work.

What needs help:
  • Add additional tables to the API.
  • Think about additional functionality that might be added to some of the models.
  • A tutorial.
Again, get your copy from http://github.com/jandot/ruby-ucsc-api.

4. Simple Project Logger
As mentioned in my previous post, I use a simple rails application to keep track of the things I work on; a digital labbook, basically. That application is called Simple Project Logger (or its unix name sprolog). It's only task is to allow me to create tasks within projects and log what I've done for each task. Sprolog works good enough for me at the moment, but there is some bad bug I can't get out. In addition, it just looks ugly.

So if you're interested:
  • The authentication doesn't work yet. You can login using OpenID, but it is still possible to view anyone's projects and tasks by just typing the full URL. I know it will need a "before_filter :login_required", but that just breaks the thing.
  • Sprolog could definitely use some CSS-love.
You can download sprolog from http://github.com/jandot/sprolog.

I'll buy you a beer.

3 comments:

al2o3cr said...

Somewhat out-of-bounds, but I rewrote the Sprolog application using the Hobo plugin. Source is at:

git://github.com/al2o3cr/hobo-sprolog.git

This version has OpenID support, and keeps each user's records seperate (ie User1 can't see User2's projects.)

I have some more ideas on how to further this - contact me if you're interested.

--Matt

Jan Aerts said...

Cool. I'll have a look at it. Keeping different users' records separate was something I have been thinking about, but had decided not to put in (yet!). In a department setup, it might be useful if everyone can see everyone's tasks and progress.

And any ideas are welcome.

Francesco said...

Hi Jan,
as I told you months ago I will be happy to provide help in some way to your useful projects! I will checkout some code from github to see what can I do :)

Cheers

Post a Comment