Programming

Lex and Yacc

Lex and yacc (now flex and bison) can be used to write a lexer and parser for such things as configuration files, trees in newick format, and so on. A basic tutorial is available here. There are also detailed manuals for flex and bison.

Autotools

This is a suite of gnu tools for creating portable source code distributions. A great tutorial can be found here. The definitive “goat” book on autotools and libtools can be found online here.

getopt

This is a gnu standard library that is incredibly useful for parsing command line options. It is best used with the gcc/c++ compiler. A brief description is found here.

Git

Git (git) is a great tool for maintaining prior versions of your source code (or manuscripts) in an organized hierarchy. A free book on git is here. A quick reference is here. Open source projects can be hosted for free on github and private repositories for academic research (with some limitations) can be hosted on bitbucket. I use both. Projects on github can have web pages (gitpages) hosted as well. This website is hosted on github

LaTeX

This program (derived from Don Knuth’s TeX program) is ideal for writing manuscripts that use a lot of equations. I wrote my PhD in LaTeX and so have most of my graduate students. A tutorial, list of symbols, etc, can be found here.

Getting that ugly DOS ^M newline character out of your text files

I collaborate with quite a few people who use Windows and seem to be unaware that their Windows text editor is littering our shared text files with ^M DOS style carriage returns. Here is a useful emacs command to strip all the ^M characters out replacing them with a unix newline:

M-x replace-string RET C-q C-m RET C-q C-j RET

Bioinformatics

NGS data file formats

The FASTQ format appears to be emerging as a standard for next-generation sequencing data (particularly Illumina GAII reads). The Wikipedia description of the format is here.

NCI wiki

This wiki explains barcoding scheme and other features of cancer genome databases such as GCAT.

Proggy fonts

These are my favorite terminal fonts. Available here.