Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Variance channel rejection docu/implementation differences #66

Closed
robintibor opened this issue Jun 5, 2015 · 1 comment
Closed

Variance channel rejection docu/implementation differences #66

robintibor opened this issue Jun 5, 2015 · 1 comment
Assignees
Labels

Comments

@robintibor
Copy link

Hi,
in https://github.com/bbci/bbci_public/blob/45cd9349dc60cb317e260b10d46de20bf9075afa/processing/utils/reject_varEventsAndChannels.m
the documentation doesn't seem to completely match what is happening I think(?)

From reading the code I thought the cleaning process is:

  1. (Bandpass)
  2. Epoch markers
  3. Compute Variances
  4. (Remove channels with too small variance)
  5. Remove extreme outlier trials
  6. (Remove channels with too high variance)
  7. Main part, first always remove channels, then trials with too high variance (optionally multipass)
  8. (Remove trials by relative variance (variance - mean variance across channels))
  9. (Remove channels with highly varying (from trial to trial) variance)

In the documentation there is a point 6 before the main part which does not seem to exist?(https://bitbucket.org/robintibor/machine-learning-for-motor-imagery/src/d05718f585943691a8475bc315fe40cf85206d37/matlab/gold-standard/epo_reject_varEventsAndChannels.m?at=master#cl-37):

% (6) remove trails with a var > threshold, while (for opt.Whiskerperc = 10)
%       threshold = percentile(allVar, 90) + opt.Whiskerlength * diff(percentile(allVar, 10), percentile(allVar, 90))      
% (7) combined trials/channels rejection, optionally as multi-pass

Also, is it intended that there is an option RemoveChannelsFirst and in the main loop channels are also always cleaned first?

Also, in the checks

 if sum(isout(:))>0.05*nEvents,

nEvents is always the original number of trials, not the number of "still good" trials.. is this intended? :)

@JohannesHoehne JohannesHoehne self-assigned this Jun 10, 2015
@JohannesHoehne JohannesHoehne changed the title Variance channel rejection docu/implementation differences Variance channel rejection docu/implementation differences [clamined] Jun 10, 2015
@JohannesHoehne JohannesHoehne changed the title Variance channel rejection docu/implementation differences [clamined] Variance channel rejection docu/implementation differences Jun 10, 2015
@BenjaminBlankertz
Copy link
Contributor

There was a bug in the documentation. Points (5) and (6) (referring to the help of the function, not the enumeration in the issue) described the same thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants