Skip to content

Introduction

andreanasari edited this page Sep 2, 2015 · 4 revisions

The new implemented module is called Phylogenesis, it is a package for the construction of phylogenetic trees and for the construction of multiple alignments.

Phylogenesis

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:

DistanceMatrix

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.

HierarchicalClusterBuilder

Is the abstract class for hierarchical clustering, implemented by classes that NJ and UPGMA.

Cluster

Is the data structure rappreseting a node of the clustering tree, SingleCluster represents a tree's leaf containing a Sequence object.

PhylogeneticTreeExporter

It's the Abstract class for clustering tree exporter, implemented by NewickPhylogeneticTreeExporter.

ClustalW

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.

PhylogeneticTrees, MSA

These are two programs that use the library Phylogenesis, for more details on usage see Tutorial section.

Clone this wiki locally