v3.6 (Development)

This is the current development version of MSMBuilder

API Changes

  • version.short_version is now 3.y instead of 3.y.z (#829).
  • msmbuilder.example_datasets is now deprecated. Please install the msmb_data package from the Omnia conda channel.
  • weighted_transform is no longer supported in tICA methods (#807). Please used kinetic_mapping.

New Features

  • BinaryContactFeaturizer featurizes a trajectory into a boolean array corresponding to whether each residue-residue distance is below a cutoff (#798).
  • LogisticContactFeaturizer produces a logistic transform of residue-residue distances about a center distance (#798).
  • FactorAnalysis, FastICA, and KernelPCA are available in the decomposition module (#807).
  • Butterworth, EWMA, and DoubleEWMA are available in the preprocessing module (#818).


  • Remove a unicode character from (gh-833)
  • msmbuilder.decomposition.KernelTICA now includes all parameters in its __init__, making it compatible with Osprey (gh-823).
  • msmbuilder.tpt methods can now handle BayesianMarkovStateModels as input. Please note that we still do not recommend using this module with BootStrapMarkovStateModel.

v3.5 (June 14, 2016)

We’re pleased to announce the release of MSMBuilder 3.5. This release wraps more relevant sklearn estimators and transformers. There are also some bugfixes and API hygiene improvements. We recommend all users upgrade to MSMBuilder 3.5.

API Changes

  • msmbuilder.featurizer.FeatureUnion is now deprecated. Please use msmbuilder.feature_selection.FeatureSelector instead (#799).
  • msmbuilder.feature_extraction has been added to conform to the scikit-learn API. This is essentially an alias of msmbuilder.featurizer (#799).

New Features

  • KernelTICA, Nystroem, and LandmarkNystroem are available in the decomposition module (#807).
  • FeatureSelector and VarianceThreshold are available in the feature_selection module (#799).
  • SparsePCA and MiniBatchSparsePCA are available in the decomposition module (#791).
  • Binarizer, FunctionTransformer, Imputer, KernelCenterer, LabelBinarizer, MultiLabelBinarizer, MinMaxScaler, MaxAbsScaler, Normalizer, RobustScaler, StandardScaler, and PolynomialFeatures are available in the preprocessing module (#796).


  • Fix a compilation error on gcc 5 (#783)
  • Fix pickle-ing of ContinuousTimeMSM. The optimizer_state_ parameter is not saved (#822).

v3.4 (March 29, 2016)

We’re pleased to announce MSMBuilder 3.4. It contains a plethora of new features, bug fixes, and improvements.

API Changes

  • Range-based slicing on dataset objects is no longer allowed. Keys in the dataset object don’t have to be continuous. The empty slice, e.g. ds[:] loads all trajectories in a list (#610).
  • Ward clustering has been renamed AgglomerativeClustering in scikit-learn. Please use the new msmbuilder wrapper class AgglomerativeClustering. An alias for Ward has been made available (#685).
  • PCCA.trimmed_microstates_to_macrostates has been removed. This dictionary was actually keyed by untrimmed microstate labels. PCCA.transform would throw an exception when operating on a system with trimming because it was using this misleading dictionary. Please use pcca.microstate_mapping_ for this functionality (#709).
  • UnionDataset has been removed after deprecation in 3.3. Please use FeatureUnion instead (#671).
  • SubsetFeaturizer and ilk have been removed from the msmbuilder.featurizer namespace. Please import them from msmbuilder.featurizer.subset (#738).
  • FirstSlicer has been removed. Use Slicer(first=x) for the same functionality (#738).
  • msmbuilder.featurizer.load has been removed. has been removed. Please use utils.load, utils.dump (#738).

New Features

  • Dataset objects can call, fit_transform_with() to simplify the common pattern of applying an estimator to a dataset object to produce a new dataset object (#610).
  • kinetic_mapping is a new option to tICA. It’s similar to weighted_transform, but based on a better theoretical framework. weighted_transform is deprecated (#766).
  • VonMisesFeaturizer uses soft bins around the unit-circle to give an alternate representation of dihedral angles (#744).
  • MarkovStateModel has a partial_transform() method (#707).
  • KappaAngleFeaturizer is available via the command line (#681).
  • MarkovStateModel has a new attribute, percent_retained_, for ergodic trimming (#689).
  • AlphaAngleFeaturizer computes the dihedral angles between alpha carbons (#691).
  • FunctionFeaturizer computes features based on an arbitrary Python function or callable (#717).
  • Automatic State Partitioning (APM) uses kinetic information to cluster conformations (#748).


  • Consistent counts setup and ergodic cutoff across various flavors of Markov models (#718, #729, #701, #705).
  • Tests no longer depend on sklearn.hmm, which has been removed (#690).
  • Improvements to RSMDFeaturizer (#695, #764).
  • SparseTICA is completely re-written with large performance improvements when dealing with large numbers of features (#704).
  • Links for downloading example data are un-broken after figshare changed URLs (#751).

v3.3 (August 27, 2015)

We’re pleased to announce the release of MSMBuilder v3.3.0. The focus of this release is a completely re-written module for constructing HMMs as well as bug fixes and incremental improvements.

API Changes

  • FeatureUnion is an estimator that deprecates the functionality of UnionDataset. Passing a list of paths to dataset() will no longer automatically yield a UnionDataset. This behavior is still available by specifying fmt="dir-npy-union", but is deprecated (#611).
  • The command line flag for featurizers --out (deprecated in 3.2) now saves the featurizer as a pickle file (#546). Please use --transformed for the old behavior. This is consistent with other command-line commands.
  • The default number of timescales in MarkovStateModel is now one less than the number of states (was 10). This addresses some bugs with implied_timescales and PCCA(+) (#603).

New Features

  • GaussianHMM and VonMisesHMM is rewritten to feature higher code reuse and code quality (#583, #582, #584, #572, #570).
  • KDTree can find n nearest points to e.g. a cluster center (#599).
  • Slicer featurizer can slice feature arrays as part of a pipeline (#567).


  • PCCAPlus is compatible with scipy 0.16 (#620).
  • Documentation improvements (#618, #608, #604, #602)
  • Test improvements, especially for Windows (#593, #590, #588, #579, #578, #577, #576)
  • Bug fix: MarkovStateModel.sample() produced trajectories of incorrect length. This function is still deprecated (#556).
  • Bug fix: The muller example dataset did not respect users’ specifications for initial coordinates (#631).
  • MarkovStateModel.draw_samples failed if discrete trajectories did not contain every possible state (#638). Function can now accept a single trajectory, as well as a list of them.
  • SuperposeFeaturizer now respects the topology argument when loading the reference trajectory (#555).

v3.2 (April 14, 2015)

  • tICA ignores too-short trajectories during fitting instead of raising an exception
  • New methods for sampling from MSM models
  • Datasets can be opened in “append” mode
  • Compatibility with scipy 0.16
  • utils.dump saves using the pickle protocol. utils.load is backwards compatible.
  • The command line flag for featurizers --out is deprecated. Use --transformed instead. This is consistent with other command-line commands.
  • Bug fixes

v3.1 (Feb 27, 2015)

  • Numerous improvements to ContinuousTimeMSM optimization
  • Switch ContinuousTimeMSM.score to transmat-style GMRQ
  • New example dataset with Muller potential
  • Assorted bug fixes in the command line layer

v3.0.1 (January 9, 2015)

  • Fix missing file on PyPI.

v3.0.0 (January 9, 2015)

MSMBuilder 3.0 is a complete rewrite of our previous work. The focus is on power and extensibility, with a much wider class of estimators and models supported throughout the codebase. All users are encouraged to switch to MSMBuilder 3.0. Pre-release versions of MSMBuilder 3.0 were called mixtape.