I have infant MEG recordings from a customized infant MEG system (123 channels) without ECG recorded. I used ICA (infomax) to remove heartbeats on infant visual evoked response datasets and it usually removed quite a bit of heart beats artifacts when I ran it with 25 components. In a new sets of infant resting MEG data (recorded in the same machine), I ran it specifying 40 components and in almost all subjects, the the heartbeats artifacts look bigger when I remove the component. I would like to get your opinion on why it didn't work and perhaps there is a bug in the display?
Here are the links of the screenshots I took before and after removing the component:
Maybe there's another heart beat component that was not removed? There is often more than one. Of course, it would be surprising that this would happen for most subjects. Might be helpful if you're able to share an example dataset.
Yes often there are more than 1 heart beat IC. I first run it on 10 subjects and very often the more heartbeats ICs I removed, the data look worse and more heartbeats contaminated. Here is the link of a dataset:
Sorry it took me a while to look at your data. I think you didn't send the right one: there's no heart beat in the components you mentioned and the anatomy and data subjects don't match (HH_31 vs HH_30), but we don't need the anatomy anyway for ICA.
I was able to reproduce what you describe on your data, not just with the heart beat components, but other more obvious noisy components as well. I reran ICA and removing a component seems to actually add noise. It's very obvious with this component which seems to come from only one channel, removing it adds it to many other channels.
I thought maybe ICA didn't converge, but there's no indication that's the case (it stopped after 359 iterations with a very small weight change).
I don't have time to check the code now, but it almost looks like the weights and inverse weights are mixed up. But there's definitely something odd going on. I'll continue investigating when I have a chance, but maybe @Francois can help as well.
Thanks for checking. For HH_30, IC37 (total 40 ICs) is the heartbeat IC, and for HH_31, IC14 and IC16 are heartbeats ICs (see below links for screenshots). I filtered the data from 0.3 - 150 Hz with notch filter 60 and 120 Hz.
I agreed that it seems like the weights and the inverse weights are mixed up. I used a similar pipelines before on different datasets with 60 participants and didn't have problems removing heartbeats (the same babies, different tasks, recorded in the same machine). The only differences were the filter done before ICA (3 - 55Hz instead of 0.3 - 150Hz) and the number of components I sent for ICA (25 vs. 40). I also have not updated the brainstorm codes since then so they should be using exactly the same codes.
Let me know what you think. I don't want to just switch to use SSP instead of ICA without knowing why ICA worked before on the same group of participants but doesn't work now.
I used a similar pipelines before on different datasets with 60 participants and didn't have problems removing heartbeats (the same babies, different tasks, recorded in the same machine). The only differences were the filter done before ICA (3 - 55Hz instead of 0.3 - 150Hz) and the number of components I sent for ICA (25 vs. 40). I also have not updated the brainstorm codes since then so they should be using exactly the same codes.
And how does it work if you use again the same parameters as before with these files? Does it work as expected?
Do you have any issue if you do not restrict the number of IC?
If you specify a number of IC, it reduces first the dimensions of the data with a PCA, which may propagate some strong artifacts from one noisy channel to others. Make sure you remove the bad channels before.
I will check the files that you sent. I'm not an ICA expert so I'm not sure I'll be able to help, but maybe there is some additional side problem.
A possible cause of problem is the version of Brainstorm you are using (7 Feb 2018).
On Feb 15th 2018, the way to remove the noisy IC was modified:
I ran ICA on the same dataset using two different parameters:
(1) band-pass 3-55Hz, notch filter 60, 120 Hz, 25 ICA components: 2 heartbeats components, when removing them the data looks cleaner
(2) band-pass 0.3-150Hz, notch filter 60, 120Hz, 40 ICA components: 2 heartbeats components, when removing them the data looks more contaminated with heartbeats.
The different band-pass could also have an important effect so the comparison would be better with the same frequency range (at least for one subject), but I don't think it explains what we're observing. I'll try it with different number of components when I get a chance, hopefully this week.
Before this change, the reconstructed signal would only contain what was kept by PCA (minus the rejected components), while after, it keeps everything but the rejected components. So that change makes sense. But I'm using the latest version, so it doesn't explain my results.
I finally looked at the recordings you sent, sorry for the delay.
I think the main problem is that there are too many large artifacts in these recordings...
What happened during these recording sessions? are these patients who cannot stay still and keep on moving continuously? or do you have a poorly insulated MEG room and lots of magnetic noise in the environment?
All these large waves that you see in your recordings are only artifacts, that probably got sprayed in time by the 0.3Hz high-pass filter. As a result, if you look at the topographies of the IC, most of them are dedicated to explain these large variations, and look exactly the same... You only have less than 10 components left to explain the rest of the signal.
I don't think these are normal conditions for the execution of an ICA decomposition.
The high-pass filter at 3Hz probably gets rid of most of these large oscillations, which explains that you did not have any issue previously.
Have you performed any simple visual, auditory or somatosensory task just to confirm that you are actually recording some brain signals in the middle of this noise? Do you have a quality control procedure to assert that you have some meaningful data coming from the subject brain in there?
If you want to keep on processing this data, first try to get rid of these large artifacts. If the only way you have to clean them is by applying frequency filters, then you should update Brainstorm first because earlier this year the bandpass and notch filters were significantly improved. You would also get the major update about the ICA I mentioned ealier.
Otherwise, if you only have one subject that is as bad as this one, drop it and focus on the good ones.
I think this is a common misinterpretation when only looking at ICA topographies. When there is a large artefact that can be captured by a few or even just one components, there can still be many other components that look similar just because they're combining channels to cancel that large component and focus on others. That's why it is necessary to look at component time series as well.
I'm probably not explaining this correctly, I have almost no experience with ICA...
But filter this file with a high-pass filter with a higher cutoff frequency (3Hz in the example below) and it starts working correctly.
What is the correct explanation for this observation?
Original signals and ICs:
Removing component #6 gets rid of the most of the cardiac artifact: