gene_cluster, a FORTRAN90 code which divides a set of genetic data into clusters.

The data comes from genetic expression experiments.

Each cluster will be defined in terms of a representative data vector, and the clustering minimizes the sum of the squares of the "distances" of each data point to its cluster representative. Here, the "distance" may be either the Euclidean distance or a similarity measure based on angles.

The data to be examined is assumed to be stored in a file.

The file is assumed to contain a number of records, with each record stored on its own line.

Each record, in turn, contains a fixed number of data values that describe a particular gene expression experiment.

Each record will be regarded as a point in N dimensional space.

The program will try to cluster the data, that is, to organize the data by defining a number of cluster centers, which are also points in N dimensional space, and assigning each record to the cluster associated with a particular center.

The method of assigning data aims to minimize the cluster energy, which is taken to be the sum of the squares of the distances of each data point from its cluster center.

In some contexts, it makes sense to use the usual Euclidean sort of distance. In others, it may make more sense to replace each data record by a normalized version, and to assign distance by computing angles between the unit vectors.


The computer code and data files described and made available on this web page are distributed under the MIT license


gene_cluster is available in a FORTRAN90 version.

Related Data and Programs:

ASA136, a FORTRAN90 code which is an implementation of the K-Means algorithm.

CITIES, a FORTRAN90 code which defines various problems associated with a set of "cities" on a map.


KMEANS, a FORTRAN90 code which contains several implementations of the K-Means algorithm.

LAU_NP, a FORTRAN90 code which contains heuristic algorithms for the K-center and K-median problems.

SPAETH, a FORTRAN90 code which can cluster data according to various principles.

SPAETH2, a FORTRAN90 code which can cluster data according to various principles.

Source Code:

Last revised on 11 July 2020.