2024-9-24
Assigned default values to pyFR math events when loading instead of NaN.
2024-7-10
Refactoring EEG loading and re-referencing code.
- Improved handling of missing channels. Ensure montage channels exist in the EEG recording to avoid errors.
- Improved handling of duplicate channels.
2024-7-2
- Patch to resolve error introduced by previous patch.
2024-7-2
- Patch to load EEG for pre-RAM sessions without
n_samples
metadata. Toggle off event-epoch EEG boundary checks.
2024-6-21
- Patch to avoid error when loading EEG for sessions with multiple EEG files. Toggle off event-epoch EEG boundary checks.
2024-6-4
pyFR loading:
- Implemented loading of pyFR math events.
- PathFinder now searches multiple files for monpolar montage.
- Try-except to avoid errors from missing fields in localization data.
Loading EEG for event epochs beyond boundaries of EEG recording no longer raises error, instead dropping unloadable epochs with a warning.
2024-4-2
- Added
correct_countdown_lists
method, which applies corrections tolist
field of countdown events for sessions containing unityEPL-FR bug.
2024-3-8
Added event_process.py
, which contains correct_retrieval_offsets
and
sort_eegfiles
methods.
correct_retrieval_offsets
applies corrections toeegoffset
andmstime
fields of retrieval events for sessions containing unityEPL-FR bug.sort_eegfiles
sorts events for sessions with multipleeegfile
values bymstime
, placing the rows (and EEG files) in chronological order.
2024-1-24
- Added system 4 files to PathFinder, including
archived_eeg
which points to replaced elemem eeg - Loading events and EGG will automatically modify
session
field to match 'session' in data index, fixing issues where events dataframe containsoriginal session
value
2023-8-1
- Python 3.11, non-fatal warning for negative eeg offsets, re-enable loading eeg in mne format
2023-5-17
- Added functionality for loading scalp subject info (which is copied to rhino from Django each night)
2022-12-1
- Added recarray backport, added an error message for empty events dataframes, and changed version number in CHANGELOG.txt for 0.10.1
2021-11-4
- Bug fixes
2021-11-4
- to_ptsa now stores events as a pandas MultiIndex, to match updates in PTSA v3.0.0
2018-10-23
- Fixed jacksheet parsing
- Failure to add MNI coordinates to
contacts
orpairs
no longer critical
2018-10-12
- Added
MNICoordinatesReader
to read MNI coordinates files - MNI coordinates now get added to
contacts
andpairs
whenever they aren't already present
2018-10-4
- Added stim_params accessor to unpack the stim_params field
Bug fixes:
- LocationSearch events are 'task_events' by default, similar to PS
- EEGReader now uses the reader's subject, experiment, session when determining full EEG filename whenever possible
2018-08-17
New features:
- Added support for reading MATLAB montage files (#199)
Bug fixes:
- Fixed issue reading certain sources.json files (#195)
- Fixed issue loading partial sessions (#204)
- Fixed issues loading PS4_FR data (#211, #200)
- load_eeg can now load periods entirely preceding an event (#209)
2018-08-08
- Ignore events with negative
eegoffset
values when loading EEG data (#192).
2018-08-07
- Fixed issues loading pyFR data (#180)
- Fixed loading of YC events (#182)
- Fixed loading of jacksheets with tabs instead of spaces (#185)
- Breaking change: removed
to_xyz
methods (#187)
2018-08-03
New features:
- Added initial support for caching some data types (#143)
- Added a new tutorial to the documentation (#151)
Improvements:
- Improved the reading EEG metadata for resumed sessions (#139)
- Taught
CMLReader.load_events
how to handle string arguments in addition to lists (#150) - Ramulator HDF5 reader now handles missing channels without crashing (#158)
- Updated
EEGReader
to userel_start
as the start time given toEEGContainer
(#167) - Allowed the use of
contacts
data for thescheme
keyword argument inCMLReader.load_eeg
(#169) - Made
get_data_index
a static method ofCMLReader
to simplify imports (#170)
Bug fixes:
- Duplicated channels no longer cause issues when loading Ramulator HDF5 files (#142)
- Fixed low-level Ramulator readers to get the most recent timestamped directory (#152)
- Ensured events can be read for PS and TH tasks (#154, #160)
2018-07-23
This is a minor update with the following changes and additions:
- Added shortcuts for common queries with pandas accessors (#133)
- Deferred path finding until necessary (#135)
- Significantly improved read speed for split EEG data (#137)
2018-07-19
- Added support for loading pyFR data (#117)
- Simplified EEG loading by removing the option to load directly via epochs (#125)
- Renamed the class holding results from
CMLReader.load_eeg
toEEGContainer
to avoid confusion with the PTSATimeSeries
class (#126) - Added a new
CMLReader.load_events
classmethod to load events from multiple subjects and/or experiments (#129) - Added support for loading multisession EEG data (#130)
2018-07-17
- Improved conversion of EEG data to PTSA format (#107)
- Fixed loading events for PS2 and PS4 (#110, #112)
- Improved error message when trying to load EEG with an empty events DataFrame (#114)
2018-07-12
New feature:
- Results of
get_data_index
are now cached usingfunctools.lru_cache
(#101).
Bug fix:
- Magic importing of reader classes didn't work if not in a specific working directory (#104). Fixed in PR #105.
2018-07-06
User-facing changes:
- Localization and montage numbers are now converted to integers instead of being strings (#91)
- Fixed loading of montage data for subjects with a montage number other than 0 (#95)
- Added preliminary support for loading ltp data (#97)
Other changes:
- CI testing updated to use an environment variable to specify what Python version to run (#93)
- Test data gets written to a temporary directory instead of polluting the
cmlreaders.test.data
package (#96) - Reader classes are automatically discovered instead of having to specify them
in
cmlreaders/readers/__init__.py
(#99)
2018-06-29
This release fixes several bugs with EEG reading when passing a referencing scheme and improves performance when loading pairs/contacts data. Highlights:
- Adds and improves existing test cases for rereferencing EEG data
- Improved load speed of
pairs.json
/contacts.json
by about 2 orders of magnitude (#89) - Speeds up loading of split EEG data when specifying a referencing scheme by only loading the required data (#85)
2018-06-26
New features:
- Allow globally setting the root directory with an environment variable (#46)
- Added a function to check if EEG data can be rereferenced
- Automatically determine montage and localization numbers when possible (#77)
- Added a
fromfile
method to classes based onBaseCMLReader
to more easily directly load specific data types (#79)
Improvements:
- Added support for reading EEG data from restarted sessions (#68)
- Improved the ergonomics of passing a
scheme
keyword argument to rereference EEG data (#70) - Make channel filtering via the
scheme
keyword argument more explicit (#80)
Bug fixes:
- Handle loading PS4 events (#47)
- Fixed paths with respect to montage/localization confusion (#62)
- Fixed the
CSVReader
to correctly read jacksheets (#65) - Handle gaps in contact numbers when reading EEG data (#63)
2018-06-06
- Implemented custom TimeSeries representation that can be converted to PTSA or MNE format
- Implemented EEG reader with support for loading a full session or event-based subset
- Updated getting started guide and documentation
2018-05-24
- Minor bugfix to allow conda package to build correctly
2018-05-24
- Updated API to use .load() and .get_reader()
- Added Json, Montage, Localization, Event, Classifier, ReportData, and ElectrodeCateogry readers
- Refactored base reader class to use a metaclass for registering new readers
2018-05-15
- Implemented basic Text and CSV readers
- Somewhat stabilized the API/internals
- Improved error message when files are not found
2018-04-26
- Minor API/name changes
- Renamed package for Pep8 compliance
2018-04-20
- Initial alpha release for internal developer use