code: def partial_transform(self, traj):
          
          return np.concatenate([self.features[feat].partial_transform(traj)
                                 for feat in self.which_feat], axis=1)
docs: Featurize an MD trajectory into a vector space.
  
          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.