Fig. 1
From: 27th Annual Computational Neuroscience Meeting (CNS*2018): Part One

Algorithm overview: (1) From initial positions, weight data samples by the probability of being produced by a dipole at each position, using the forward model. (2) Use these weighted samples to update the dipole and position for each neuron. Estimate each neuron’s spiking probability from the number of spikes assigned to it. (3) Calculate the waveforms generated by these dipoles. (4) Subtract off waveforms from the signal to estimate the noise covariance. (5) Update the data sample weights using the waveforms, and return to step 2)