ICA Input of Deficient Rank Error

,

Hello,

I am trying to run ICA on 64 channel EEG data using Picard, but I keep receiving warning messages that state "Fixing rank computation inconsistency most likely because running under Linux 64-bit Matlab" and "Input matrix is of deficient rank. Please consider reducing the dimensionality (e.g. with PCA) prior to ICA." After the warning message shows up, the Picard window stalls and nothing shows up.

What's strange is that I was able to run ICA previously on the same subject data a couple days ago. The only thing that changed is the first time I ran ICA and it worked, I uploaded the subject data individually, while this time I uploaded the subject data using the Import BIDS Dataset protocol. I was wondering if that had anything to do with this error? I've also tried restarting MATLAB multiple times but the same error still pops up. For reference, I installed MATLAB2024a for Apple Silicon M1.

The warning may show if you are applying Re-referencing to the Average (as this reduces the rank by one).

  • When running Picard, how long is the recording and at which sampling frequency?

The recording is approximately 184 s long, and has a sampling rate of 1000 Hz. I've attached a screenshot of my inputs before running Picard, and I get the same error when I run ICA through the file without re-referencing beforehand.

Hello, I just wanted to follow up on this to see if there are any updates or suggestions on what I can do? Thank you!

Can you share the data file that is giving troubles to further analyses?

Sure, here is are the data files from one subject (I uploaded it to a Google Drive folder since they are too big to upload here): Sample Data - Google Drive

I'm able to run Picard without troubles. Check these two points:

  • Be sure to update the Picard plugin
    Plugins > Statistics > picard > Update

  • Load the picard plugin and ensure that, that is the picard() function that is being called

    1. Plugins > Statistics > picard > Load
    2. Run in the Matlab console: which('picard', '-all')
      It should return only the path of the plugin

Can you describe which steps are you doing from the raw files to replicate the issue on my side?

  • How are the files opened to review to Brainstorm?
  • Is there any pre-processing?
  • Is there any step to update the sensor locations?
  • Which files give troubles?

I updated and loaded the Picard plugin, and when I run which('picard', '-all') I only get the path of the plugin. However, I tried running Picard after this on several files from several subjects, and again I get the same error.

To give you a better idea of what I've been doing with the data so far, I imported the subject data using the Import BIDS dataset protocol, add the EEG positions ICBM152 BrainProducts EasyCap 64 to the channel file (I'm assuming these positions based on the metadata from the open-source dataset I'm using), and preprocess it with a notch filter and a band-pass filter. After these steps I tried to do ICA, and then I get this error. I've previously tried running ICA on preprocessed and raw files from several subjects, and they all run into this issue.

Ok, know we know the issue is not picard it self.

With this information, it is not possible to me replicate what you have.
In Brainstorm, in the Protocol with the imported BIDS, export one subject for which ICA is giving you troubles. If there are more than one raw recordings for that subject please let me know which recording is giving the error and which error.

To export a Subject, right-click on the Subject, then File > Export subject, and share the resulting .zip file.

Here is the drive to the exported subject files: Subject 1 Preprocessed Files - Google Drive

The raw files are in "sub-001_ses-1_task-EyesClosed_acq-post_eeg", "sub-001_ses-1_task-EyesClosed_acq-pre_eeg", "sub-001_ses-1_task-EyesOpen_acq-post_eeg", and "sub-001_ses-1_task-EyesOpen_acq-pre_eeg". There are also folders for the preprocessed files. I've tried running ICA for all files, both raw and preprocessed, and they come up with a similar error message of "Warning: fixing rank computation inconsistency (60 vs 2) most likely because running under Linux 64-bit Matlab" (the numbers, such as 60 vs 2, sometimes differ) and "Warning: Input matrix is of deficient rank. Please consider reducing the dimensionality (e.g. with PCA) prior to ICA," (the same as the screenshot in the original post). After these messages pop up, the Picard window stalls and there is no output.