Family Alignment Documentation
This Phyloinformatic Hackathon page describes use cases concerning the characterization of sequence families in a set of related organisms. There are many ways to do this so our examples, though robust and proven by practice, are selected from a multitude of possible examples. The focus is on approaches that use a Bio* toolkit ([BioJava, BioPerl, BioPython, BioRuby) since these packages offer the user different workflow possibilities and practical, re-useable code but home-grown solutions are also discussed.
All of our examples are descriptions of bioinformatic workflows or pipelines. A workflow is comprised of a set of analytical applications, performing the analyses themselves, and some set of scripts that hand data to applications and take results from these same applications. One will also frequently encounter some set of critical filters (e.g. as paraphrases, "only write those sequences to a file that match the query sequence with a p < .0001" or "get all nucleotide sequences > 250 bp in length from the input file"), and these filtering steps may be performed by an application or by a script.
The characterized gene family, either as protein or nucleotide, is not necessarily an endpoint but is frequently the starting point for detailed phylogenetic analyses. For example one use case describes the analysis of the rate of silent substitutions within and between families. Another use case describes the task of comparing a species tree to gene family trees from those same species, and how one might resolve discrepancies between those structures (Reconcile Trees Documentation).
We also describe a set of BioPerl scripts created during the Hackathon that can be used for sequence family creation and alignment.
===Analysis of Gene