Wednesday, October 8, 2008

Rules for BioComputing Happiness

Inspired by this article "al3x's rules for computing happiness" of Alex Payne, I want to extend this theme to my areas: bioinformatic, computational biology and systems biology.


  1. Use as little software as possible.
  2. Use software that does one thing well.
  3. Do not use software that does many things poorly.
  4. Try to understand how a software works before to use.
  5. Do not use web applications that should be desktop applications.
  6. Do not use desktop applications that should be web applications.
  7. Do not use software that isn't made specifically for your operating system.
  8. Use a plain text editor that you know well. Not a word processor, a plain text editor.
  9. Do not use your text editor for tasks other than editing text.
  10. Do not use software that's unmaintained.
  11. Do not use software unpublished.
  12. Try to use Open Source code.
  13. Be in touch with the developers or users in forums, mail-list, ...
  14. If you don't have a formal IT department, learn to maintain your systems.


  1. Some basic analysis does not require powerful computers, you can run many locally or in web services. But if you are in a big project or the data is in order of GBs o more, consider to buy a multicore server or build a Linux Cluster.
  2. Use a Mac/Linux for personal computing or development, Windows ... don't waste your time.
  3. Use Linux or BSD on commodity hardware for server computing.
  4. The only peripheral you absolutely need is a hard disk or network drive to put backups on, but get one as big as possible.
  5. Buy as large an external display as you can afford if you'll be working on the computer for more than three hours at a time.
  6. If you'll work with DBs locally, be sure you have an appropriate internet connection.
  7. File Formats

  1. Keep as much as possible in plain text. Not Word or Excel documents, plain text.
  2. For tasks that plain text doesn't fit, store documents in an open standard file format if possible.


  1. Learn and dominate a computer language, C, Perl, Python, Ruby, Java, Bash, but be open to others.
  2. Learn to use the terminal and the commands, don't be afraid.
  3. Comment your code, try to update regularly.
  4. Automatize tasks in case of re-running for a DB update.
  5. Debug your code and try to be modular in designs.
  6. Remember your objetives, don't waste time solving common tasks or re-invent-the-wheel.
  7. First chek all works well, later put a pretty interface on it.
Finally, be prepared for parasites or people who don't believe in bioinformatics.


  1. Love your rules!

    Here is an appendix for your rules:

    It was written thinking in a parser but I think that it works for almost any script!

  2. Yes, the parser rules can extend to many other scripts.

    Thanks Dude.