Remove sources from the decomposition.

        This function removes sources from the decomposition. Doing so invalidates currently fitted VAR models and
        connectivity estimates.

        Parameters
        ----------
        sources : {slice, int, array of ints}
            Indices of components to remove.

        Returns
        -------
        self : Workspace
            The Workspace object.

        Raises
        ------
        RuntimeError
            If the :class:`Workspace` instance does not contain a source decomposition.

def remove_sources(self, sources):
        """ Remove sources from the decomposition.

        This function removes sources from the decomposition. Doing so invalidates currently fitted VAR models and
        connectivity estimates.

        Parameters
        ----------
        sources : {slice, int, array of ints}
            Indices of components to remove.

        Returns
        -------
        self : Workspace
            The Workspace object.

        Raises
        ------
        RuntimeError
            If the :class:`Workspace` instance does not contain a source decomposition.
        """
        if self.unmixing_ is None or self.mixing_ is None:
            raise RuntimeError("No sources available (run do_mvarica first)")
        self.mixing_ = np.delete(self.mixing_, sources, 0)
        self.unmixing_ = np.delete(self.unmixing_, sources, 1)
        if self.activations_ is not None:
            self.activations_ = np.delete(self.activations_, sources, 1)
        self.var_model_ = None
        self.var_cov_ = None
        self.connectivity_ = None
        self.mixmaps_ = []
        self.unmixmaps_ = []
        return self