views:

457

answers:

5

Which functional programming languages have bioinformatics libraries easily available?

(Don't include multi-paradigm languages such as Ruby)

Update: Listing which major functional programming languages don't currently have easy access to bioinformatics libraries is also welcome.

+1  A: 
Andrew Grimm
+4  A: 

Do you consider R as a functional and not multi-paradigm language?

If so, R has the biggest set of libraries for bioinformatics. There are many modules in CRAN, but BioConductor is what you are looking for. It as an active community and most of the libraries have been published on peer-review journals.

note: I think that apart from perl, python, and some small efforts in C/C++ and Java, no other programming language has good bioinformatics libraries at all.

dalloliogm
R also has some basic support for functional programming. See `?Filter` as an example. The `apply` family of functions is used quite often in R data analysis and also seem to be straight from the functional paradigm.
Sharpie
A: 

The best-maintained, all-purpose, language-specific bioinformatics libraries are supported by the Open Bioinformatics Foundation: BioPerl, Biopython, BioJava, BioRuby, and BioLib (C++). These libraries are so convenient it's often easier to just write a script in one of those languages even if you'd prefer a different language otherwise.

As Andrew pointed out, you can use BioJava with from a JVM-based functional language like Scala or Clojure.

BioLib is newer than the others, but it's meant to work well with SWIG so any other language can link it. Haskell has a good FFI, so you could try using it with Biolib the NCBI toolkit library -- those are probably maintained better than BioHaskell.

Eric Talevich
+1  A: 

Conversely, writing programs in Haskell is so convenient that it is often easier to supply any missing functionality yourself than to try to understand somebody else's obscure imperative code.

Although Eric takes issue with my maintenance skillz (hey, patches accepted, you know), I think Haskell is a nice platform for bioinformatics, letting the user write succinct and performant code. Works for me!

Ketil
A: 

I have started the first serious BioScala project, which includes a tutorial and design philosophy in ./doc. Furthermore I am explaining using Scala for bioinformatics at blog.thebird.nl. BioScala is a work in progress. As you can use both BioJava and BioRuby from Scala - and soon BioLib - you can hit the ground running.

pjotrp