Automatic annotation of gene families
|Author:||Tamás Nepusz, Rajkumar Sasidharan, Alberto Paccanaro|
This is the documentation of
gfam, a Python module to aid the automatic
annotation of gene families based on consensus domain architecture.
started out as a collection of loosely coupled Python scripts that process the
iprscan (a tool to obtain domain assignments of individual genes
from InterPro) and conduct some analyses using BLAST to detect novel,
previously uncharacterised domains. The original domains and the detected novel
domain candidates are then used to create a consensus domain assignment for
each gene sequence. Genes are then finally assigned to families based on their
domain architectures, and a Gene Ontology overrepresentation analysis is
conducted on the GO annotations of individual domains in the same sequence to
come up with a set of functional labels for each sequence.
You will need the following tools to run
- Python 2.5 or later. Python 3 is not supported yet.
gfamalso seems to work with Jython, but this was not tested thoroughly.
- NCBI BLAST; in particular, the
blastalltools from the legacy C-based BLAST distribution.
The latest release of SciPy is recommended, but not necessary.
gfam uses SciPy for calculating the logarithm of the gamma
function in the overrepresentation analysis routines, but it falls
back to a (somewhat slower) Python implementation if SciPy is
gfam is driven by a master configuration file named
A sample configuration file is given in the distribution. The sample
file works fine for the gene sequences of Arabidopsis thaliana; for
other species, you might have to tweak some of the parameters, and you
will surely have to modify the paths to the data files. The configuration
file is documented and mostly self-explanatory.
You can launch
gfam by typing:
This will run the whole
gfam analysis pipeline using the configuration
gfam.cfg. If your configuration file is named otherwise,
you can run it by typing:
$ bin/gfam -c my_config.cfg
If you have a question or a comment about
gfam or you think you have
found a bug, feel free to contact me.