Skip to content

ENH: clearer error for mixed 10–20 EEG electrode names#13622

Open
AasmaGupta wants to merge 14 commits intomne-tools:mainfrom
AasmaGupta:fix-duplicate-1020-electrodes
Open

ENH: clearer error for mixed 10–20 EEG electrode names#13622
AasmaGupta wants to merge 14 commits intomne-tools:mainfrom
AasmaGupta:fix-duplicate-1020-electrodes

Conversation

@AasmaGupta
Copy link

Reference issue (if any)

Fixes #13447

What does this implement/fix?

This PR improves the error raised when plotting topomaps with duplicate EEG
electrode positions caused by mixed 10–20 naming conventions
(T3/T4/T5/T6 vs T7/T8/P7/P8).

Instead of a generic "overlapping positions" error, a clearer and more
actionable message is raised that explains the naming conflict and suggests
how to resolve it by dropping one set of channels.

Additional information

A regression test has been added to ensure the clearer error message is raised
when mixed 10–20 electrode naming conventions are present.

@AasmaGupta
Copy link
Author

This PR adds a clearer error message for mixed 10–20 EEG electrode naming
conventions, along with a regression test. Happy to adjust wording or test
placement if needed.

@@ -0,0 +1,3 @@
Improve the error message raised when mixed 10–20 EEG electrode naming
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is mis-named and lacks a :newcontrib: entry, can you look at other examples in that directory? And also you'll need an entry in doc/changes/names.inc

Copy link
Author

@AasmaGupta AasmaGupta Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I looked into it and have made the new entry under :newcontib: and updated the file.


with pytest.raises(
ValueError,
match="10.?20",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why a .? here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’ve updated the error message to be explicit and deterministic and replaced the .? with “mixed 10–20 naming conventions”. I hope that helps!

Copy link
Member

@larsoner larsoner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@britta-wstnr I think you opened the original issue... can you look and see if it does what you had in mind?

with pytest.raises(
ValueError,
match="mixed 10-20 naming conventions",
match=r"mixed 10.?20 naming conventions",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of the regex here? The error message is hard coded, so can we simply just match the beginning of the message, e.g. match="Duplicate EEG electrode positions detected due to mixed 10-20"

Copy link
Author

@AasmaGupta AasmaGupta Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that makes sense. I’ve updated the test to simply match the error message and pushed the change.

Copy link
Author

@AasmaGupta AasmaGupta Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scott-huberty
Just a quick follow-up, I’ve updated the error message and adjusted the test accordingly. Let me know if this looks good or if any further changes are to be made.

Copy link
Contributor

@scott-huberty scott-huberty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the delay @AasmaGupta almost there! Once you integrate the remaining suggestions I think this will be good to merge.

@scott-huberty
Copy link
Contributor

Also @AasmaGupta please create a CircleCI account by signing in via GitHub . After you do this, the build_docs job will run.

AasmaGupta and others added 4 commits February 24, 2026 12:07
Co-authored-by: Eric Larson <larson.eric.d@gmail.com>
Co-authored-by: Scott Huberty <52462026+scott-huberty@users.noreply.github.com>
@AasmaGupta
Copy link
Author

AasmaGupta commented Feb 24, 2026

Hi @scott-huberty, I’ve integrated the remaining suggestions, updated the error message and test accordingly, and set up CircleCI so the docs build now runs.

Please let me know if anything else needs adjustment :)

Comment on lines 203 to 204
match="Duplicate EEG electrode positions detected due to mixed 10-20",
):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @AasmaGupta I think you still need to update this match= so that it reflects the newly revised error message!! e.g. "The following electrodes are aliases for the same physical location"..

Copy link
Author

@AasmaGupta AasmaGupta Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @scott-huberty for pointing that out — I’ve updated the test to match the revised error message. Let me know if anything else needs a fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handling duplicate electrode names in 10–20 system

3 participants