Project Summary
This is a somewhat random collection of bioinformatics programs and libraries written in Java/Groovy. Or it will be, once I get a chance to prepare and upload some of the things I've written.
Note: This project is distinct and separate from the BioGroovy project which is built on top of BioJava. I support the BioGroovy/BioJava projects and don't want to cause any confusion, so when I get a chance to figure out how, I will change the name of my Google code project.
AboutRecently I have found Groovy and Java together to be a very productive agile tool set. For me, almost all development starts with a simple script that generates some smallish analysis that I have to do before the end of the day. Over time, I end up reusing this code and improving it and often I end up having to build large-scale pipelines to do these same analysis in bulk. Goovy+Java gives me a very smooth path to do this
Write quick and dirty single file scripts in Groovy to get today's results out. If those prove useful, abstract the core bits out into reusable Groovy classes. If those prove useful repeatedly invest the minimal effort to translate into Java. Since Groovy can mix in Java classes with zero impedance, I am able to tap into the entire rich world of Java libraries in my quick-and-dirty one off scripts. Moreover, since these libraries are distributed as JAR files compiled for the JVM, I can be almost certain that if I see a library somewhere on the web I want to use that I can download it, drop it in my groovy lib directory, and it will just work. This contrasts with languages where there is frequently some native component to compile, introducing a huge uncertainty as to whether or not I will be able to get a particular library to even install for me today, much less get the analysis results I need out and to my many customers. In my field, it's all about getting results today, while somehow building an infrastructure for the long term in the background virtually for free. Groovy/Java lets me do this.
Without Groovy, Java is a poor choice for an agile bioinformatics language. The syntax is noisy and employs maximal bondage (must tediously throw or catch all exceptions, etc.). Those are good features for large projects, but when your project is in the early "results today!!" mode, it's not acceptable. Moreover, java itself has clunky invocation syntax that usually forces you to wrap it in a shell script just to hide the ugliness from the user. Groovy solves almost all of the issues that Java has an agile language. Groovy can be run as a script or compiled, has lazy typing with dynamic type resolution, lots of syntatic sugar, Perl/Ruby-like regular expression syntax, list and hash syntax, easy deployment, etc.
Obtain Groovy and read more about it here:
http://groovy.codehaus.org/