code: def partial_transform(self, traj):
          
  
          # check to make sure topologies are consistent with the reference frame
          try:
              assert traj.top == self.reference_frame.top
          except:
              warnings.warn("The topology of the trajectory is not" +
                            "the same as that of the reference frame," +
                            "which might give meaningless results.")
  
          X = np.zeros((traj.n_frames, self.n_features))
  
          for f in range(self.n_features):
              frame = self.reference_traj[f]
              traj.superpose(frame, atom_indices=self.align_indices)
              X[:,f] = self._naive_rmsd(traj, frame, self.calculate_indices)
  
          return X
docs: Featurize an MD trajectory into a vector space via distance
          after superposition
  
          Parameters
          ----------
          traj : mdtraj.Trajectory
              A molecular dynamics trajectory to featurize.
  
          Returns
          -------
          features : np.ndarray, shape=(n_frames, n_ref_frames)
              The RMSD value of each frame of the input trajectory to be
              featurized versus each frame in the reference trajectory. The
              number of features is the number of reference frames.
  
          See Also
          --------
          transform : simultaneously featurize a collection of MD trajectories