Skip to content

Random Noise Baseline

Solver ID: RAND

Usage

from invert import Solver

# fwd = ...    (mne.Forward object)
# evoked = ... (mne.Evoked object)

solver = Solver("RAND")
solver.make_inverse_operator(fwd)
stc = solver.apply_inverse_operator(evoked)
stc.plot()

Overview

Baseline solver that returns random Gaussian noise with the correct source dimensionality. Useful for sanity-checking pipelines.

References

  1. Lukas Hecker 2025, unpublished

API Reference

Bases: BaseSolver

Baseline solver that returns random Gaussian noise as source estimate.

Source code in invert/solvers/random_noise.py
class SolverRandomNoise(BaseSolver):
    """Baseline solver that returns random Gaussian noise as source estimate."""

    meta = SolverMeta(
        acronym="RAND",
        full_name="Random Noise Baseline",
        category="Baseline",
        description=(
            "Baseline solver that returns random Gaussian noise with the correct "
            "source dimensionality. Useful for sanity-checking pipelines."
        ),
        references=["Lukas Hecker 2025, unpublished"],
    )

    def __init__(self, name="Random Noise", **kwargs):
        self.name = name
        super().__init__(**kwargs)
        self.require_recompute = False
        self.require_data = False

    def make_inverse_operator(self, forward, *args, alpha="auto", **kwargs):
        super().make_inverse_operator(
            forward, *args, reference=None, alpha=alpha, **kwargs
        )
        self.n_sources = self.leadfield.shape[1]
        return self

    def apply_inverse_operator(self, mne_obj):
        data = self.unpack_data_obj(mne_obj)
        n_time = data.shape[1] if data.ndim > 1 else 1
        source_mat = np.random.randn(self.n_sources, n_time)
        return self.source_to_object(source_mat)

__init__

__init__(name='Random Noise', **kwargs)
Source code in invert/solvers/random_noise.py
def __init__(self, name="Random Noise", **kwargs):
    self.name = name
    super().__init__(**kwargs)
    self.require_recompute = False
    self.require_data = False

make_inverse_operator

make_inverse_operator(
    forward, *args, alpha="auto", **kwargs
)
Source code in invert/solvers/random_noise.py
def make_inverse_operator(self, forward, *args, alpha="auto", **kwargs):
    super().make_inverse_operator(
        forward, *args, reference=None, alpha=alpha, **kwargs
    )
    self.n_sources = self.leadfield.shape[1]
    return self

apply_inverse_operator

apply_inverse_operator(mne_obj)
Source code in invert/solvers/random_noise.py
def apply_inverse_operator(self, mne_obj):
    data = self.unpack_data_obj(mne_obj)
    n_time = data.shape[1] if data.ndim > 1 else 1
    source_mat = np.random.randn(self.n_sources, n_time)
    return self.source_to_object(source_mat)