msmbuilder.featurizer.ContactFeaturizer¶
-
class
msmbuilder.featurizer.
ContactFeaturizer
(contacts='all', scheme='closest-heavy', ignore_nonprotein=True, soft_min=False, soft_min_beta=20, periodic=True)¶ Featurizer based on residue-residue distances.
This featurizer transforms a dataset containing MD trajectories into a vector dataset by representing each frame in each of the MD trajectories by a vector of the distances between pairs of amino-acid residues.
The exact method for computing the the distance between two residues is configurable with the
scheme
parameter.Parameters: - contacts : np.ndarray or ‘all’
array containing (0-indexed) indices of the residues to compute the contacts for. (e.g. np.array([[0, 10], [0, 11]]) would compute the contact between residue 0 and residue 10 as well as the contact between residue 0 and residue 11.) [NOTE: if no array is passed then ‘all’ contacts are calculated. This means that the result will contain all contacts between residues separated by at least 3 residues.]
- scheme : {‘ca’, ‘closest’, ‘closest-heavy’}
- scheme to determine the distance between two residues:
- ‘ca’ : distance between two residues is given by the distance
between their alpha carbons
- ‘closest’ : distance is the closest distance between any
two atoms in the residues
- ‘closest-heavy’ : distance is the closest distance between
any two non-hydrogen atoms in the residues
- ignore_nonprotein : bool
When using contact==all, don’t compute contacts between “residues” which are not protein (i.e. do not contain an alpha carbon).
- soft_min : bool, default=False
If soft_min is true, we will use a diffrentiable version of the scheme. The exact expression used
is d =
- rac{eta}{logsum_i{exp(
- rac{eta}{d_i}})} where
beta is user parameter which defaults to 20nm. The expression we use is copied from the plumed mindist calculator. http://plumed.github.io/doc-v2.0/user-doc/html/mindist.html
- soft_min_beta : float, default=20nm
The value of beta to use for the soft_min distance option. Very large values might cause small contact distances to go to 0.
- periodic : bool, default=True
If True, compute distances using periodic boundary conditions.
Methods
describe_features
(traj)Return a list of dictionaries describing the contacts features. fit_transform
(X[, y])Fit to data, then transform it. get_params
([deep])Get parameters for this estimator. partial_transform
(traj)Featurize an MD trajectory into a vector space derived from residue-residue distances set_params
(**params)Set the parameters of this estimator. summarize
()Return some diagnostic summary statistics about this Markov model transform
(traj_list[, y])Featurize a several trajectories. featurize fit -
__init__
(contacts='all', scheme='closest-heavy', ignore_nonprotein=True, soft_min=False, soft_min_beta=20, periodic=True)¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
([contacts, scheme, …])Initialize self. describe_features
(traj)Return a list of dictionaries describing the contacts features. featurize
(traj)fit
(traj_list[, y])fit_transform
(X[, y])Fit to data, then transform it. get_params
([deep])Get parameters for this estimator. partial_transform
(traj)Featurize an MD trajectory into a vector space derived from residue-residue distances set_params
(**params)Set the parameters of this estimator. summarize
()Return some diagnostic summary statistics about this Markov model transform
(traj_list[, y])Featurize a several trajectories. -
describe_features
(traj)¶ Return a list of dictionaries describing the contacts features.
Parameters: - traj : mdtraj.Trajectory
The trajectory to describe
Returns: - feature_descs : list of dict
Dictionary describing each feature with the following information about the atoms participating in each dihedral
- resnames: unique names of residues
- atominds: atom indices(returns CA if scheme is ca_inds,otherwise
- returns all atom_inds)
- resseqs: unique residue sequence ids (not necessarily 0-indexed)
- resids: unique residue ids (0-indexed)
- featurizer: Contact
- featuregroup: ca, heavy etc.
-
fit_transform
(X, y=None, **fit_params)¶ Fit to data, then transform it.
Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.
Parameters: - X : numpy array of shape [n_samples, n_features]
Training set.
- y : numpy array of shape [n_samples]
Target values.
Returns: - X_new : numpy array of shape [n_samples, n_features_new]
Transformed array.
-
get_params
(deep=True)¶ Get parameters for this estimator.
Parameters: - deep : boolean, optional
If True, will return the parameters for this estimator and contained subobjects that are estimators.
Returns: - params : mapping of string to any
Parameter names mapped to their values.
-
partial_transform
(traj)¶ Featurize an MD trajectory into a vector space derived from residue-residue distances
Parameters: - traj : mdtraj.Trajectory
A molecular dynamics trajectory to featurize.
Returns: - features : np.ndarray, dtype=float, shape=(n_samples, n_features)
A featurized trajectory is a 2D array of shape (length_of_trajectory x n_features) where each features[i] vector is computed by applying the featurization function to the `i`th snapshot of the input trajectory.
See also
transform
- simultaneously featurize a collection of MD trajectories
-
set_params
(**params)¶ Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form
<component>__<parameter>
so that it’s possible to update each component of a nested object.Returns: - self
-
summarize
()¶ Return some diagnostic summary statistics about this Markov model
-
transform
(traj_list, y=None)¶ Featurize a several trajectories.
Parameters: - traj_list : list(mdtraj.Trajectory)
Trajectories to be featurized.
Returns: - features : list(np.ndarray), length = len(traj_list)
The featurized trajectories. features[i] is the featurized version of traj_list[i] and has shape (n_samples_i, n_features)