pyemma.coordinates.cluster_regspace

pyemma.coordinates.cluster_regspace(data=None, dmin=- 1, max_centers=1000, stride=1, metric='euclidean', n_jobs=None, chunksize=None, skip=0, **kwargs)

Regular space clustering

If given data, it performs a regular space clustering 1 and returns a RegularSpaceClustering object that can be used to extract the discretized data sequences, or to assign other data points to the same partition. If data is not given, an empty RegularSpaceClustering will be created that still needs to be parametrized, e.g. in a pipeline().

Regular space clustering is very similar to Hartigan’s leader algorithm 2. It consists of two passes through the data. Initially, the first data point is added to the list of centers. For every subsequent data point, if it has a greater distance than dmin from every center, it also becomes a center. In the second pass, a Voronoi discretization with the computed centers is used to partition the data.

Parameters
  • data (ndarray (T, d) or list of ndarray (T_i, d) or a reader created by :func:`source) – input data, if available in memory

  • dmin (float) – the minimal distance between cluster centers

  • max_centers (int (optional), default=1000) – If max_centers is reached, the algorithm will stop to find more centers, but it is possible that parts of the state space are not properly ` discretized. This will generate a warning. If that happens, it is suggested to increase dmin such that the number of centers stays below max_centers.

  • stride (int, optional, default = 1) – If set to 1, all input data will be used for estimation. Note that this could cause this calculation to be very slow for large data sets. Since molecular dynamics data is usually correlated at short timescales, it is often sufficient to estimate transformations at a longer stride. Note that the stride option in the get_output() function of the returned object is independent, so you can parametrize at a long stride, and still map all frames through the transformer.

  • metric (str) – metric to use during clustering (‘euclidean’, ‘minRMSD’)

  • n_jobs (int or None, default None) – Number of threads to use during assignment of the data. If None, all available CPUs will be used.

  • chunksize (int, default=None) – Number of data frames to process at once. Choose a higher value here, to optimize thread usage and gain processing speed. If None is passed, use the default value of the underlying reader/data source. Choose zero to disable chunking at all.

Returns

regSpace – Object for regular space clustering. It holds discrete trajectories and cluster center information.

Return type

a RegularSpaceClustering clustering object

class pyemma.coordinates.clustering.regspace.RegularSpaceClustering(*args, **kwargs)

Regular space clustering

Methods

assign([X, stride])

Assigns the given trajectory or list of trajectories to cluster centers by using the discretization defined by this clustering method (usually a Voronoi tesselation).

describe()

Get a descriptive string representation of this class.

dimension()

output dimension of clustering algorithm (always 1).

estimate(X, **kwargs)

Estimates the model given the data X

fit(X[, y])

Estimates parameters - for compatibility with sklearn.

fit_predict(X[, y])

Performs clustering on X and returns cluster labels.

fit_transform(X[, y])

Fit to data, then transform it.

get_model_params([deep])

Get parameters for this model.

get_output([dimensions, stride, skip, chunk])

Maps all input data of this transformer and returns it as an array or list of arrays

get_params([deep])

Get parameters for this estimator.

iterator([stride, lag, chunk, …])

creates an iterator to stream over the (transformed) data.

load(file_name[, model_name])

Loads a previously saved PyEMMA object from disk.

n_chunks(chunksize[, stride, skip])

how many chunks an iterator of this sourcde will output, starting (eg.

n_frames_total([stride, skip])

Returns total number of frames.

number_of_trajectories([stride])

Returns the number of trajectories.

output_type()

By default transformers return single precision floats.

sample_indexes_by_cluster(clusters, nsample)

Samples trajectory/time indexes according to the given sequence of states.

save(file_name[, model_name, overwrite, …])

saves the current state of this object to given file and name.

save_dtrajs([trajfiles, prefix, output_dir, …])

saves calculated discrete trajectories.

set_model_params(clustercenters)

set_params(**params)

Set the parameters of this estimator.

trajectory_length(itraj[, stride, skip])

Returns the length of trajectory of the requested index.

trajectory_lengths([stride, skip])

Returns the length of each trajectory.

transform(X)

Maps the input data through the transformer to correspondingly shaped output data array/list.

update_model_params(**params)

Update given model parameter if they are set to specific values

write_to_csv([filename, extension, …])

write all data to csv with numpy.savetxt

write_to_hdf5(filename[, group, …])

writes all data of this Iterable to a given HDF5 file.

Attributes

describe()

Get a descriptive string representation of this class.

property dmin

Minimum distance between cluster centers.

property max_centers

Cutoff during clustering. If reached no more data is taken into account. You might then consider a larger value or a larger dmin value.

property n_clusters

References

1

Prinz J-H, Wu H, Sarich M, Keller B, Senne M, Held M, Chodera JD, Schuette Ch and Noe F. 2011. Markov models of molecular kinetics: Generation and Validation. J. Chem. Phys. 134, 174105.

2

Hartigan J. Clustering algorithms. New York: Wiley; 1975.