code: def transform_subject(self, X):
          
          # Check if the model exist
          if hasattr(self, 'w_') is False:
              raise NotFittedError("The model fit has not been run yet.")
  
          # Check the number of TRs in the subject
          if X.shape[1] != self.s_.shape[1]:
              raise ValueError("The number of timepoints(TRs) does not match the"
                               "one in the model.")
  
          w = self._update_transform_subject(X, self.s_)
  
          return w
docs: Transform a new subject using the existing model.
          The subject is assumed to have recieved equivalent stimulation
  
          Parameters
          ----------
  
          X : 2D array, shape=[voxels, timepoints]
              The fMRI data of the new subject.
  
          Returns
          -------
  
          w : 2D array, shape=[voxels, features]
              Orthogonal mapping `W_{new}` for new subject