<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi,<br>
<br>
I am having a bit of trouble getting eegplot to allow inspection and editing of candidates for rejection.<br>
<br>
I have looked at this thread: <a href="http://sccn.ucsd.edu/pipermail/eeglablist/2011/004085.html" target="_blank">
http://sccn.ucsd.edu/pipermail/eeglablist/2011/004085.html</a><br>
<br>
I tried to implement the command listed there, but am having trouble. My problem may be that I can't seem to find how to load the eeglab workspace variables, other than through the gui.<br>
<br>
I would really appreciate if someone could have a look at the code and give me some pointers.<br>
<br>
Matt<br>
<font face="Courier New"><br>
function cleanedEEGData = detectArtefacts(eegData,locFile)<br>
%DETECTARTEFACTS Detects artefactual data using EEGLAB's functions, then<br>
%&nbsp;&nbsp; displays the data in a plot for the user to check.<br>
%&nbsp;&nbsp; Returns the eegData with artefactual trials removed.<br>
%&nbsp;&nbsp; locFile is the file containing electrode locations.<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; epochLength=eegData.xmax;<br>
&nbsp;&nbsp;&nbsp; epochTimeFrames=eegData.pnts;<br>
&nbsp;&nbsp;&nbsp; sampleRate=eegData.srate;<br>
&nbsp;&nbsp;&nbsp; events=eegData.event;<br>
&nbsp;&nbsp;&nbsp; nElec=eegData.nbchan;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %Absolute limit of electrode values in uV<br>
&nbsp;&nbsp;&nbsp; lowerLimit=-150;<br>
&nbsp;&nbsp;&nbsp; upperLimit=150;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %Maximum slope over an epoch in uV/epoch<br>
&nbsp;&nbsp;&nbsp; maxSlope=60;<br>
&nbsp;&nbsp;&nbsp; rVal=0.3;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %Reject unlikely epochs, by number of SDs<br>
&nbsp;&nbsp;&nbsp; sdJPSingleChan=4;<br>
&nbsp;&nbsp;&nbsp; sdJPAllChans=4;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %Reject abnormal distributions, by number of SDs<br>
&nbsp;&nbsp;&nbsp; sdKurtSingleChan=4;<br>
&nbsp;&nbsp;&nbsp; sdKurtAllChans=4;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %Reject abnormal spectra<br>
&nbsp;&nbsp;&nbsp; thresholds=[-50 50;-100 25];<br>
&nbsp;&nbsp;&nbsp; frequencies=[0 2;20 40];<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %Do the error detecting.<br>
&nbsp;&nbsp;&nbsp; eegData=pop_eegthresh(eegData,1,1:nElec,lowerLimit,upperLimit,0,epochLength,1,0,0);<br>
&nbsp;&nbsp;&nbsp; eegData=pop_rejtrend(eegData,1,1:nElec,epochTimeFrames,maxSlope,rVal,1,0,0);<br>
&nbsp;&nbsp;&nbsp; eegData=pop_jointprob(eegData,1,1:nElec,sdJPSingleChan,sdJPAllChans,1,0);<br>
&nbsp;&nbsp;&nbsp; eegData=pop_rejkurt(eegData,1,1:nElec,sdKurtSingleChan,sdKurtAllChans,1,0);<br>
%&nbsp;&nbsp;&nbsp;&nbsp; eegData=pop_rejspec( eegData, 1,'elecrange',1:30,'threshold',thresholds,'freqlimits',frequencies,'eegplotcom','','eegplotplotallrej',1,'eegplotreject',0,'specdata',eegData.specdata);<br>
<br>
&nbsp;&nbsp;&nbsp; %Get the format for marking trials in an eegplot<br>
&nbsp;&nbsp;&nbsp; plotRejThr=trial2eegplot(eegData.reject.rejthresh,eegData.reject.rejthreshE,epochTimeFrames,eegData.reject.rejthreshcol);<br>
&nbsp;&nbsp;&nbsp; plotRejTre=trial2eegplot(eegData.reject.rejconst,eegData.reject.rejconstE,epochTimeFrames,eegData.reject.rejconstcol);<br>
&nbsp;&nbsp;&nbsp; plotRejJp =trial2eegplot(eegData.reject.rejjp,eegData.reject.rejjpE,epochTimeFrames,eegData.reject.rejjpcol);<br>
&nbsp;&nbsp;&nbsp; plotRejKur=trial2eegplot(eegData.reject.rejkurt,eegData.reject.rejkurtE,epochTimeFrames,eegData.reject.rejkurtcol);<br>
%&nbsp;&nbsp;&nbsp;&nbsp; rejSpe=trial2eegplot(eegData.reject.rejfreq,eegData.reject.rejfreqE,epochTimeFrames,eegData.reject.rejfreqcol);<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %Put the reject candidates in one array.<br>
&nbsp;&nbsp;&nbsp; rejE=[plotRejThr;plotRejTre;plotRejJp;plotRejKur];%;rejSpe];<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; %command string for reject marked trials... all marked epochs...<br>
&nbsp;&nbsp;&nbsp; %from http://sccn.ucsd.edu/pipermail/eeglablist/2011/004085.html<br>
&nbsp;&nbsp;&nbsp; cmd = [ ...<br>
&nbsp;&nbsp;&nbsp; '[tmprej tmprejE] = eegplot2trial( TMPREJ,EEG.pnts,EEG.trials);' ...<br>
&nbsp;&nbsp;&nbsp; '[EEGTMP LASTCOM] = pop_rejepoch(EEG, tmprej, 1);' ...<br>
&nbsp;&nbsp;&nbsp; 'if ~isempty(LASTCOM),'...<br>
&nbsp;&nbsp;&nbsp; ' [ALLEEG EEG CURRENTSET tmpcom] = pop_newset(ALLEEG, EEGTMP, CURRENTSET);' ...<br>
&nbsp;&nbsp;&nbsp; ' if ~isempty(tmpcom),' ...<br>
&nbsp;&nbsp;&nbsp; '&nbsp; EEG = eegh(LASTCOM, EEG);' ...<br>
&nbsp;&nbsp;&nbsp; '&nbsp; eegh(tmpcom);' ...<br>
&nbsp;&nbsp;&nbsp; '&nbsp; eeglab(''redraw'');' ...<br>
&nbsp;&nbsp;&nbsp; ' end;' ...<br>
&nbsp;&nbsp;&nbsp; 'end;' ...<br>
&nbsp;&nbsp;&nbsp; 'clear EEGTMP tmpcom;' ...<br>
&nbsp;&nbsp;&nbsp; ] ;<br>
<br>
&nbsp;&nbsp;&nbsp; %Draw the data.<br>
&nbsp;&nbsp;&nbsp; eegplot(eegData.data,...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'eloc_file',locFile,...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'srate',sampleRate,...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'events',events,...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'winrej',rejE,...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'command',cmd,...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'butlabel','Reject');<br>
<br>
<br>
end</font><br>
<br>
</div>
</body>
</html>