Skip to content

Issue event-related MIPAC #22

Description

@Sgas0000

Hello!

I am trying to implement an event-related MIPAC on my data, but I encountered an error that I struggle to solve.

Here is my EEG objet :

EEG = 

  struct with fields:

               group: ''
             session: []
            comments: []
              icaact: []
             icawinv: []
           icasphere: []
          icaweights: []
         icachansind: []
          urchanlocs: []
            chaninfo: []
                 ref: ''
               event: []
             urevent: []
    eventdescription: []
               epoch: []
    epochdescription: []
              reject: []
               stats: []
            specdata: []
          specicaact: []
          splinefile: []
       icasplinefile: ''
              dipfit: []
             history: ''
               saved: ''
                 etc: []
             datfile: ''
                 run: []
             subject: ''
           condition: ''
             setname: ''
            filename: ''
            filepath: ''
            chanlocs: [1×2 struct]
             nbchan: 2
                data: [2×1000×20 double]
               srate: 500.0000
                pnts: 1000
               times: [-0.4980 -0.4960 -0.4940 -0.4920 -0.4900 -0.4880 -0.4860 -0.4840 -0.4820 -0.4800 … ] (1×1000 double)
                xmin: -0.4980
                xmax: 1.5000
              trials: 20

And here is the part of my code where I apply the pop_pac() function :

nbins = 20 ; 
flow  = 2:1:29;  
fhigh = 30:5:150; 

EEG = pop_pac(EEG,'Channels',[flow(1),flow(end)],[fhigh(1),fhigh(end)],1,2,'method','ermipac','nbinskl',nbins,'nfreqs1',length(flow),'nfreqs2',length(fhigh),'bonfcorr',0);

When i run pop_pac() I have this error :

Unrecognized function or variable 'pacstruct'.

Error in eeg_pac (line 561)
                pacstruct.ermipac.pacval(i,j,k,:) = filtfilt(b,a,squeeze(pacstruct.ermipac.pacval(i,j,k,:))');

Error in pop_pac (line 440)
        [~, ~, freqs1, freqs2, alltfX, alltfY,~, pacstruct, tfXtimes, tfYtimes] = eeg_pac(X, Y, EEG.srate,  options{:});

I am wondering if the error is coming from the eeg_pac() function code here :

% Loop  phase frequencies
for find1 = 1:length(freqs1)
    if strcmpi(g.verbose, 'on')
        fprintf('Progress : %.2f %% \n', 100*(find1-1)/length(freqs1));
    end
    % Defining time vector and other stuff before runnning the loops
    if strcmp(g.method, 'ermipac')
        windowsearchsize = round(srate/freqs1(find1));
        micomplimits = [round(windowsearchsize/2)+1 ti_loopend-round(windowsearchsize/2)-1]; 
        tindxvector = micomplimits(1):micomplimits(2); %%%% HERE
    else
        tindxvector = 1:ti_loopend;
        windowsearchsize = [];
    end

In fact, there is a problem here cause tindxvector is empty because micomplimits(1) cause is positive and micomplimits(2) is negative. I tried to solve this error but as I don’t really know what is representing tindxvector I struggle a bit to understand what I am doing!

I tried to order micomplimits(1) and micomplimits(2) according to their values to obtain a non-void tindxvector :


        if micomplimits(1)<micomplimits(2)
            tindxvector = micomplimits(1):micomplimits(2);
        else
            tindxvector = micomplimits(2):micomplimits(1);
        end

But then I have another error so I think it was not a good idea :

Error using eeg_pac
Index in position 1 is invalid. Array indices must be positive integers or logical values.

Error in pop_pac (line 440)
        [~, ~, freqs1, freqs2, alltfX, alltfY,~, pacstruct, tfXtimes, tfYtimes] = eeg_pac(X, Y, EEG.srate,  options{:});

Have you already encountered this error? If yes, do you know how to solve it?

Thanks a lot for your help!!!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions