CyclotronResearchCentre / FASST

FASST, aka. fMRI Artefact rejection and Sleep Scoring Toolbox, public distribution with the latest updates.
Other
19 stars 18 forks source link

acICA BCG bug #1

Open bpinsard opened 8 years ago

bpinsard commented 8 years ago

Hi fasst team, we ran into a bug in fasst during BCG automatic cica correction:

Error using subsref
Subscript indices must either be real positive integers or logicals.

Error in meeg/subsref (line 40)
                varargout{1} = builtin('subsref', field, subs(2:end));

Error in crc_par_cICAsav (line 15)
    cormx = Di.CRC.cICA{3}{ch_Mi};

Error in crc_par_cICA (line 22)
Do = crc_par_cICAsav(Di,ch_Mi);

Error in crc_par (line 227)
            Dclean = crc_par_cICA(Di);

ch_Mi value is zero, causing subscripting to fail.

Is that because the heuristic for finding correction matrix doesn't work?

Thanks for you help

ChristophePhillips commented 8 years ago

Hi, Yes ch_MI should NOT be zero... This means something went wrong when looking for this index. It's difficult to say more than this without further details about the data though... Best.

bpinsard commented 8 years ago

Hi Christophe, sorry for the delay in answering. It seems that when data are too noisy the cICA set the matrix to ones, then the MI values does not makes sense and the index chosen is 0. When looking at the data there is not much movements, so the rejection is too sensitive with my data. I tried increasing the threshold crc_def.par.bcgrem.scSNR and more data are able to pass. My question is regarding the way the thresholding is done: the maximum standard deviation across channels is chosen. However not all channels have the same amplitude (depending on distance to the ref), it seems that Fasst does not re-reference after gradient correction. In fact the highest amplitude might be the eyeblinks in frontal channels which are widely spread (this is not only sleep), causing the rejection of most of the data. Cheers.