Skip to content

EEG-1200A V01.00#11431

Closed
jacobshaw42 wants to merge 9 commits intomne-tools:mainfrom
jacobshaw42:nk1200a
Closed

EEG-1200A V01.00#11431
jacobshaw42 wants to merge 9 commits intomne-tools:mainfrom
jacobshaw42:nk1200a

Conversation

@jacobshaw42
Copy link
Copy Markdown

Reference issue

Fixes #9462.

What does this implement/fix?

Adds compatibility for Nihon EEG-1200A V01.00 format. This involves bypassing the set annotations method for only this version.

Additional information

There is also a "sub-log" in the .LOG file. This adds more information to the annotations description and milliseconds to the annotation onsets.

Part of the "sub-log" code was inspired by brainstorm. Due to the differences in the flow of these functions, I did not "copy" or directly translate. However, I am not sure how the licenses play in this case. If this inspiration is not compatible with licenses, please disregard my pull request.

@welcome
Copy link
Copy Markdown

welcome bot commented Jan 25, 2023

Hello! 👋 Thanks for opening your first pull request here! ❤️ We will try to get back to you soon. 🚴🏽‍♂️

@drammock
Copy link
Copy Markdown
Member

marking as draft based on this comment:

I did get some inspiration from the one of the brainstorm MATLAB functions.

@ftadel we need permission to relicense an adaptation of some Brainstorm code (GPL-3 to BST); it's for reading Nihon-Koden files. OK for you?

@drammock drammock marked this pull request as draft January 25, 2023 17:28
@ftadel
Copy link
Copy Markdown

ftadel commented Jan 25, 2023

@ftadel we need permission to relicense an adaptation of some Brainstorm code (GPL-3 to BST); it's for reading Nihon-Koden files. OK for you?

Sure. Please share this collective work as much as possible.

If you are implementing support for files that are currently not supported in Brainstorm (like EEG-1200A V01.00 with multiple data blocks), could you please let me know and share an example file with me? - Thanks

Copy link
Copy Markdown
Member

@drammock drammock left a comment

Choose a reason for hiding this comment

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

here's a first pass review @jacobshaw42. Thanks for implementing this! Ping us when these are addressed and you're ready for another look.

Also can you share a file with this version that we can use for testing? Apologies if you've posted the link elsewhere already and I just missed it.

Ideally we would (also) have a very short (just a few seconds) file to use in I/O unit tests. If there's a way to have it include fewer channels and still be useful for testing, that is also desirable.

Comment on lines +429 to +432
if header['version'] == _valid_headers[-1]:
self._annotations = annotations
else:
self.set_annotations(annotations)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm still a bit wary of this change and would like input from other devs. set_annotations has some sensible sanity/safety checks and I don't like the idea of skipping them; I'd rather figure out why things aren't working and fix them.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

After looking into this more closely. I believe this has to do with the multiple blocks of data. There is only one collected (due to the version), so the rest of the annotations would be seen as out of range for the data found. Skipping this would allow to get the annotations even though we have no data for those annotations.

I am not sure that is helpful to have the annotations without the observations. I will spend sometime trying to get all of those.

@jacobshaw42 jacobshaw42 closed this by deleting the head repository Aug 11, 2023
@proloyd
Copy link
Copy Markdown
Contributor

proloyd commented Feb 28, 2024

@drammock @jacobshaw42 did we discard the plan for supporting 'Nihon Kohden EEG-1200A V01.00'?

@sarvizargar
Copy link
Copy Markdown

Is there going to be a solution for supporting 'Nihon Kohden EEG-1200A V01.00'?

@drammock
Copy link
Copy Markdown
Member

drammock commented Apr 8, 2025

Is there going to be a solution for supporting 'Nihon Kohden EEG-1200A V01.00'?

The contributor who was working on this has deleted their fork of MNE-Python (and so presumably abandoned the effort). Without access to a sample data file (ideally a "normal" one and also a very short one for using in tests), none of our devs can pick up where they left off. So at this point we're waiting on either an example file (and one of our devs to find time), or a different contributor who has an example file and who has time now to get this over the finish line (including some basic tests).

@wxl-001
Copy link
Copy Markdown

wxl-001 commented Sep 8, 2025

Support for 'Nihon Kohden EEG-1200A V01.00' is urgently needed. Though Neuroworkbench can convert to edf type, it is unrealistic to manually convert a large number of eeg files into edf.

@larsoner
Copy link
Copy Markdown
Member

larsoner commented Sep 8, 2025

@wxl-001 do you have (or could you get) some small test files (e.g., 1 sec of data?) for us to test?

@wxl-001
Copy link
Copy Markdown

wxl-001 commented Sep 8, 2025

@wxl-001 do you have (or could you get) some small test files (e.g., 1 sec of data?) for us to test?

I'm very sorry that I don't have the permission to share the data with others. Wish you could solve this problem as soon as possible.

@larsoner
Copy link
Copy Markdown
Member

larsoner commented Sep 8, 2025

Can't work on it without files 😞

@sarvizargar
Copy link
Copy Markdown

Can't work on it without files 😞

Hi @larsoner,
I could provide you the files, will send them to your email: larson.eric.d@gmail.com

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.

cannnot read nihon kohden .EEG file by mne python

8 participants