Skip to content

Adding support for Nicolet .e files #1750

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

Open
wants to merge 74 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
939d128
Basic Reader Nicolet e Files
MureziCapaul Aug 2, 2024
fe9eeda
Add Basic Filereader Nicolet e
MureziCapaul Aug 2, 2024
cce4b69
Add Reader for all TS-Info
MureziCapaul Aug 5, 2024
7d7d409
Add functions to go through all e files
MureziCapaul Aug 5, 2024
67a08f9
Add test.py
MureziCapaul Sep 9, 2024
b826a25
Add test.py
MureziCapaul Sep 9, 2024
30393b7
Remove Comments and Reduce Blank Lines
MureziCapaul Sep 13, 2024
c8054b8
Remove unused datareads from _get_tags
MureziCapaul Sep 13, 2024
1e4d69d
Add trailing comma to lists
MureziCapaul Sep 13, 2024
617d373
Fixed dtype FutureWarning from 534
MureziCapaul Sep 13, 2024
e488ebb
Removed Remaining TODOs
MureziCapaul Sep 17, 2024
e233438
Removed name==main
MureziCapaul Sep 17, 2024
74ac595
Add _convert_to_date to dynamic_packets and ts_info
MureziCapaul Sep 18, 2024
2a9aa44
Change get_index_instances for CHANNELGUID
MureziCapaul Sep 18, 2024
353ac4d
Modify _convert_to_date to use seconds
MureziCapaul Sep 18, 2024
466a008
Fix Channelinfo by taking the first channelset
MureziCapaul Oct 25, 2024
da605a2
Fix not all events read error
MureziCapaul Nov 7, 2024
012cd9b
Add loop to fill all unread patient props as None
MureziCapaul Nov 7, 2024
5633167
Remove name main from nicoletio
MureziCapaul Feb 11, 2025
0bd4b99
Revert "Merge branch 'master' into no_events_found_879"
MureziCapaul Feb 11, 2025
691796a
Add try except to catch non-existing instances
MureziCapaul Nov 7, 2024
8da02e3
Reapply "Merge branch 'master' into no_events_found_879"
MureziCapaul Feb 11, 2025
b1f5567
Revert "Reapply "Merge branch 'master' into no_events_found_879""
MureziCapaul Feb 11, 2025
abc5e40
Add helper function ensure that output is always a list
MureziCapaul Feb 11, 2025
a837b64
Remove name = main from nicoletio
MureziCapaul Feb 11, 2025
342bb1e
Make except clause output same format as try output
MureziCapaul Feb 11, 2025
3a7aa98
Add if clause to skip code if no patient info is in file
MureziCapaul Feb 11, 2025
95db7c2
Add if clause to return empty list if read size is 0
MureziCapaul Feb 11, 2025
7fd3951
Add basic tests
MCapaul Feb 11, 2025
11accee
Merge branch 'NeuralEnsemble:master' into master
MureziCapaul Feb 11, 2025
4bead6a
Merge branch 'master' of https://github.com/MureziCapaul/python-neo
MureziCapaul Feb 11, 2025
4c4aae1
Add signal buffer
MureziCapaul Feb 11, 2025
7beccfe
Make signal_buffers empty bc no buffers in nic
MureziCapaul Feb 11, 2025
9d68266
Create diff streams to signal with diff sample size
MureziCapaul Feb 11, 2025
d1703eb
Add support to read in more than 1 signal channel
MureziCapaul Feb 11, 2025
5e159fe
Add full functionality for more than 1 stream input
MureziCapaul Feb 11, 2025
34362d9
Account for UTC+3 timeshift in Nicolet Files
MureziCapaul Feb 14, 2025
b3352d7
Merge branch 'add_timezone_information'
MureziCapaul Feb 14, 2025
b960c23
Allow event id 'Event Comment' to read annotation
MureziCapaul Feb 17, 2025
34bfa8d
Add more events
MureziCapaul Feb 17, 2025
7bfa258
Change filepath for filename
MureziCapaul Feb 17, 2025
94fa062
Add timezone-independent readin of dates
MureziCapaul Feb 20, 2025
c013d73
Add proper test file
MureziCapaul Feb 20, 2025
fd9714e
Merge branch 'io_test'
MureziCapaul Feb 20, 2025
fc018d0
Remove windows path
MureziCapaul Feb 20, 2025
6ad2f49
Add proper file to test_nicoletrawio
MureziCapaul Feb 20, 2025
326cf78
Add function to read buffer information of raw signal
MureziCapaul Apr 3, 2025
32cdbba
Add readin of consecutive segments
MureziCapaul Apr 7, 2025
8551f2d
Merge branch 'master' into implement_buffer_description
MureziCapaul Apr 7, 2025
85b0d29
Add buffer description for EEG signal stream
MureziCapaul May 2, 2025
9329a13
Merge branch 'master' into io_test
MureziCapaul May 2, 2025
194d450
Merge branch 'NeuralEnsemble:master' into master
MureziCapaul Jun 5, 2025
57ca5f5
Merge branch 'master' of https://github.com/MureziCapaul/python-neo
MureziCapaul Jun 5, 2025
164fc66
Add io and rawio to init
MureziCapaul Jul 1, 2025
b6d750e
Change name of test to NicoletRawIO test
MureziCapaul Jul 2, 2025
206fef5
Remove nb_events from __array_annotations__
MureziCapaul Jul 2, 2025
2022cb8
Fix usage of len function on integer
MureziCapaul Jul 2, 2025
87156a5
Fix signal readin for start and stop within the section
MureziCapaul Jul 2, 2025
8da32d9
Fix event counts
MureziCapaul Jul 2, 2025
54e80ce
Remove print of channel name
MureziCapaul Jul 2, 2025
74caeba
Add handling of slice(None)
MureziCapaul Jul 2, 2025
bc60f94
Add buffer with id 0
MureziCapaul Jul 2, 2025
eec6908
Always use create_signal_channels based on TS
MureziCapaul Jul 2, 2025
1b0e3ed
Change Name to TestNicoletIO
MureziCapaul Jul 2, 2025
63a9d34
Add test for every entitiy
MureziCapaul Jul 2, 2025
f079e64
Remove unused imports
MureziCapaul Jul 2, 2025
72aa644
Add basic docstring to every function
MureziCapaul Jul 4, 2025
192c48f
Make function into class methods
MureziCapaul Jul 4, 2025
cd5e3fd
Read all ts properties
MureziCapaul Jul 8, 2025
67b7149
Change create signal channels to use channel_properties as basis and …
MureziCapaul Jul 10, 2025
e84e7df
Merge branch 'NeuralEnsemble:master' into master
MureziCapaul Jul 11, 2025
24e731e
Merge branch 'master' of https://github.com/Swiss-Epilepsy-Center/pyt…
MureziCapaul Jul 11, 2025
e50fb53
Reformatting with black
MureziCapaul Jul 14, 2025
c1c0437
Cleanup unused variables
MureziCapaul Jul 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions neo/io/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
* :attr:`NeuroNexusIO`
* :attr:`NeuroScopeIO`
* :attr:`NeuroshareIO`
* :attr:`NicoletIO`
* :attr:`NixIO`
* :attr:`NWBIO`
* :attr:`OpenEphysIO`
Expand Down Expand Up @@ -204,6 +205,10 @@

.. autoattribute:: extensions

.. autoclass:: neo.io.NicoletIO

.. autoattribute:: extensions

.. autoclass:: neo.io.NixIO

.. autoattribute:: extensions
Expand Down Expand Up @@ -326,6 +331,7 @@
from neo.io.neuroexplorerio import NeuroExplorerIO
from neo.io.neuronexusio import NeuroNexusIO
from neo.io.neuroscopeio import NeuroScopeIO
from neo.io.nicoletio import NicoletIO
from neo.io.nixio import NixIO
from neo.io.nixio_fr import NixIO as NixIOFr
from neo.io.nwbio import NWBIO
Expand Down Expand Up @@ -384,6 +390,7 @@
NeuroNexusIO,
NeuroScopeIO,
NeuroshareIO,
NicoletIO,
NWBIO,
OpenEphysIO,
OpenEphysBinaryIO,
Expand Down
30 changes: 30 additions & 0 deletions neo/io/nicoletio.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""
neo.io has been split into a 2-level API:
* neo.io: this API gives Neo objects
* neo.rawio: this API gives raw data as they are in files.

Developers are encourage to use neo.rawio.

When this is done the neo.io can be implemented trivially
using code like shown in this file.

Author: sgarcia

"""

from neo.io.basefromrawio import BaseFromRaw
from neo.rawio.nicoletrawio import NicoletRawIO


class NicoletIO(NicoletRawIO, BaseFromRaw):
name = "NicoleIO"
description = "Class for reading/writing Nicolet files (.e)"

# This is an inportant choice when there are several channels.
# 'split-all' : 1 AnalogSignal each 1 channel
# 'group-by-same-units' : one 2D AnalogSignal for each group of channel with same units
_prefered_signal_group_mode = "group-by-same-units"

def __init__(self, filename=""):
NicoletRawIO.__init__(self, filename=filename)
BaseFromRaw.__init__(self, filename)
7 changes: 7 additions & 0 deletions neo/rawio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
* :attr:`NeuroExplorerRawIO`
* :attr:`NeuroNexusRawIO`
* :attr:`NeuroScopeRawIO`
* :attr:`NicoletRawIO`
* :attr:`NIXRawIO`
* :attr:`OpenEphysRawIO`
* :attr:`OpenEphysBinaryRawIO`
Expand Down Expand Up @@ -123,6 +124,10 @@

.. autoattribute:: extensions

.. autoclass:: neo.rawio.NicoletRawIO

.. autoattribute:: extensions

.. autoclass:: neo.rawio.NIXRawIO

.. autoattribute:: extensions
Expand Down Expand Up @@ -204,6 +209,7 @@
from neo.rawio.neuroexplorerrawio import NeuroExplorerRawIO
from neo.rawio.neuronexusrawio import NeuroNexusRawIO
from neo.rawio.neuroscoperawio import NeuroScopeRawIO
from neo.rawio.nicoletrawio import NicoletRawIO
from neo.rawio.nixrawio import NIXRawIO
from neo.rawio.openephysrawio import OpenEphysRawIO
from neo.rawio.openephysbinaryrawio import OpenEphysBinaryRawIO
Expand Down Expand Up @@ -239,6 +245,7 @@
NeuroExplorerRawIO,
NeuroNexusRawIO,
NeuroScopeRawIO,
NicoletRawIO,
NIXRawIO,
OpenEphysRawIO,
OpenEphysBinaryRawIO,
Expand Down
Loading
Loading