code: def do_ica(self, random_state=None):
          
          if self.data_ is None:
              raise RuntimeError("ICA requires data to be set")
          result = plainica(x=self.data_[self.trial_mask_, :, :], reducedim=self.reducedim_, backend=self.backend_, random_state=random_state)
          self.mixing_ = result.mixing
          self.unmixing_ = result.unmixing
          self.activations_ = dot_special(self.unmixing_.T, self.data_)
          self.var_model_ = None
          self.var_cov_ = None
          self.connectivity_ = None
          self.mixmaps_ = []
          self.unmixmaps_ = []
          return self
docs: Perform ICA
  
          Perform plain ICA source decomposition.
  
          Returns
          -------
          self : Workspace
              The Workspace object.
  
          Raises
          ------
          RuntimeError
              If the :class:`Workspace` instance does not contain data.