creating new class for passing around matrix data
class foundations built
adjusted heatmap function to process cluster objects.
added cluster class functions to allow transposition of matrix with row/column headers
adjusted most functions to accept the cluster objects for data analysis.
moved some functions into the cluster class (all filtering functions and the data table export function)
changed __main__ pipeline to process cluster class

With addition of cluster class for handling and manipulating
gene expression data, the functions and pipelines that handle
these data has now been changed to accept and process the data
from cluster instances.

With all class-associated modifications complete, this also makes
this commit version 2.0
fixed pathname bugs and data-import error

the export pathway was being assigned to the same path as the data
table directory, causing results to not be saved. Added variable
for cluster class to select cwd as default, and allow importing
of a user-defined pathway to set for all export functions.

Also updated the module functions to use the new attribute
for exporting data.
fixed colour normalisation in table

cluster class was adjusting the vmax and vmin in the wrong (opposite)
conditions to when it was supposed to. This was fixed, and some of
the output messages have also been amended for improved clarity
in what the program is actually processing (and a better printout
of restults.
fixed class export method and transposition error

class export still expected parameters from the old function, so
these were removed. The filename path for saving was also trying
to be extracted from the old class attribute self.filename, which
was deprecated and has been replaced by self.exportPath.

There are still some functions that fail when the data matrix is
transposed such that genes are rows instead of columns. the
ANOVA function has now been corrected to allow analysis of transposed
matrices.
fixed ANOVA bug

also added str and rep functions to cluster class
fixed matrix_reorder bug, added nearest_neighbour and get_values

major bug in matrix_reorder (in which the sample names were
incorrectly rearranged during matrix reordering) has been fixed.

Nearest neighbour function pulls the (default) 10 nearest
neighbours to a specified gene, and prints them to file along
with some statistics about the average distance to all genes in
the data matrix.

Get_values class function will return the samples and their values
for a given gene.
added function for discovery of temporary expression spikes

Based on Lamb et al (2003) Cell 114:323, genes showing a temporal
peak in expression can now be detected using the expression_peaks
function. This commit also improved the error checking in the
averaging function, and allows log transformation of data matrices
containing negative values.
Added Gene Set Enrichment Analysis (GSEA) function

Includes functions for the calculation of the signal to noise
ratio in data, calculation of the enrichment score for a given
pathway, and calculation of the permuted P-value for each pathway.

This required modification of the reorder_matrix function in the
cluster class, such that samples that are not assigned to any of
the specified groups are removed. This is achieved through a new
class function remove_sample(). For the permutation calculations,
a new function was also added to randomize the sample names.

Within the signal_to_noise() function, improved code for the
partitioning of all data into an arbitrary number of groups has
been included. This can be adapted for the ANOVA function at a
later date.