-
Notifications
You must be signed in to change notification settings - Fork 0
Introduction
The new implemented module is called Phylogenesis, it is a package for the construction of phylogenetic trees and for the construction of multiple alignments.
The library is essentially divided into two parts: one part for the construction of the phylogenetic trees by the algorithms UPGMA and NJ, the second part for the multiple alignments with heuristics based on ClustalW.
The class hierarchy is very simple and easily extensible through the strategy design pattern. This library uses some classes package Align2 for pairwise alignments.
Each class is "talking code" and documented in Doxygen documentation. The main classes are the following:
It implements a double triangular matrix useful to store distances and identity values between sequences without wasting memory. Access and update operations are performed in constant time. Depending on the chosen alignment algorithm (global, local or freeshift) they are filled with virtual methods calculateDistance calculateIdentity.
Is the abstract class for hierarchical clustering, implemented by classes that NJ and UPGMA.
Is the data structure rappreseting a node of the clustering tree, SingleCluster represents a tree's leaf containing a Sequence object.
It's the Abstract class for clustering tree exporter, implemented by NewickPhylogeneticTreeExporter.
ClustalW is the class that implements the heuristic for multiple alignment. To achieve multiple alignments it implements a version of Gotoh (MsaNWG) for progressive alignments that supports position-specific gap penalties (MsaGapFunction), the class architecture is similar to that for pairwise alignment on the Align2 package. The result of multiple alignment is contained in an instance of MultipleAlignment.
These are two programs that use the library Phylogenesis, for more details on usage see Tutorial section.