What Is The Best Way To Share Scripts Between Members Of A Lab?
9
6
Entering edit mode
14.7 years ago

One of the most awful problems in my group is avoiding to rewrite scripts that have been already written by others. Since we have different projects and we work with different data, everybody ends up writing its own scripts in his favorite programming language, and it is very frequent to waste an afternoon on writing a new program and then discover that your workmate already had a script to do that.

Apart from the most logical answer ("talk with your workmates"), we are thinking about having a common place to store our best scripts, and if possible work together on them.

It would be similar to an image library like this: http://matplotlib.sourceforge.net/gallery.html, where to put the script and an example of its output (most of our scripts produce graphs), and if possible integrated with Git.

Do you have any idea? How to you cope with the problem in your lab?

general subjective • 6.3k views
ADD COMMENT
9
Entering edit mode
14.7 years ago

If you want to see the code, but also store associated information, such as expected outputs etc, then a wiki probably is the best choice (we prefer DokuWiki here), although this would involve a lot of manual effort to document each script.

Use of a site such as GitHub would give you version control + a handy place to read code, although it is not free to host private repositories there, which I guess is what the majority of labs would require.

If privacy is not a concern, then I would consider GitHub gists for code, which can then be embedded in a Posterous blog for comments. Posterous automatically unfolds Gist URLs into code samples in blog posts, so then you can annotate them easily. This would be a lot less manual effort than a wiki.

ADD COMMENT
0
Entering edit mode

lol, glad to see another group going with DokuWiki. As a low priority project I decided to implement it for our lab abd its been a huge hit ever since. No more searching for the latest plot in your email!

ADD REPLY
6
Entering edit mode
14.7 years ago
Suk211 ★ 1.1k

This might be useful: A Quick Guide to Organizing Computational Biology Projects

ADD COMMENT
4
Entering edit mode
14.7 years ago

Integrating with the source code management tool is essential, that way when code gets changed everyone can easily get the updated version. Wikis are also a good idea.

ADD COMMENT
4
Entering edit mode
14.7 years ago
Geoffjentry ▴ 320

I'm the only person in my group who uses software control, other people are averse to it. What we've ended up with is a by-convention approach within our large NAS block (which everyone mounts). Any code which is deemed to be generally useful is essentially "checked in" to a particular directory tree w/ a designated format for keeping track of versioning, builds (where appropriate), etc. Code which is specific to a project, dataset, etc is stored in a designated manner within the appropriate directory trees for that project, dataset, etc.

ADD COMMENT
3
Entering edit mode
14.7 years ago

I would recommend you to setup a wiki for your group. If you do not have a server readily you can always use one of the many wiki services available for free like Wikispaces www.wikispaces.com).

ADD COMMENT
0
Entering edit mode

Complementing this answer, a good option could be the Trac framework with the plug-in for Git. Default support is for Subversion AFAIK.

ADD REPLY
3
Entering edit mode
14.7 years ago
hadasa ★ 1.0k

You might also want to setup a simple snippets database. Navysnip application by Jason Strutz is easy to install and run if you have ruby and rubyonrails installed.

git clone git://github.com/navyrain/navysnip.git
cd navysnip
sudo rake gems:install
rake db:migrate
ruby script/server

Then visit your app at http://localhost:3000

Check out http://github.com/navyrain/navysnip for complete details

ADD COMMENT
3
Entering edit mode
14.7 years ago
Eric T. ★ 2.8k

My lab uses a network-attached storage unit which every Linux workstation mounts by NFS at startup. It was reasonably cheap -- a couple hundred dollars per TB. We also keep copies of public databases on there. We put data sets on there as we're working on them, and also put the more important scripts in a Mercurial repositiory.

As Marcos and Istvan mentioned, a wiki integrated with your VCS would be wise, and Trac trac.edgewall.org) is the obvious choice for that.

ADD COMMENT
1
Entering edit mode

I've used Trac successfully for project/code management. I'd also recommend Redmine - http://www.redmine.org/ - written in Ruby on Rails

ADD REPLY
3
Entering edit mode
14.7 years ago

I can very much recommend MyExperiment.org. You can set up a category for a certain class of scripts, as the system has no limitation to Taverna 'scripts' anymore. MyExperiment is a true social services, provides tagging, setting up groups, etc.

ADD COMMENT
1
Entering edit mode
13.4 years ago

I would go for the emergent biocoders.net where there is a snippet section

ADD COMMENT

Login before adding your answer.

Traffic: 2700 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6