Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What are some data structures that should be known by somebody involved in bioinformatics?

I guess that everyone is expected to know about lists, hashes, balanced trees, etc, but I expect that there are domain specific data structures. Is there any book devoted to this subject?

Thanks, Lucian

share|improve this question

closed as too broad by MetaFight, gnat, whatsisname, Scant Roger, Ixrec Jan 4 at 7:53

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

I can't think of any data structures that are really unique to bioinformatics. There are a lot of algorithms that are common in bioinformatics but which you don't see too often in generic commercial programming. Dynamic programming comes up all the time for example. Note that this has nothing to do with dynamic types, rather it is an efficient technique for unrolling recursive calls.

There are dozens of books on algorithms in bioinformatics. A couple of good ones I can name off the top of my head are: Biological Sequence Analysis and An Introduction to Bioinformatics Algorithms

share|improve this answer

If you are to do any work on large datasets you need to learn how to handle those efficiently.

Just think if you are going to do image analysis on a 2 Gb TIFF image. Or sequence matching on a 150 Gb genome dataset.

When you move from a "nothing is slow" to a "this operation is fast and THIS is very, very slow but then THESE operations are fast" mindset, your algorithms tend to change. It is relatively cheap to manipulate data in memory as opposed to having to fetch them from disk all the time, and it is relatively cheap to manipulate data in the cpu cache as opposed to having to fetch them from memory all the time. In other words, algorithms that take that in consideration will be faster resulting in faster results, more publications and fame and Nobel prizes.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.