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

Convert: add BDF support and fix static offset bug #246

Merged
merged 6 commits into from
Sep 19, 2022
Merged

Conversation

tab-cmd
Copy link
Contributor

@tab-cmd tab-cmd commented Sep 12, 2022

Overview

Refactored the convert to edf method. Add convert to bdf method for better export resolution. Ensured the static offset output in the parameters file is accounted for. Add a pre-filter option that will apply the default transform using the filter parameters in the parameters.json stored in the session directory. Ensured the correct annotation channels are used. Upgraded pyedflib to latest version.

Ticket

https://www.pivotaltracker.com/story/show/182395017

Contributions

  • convert.py: Refactored the convert to edf method into reusable parts (pdf_convert). Add convert to bdf method for better export resolution. Ensured the static offset output in the parameters file is accounted for. Update documentation. Calculate the correct annotation channels needed instead of only alerting.
  • demo_convert.py: Added a plot option for file viewing, using -d for the directory arg instead. Added the export to bdf option.
  • test_convert.py: refactored setup needed in the create_bcipy_session_artifacts. Add tests for added methods.

Test

  • make test-all
  • Used demo_convert.py and shared the data with @danielpklee for review. I shared a .edf and .bdf file.

Documentation

  • Are documentation updates required? In-line, README, or documentation? Verify the updates you did here.

Changelog

  • Is the CHANGELOG.md updated with your detailed changes? Yes

pre_filter: bool = False) -> Path:
""" Converts BciPy data to the BDF+ filetype using pyEDFlib.

See https://www.biosemi.com/faq/file_format.html for more detailed information about the BDF specification.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The link should end in .htm. Using .html gives a 404.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I changed it thinking I had copied it wrong 😆

bcipy/helpers/convert.py Outdated Show resolved Hide resolved
bcipy/helpers/convert.py Outdated Show resolved Hide resolved
bcipy/helpers/convert.py Outdated Show resolved Hide resolved
bcipy/helpers/convert.py Outdated Show resolved Hide resolved
@tab-cmd tab-cmd merged commit c1a5d1f into 2.0.0rc2 Sep 19, 2022
@tab-cmd tab-cmd deleted the convert branch September 19, 2022 19:20
@tab-cmd tab-cmd mentioned this pull request Sep 26, 2022
tab-cmd added a commit that referenced this pull request Oct 3, 2022
* add timer to prevent double clicking (#218)

* #181963356 ; added better alerting to inform users when fake data mode is on

* Added changelog entry

* Refactoring to reduce duplication

* #182040775 ; option to summarize session at the end of a copy phrase task

* Update README.md

High level GPT2 documentation added, word level prediction described, contact information added

* Matrix Display Fixes (#221)

* fixes bug with last stimuli lagging in matrix calibration, added entire grid flash before each inquiry

* Address PR comment + cleanup

Co-authored-by: Tab Memmott <[email protected]>

* Refactored session helper to generate spreadsheets without first creating a sqlite database

* ERP plotting improvements and MNE data support (#220)

* #182005453 ; added parameter for signal model path; updated initialization code to use this for typing tasks

* #182406904 ; Fix bug when generating a spreadsheet from active session data

* [Bug fix] Two presses needed to start copy phrase (#225)

* Documentation and formatting

* #182200897 ; check for internet connection and confirm before proceeding with the session

* Added logging for GPU information, if available

* Whitespace fix

* Added changes

* Move session validation to validate module; update internet connectivity test to work with VPN

* #182106570 ; added functionality for configuration channel specifications for a given device.

* Added a test mock to prevent a GUI interaction during testing

* Fix test issue by switching to a different acquisition client for mocking

* use a better default timeout (#228)

* #182776686 ; prevent widgets scrolling on parameters form

* Jitter (#233)

Jitter for calibration + parameter. copy phrase ip

cleanup stimuli tests

* User ID reset bug and cleanup (#235)

User id reset fix

* Add support for Tobii Nano (#234)

* Add support for Tobii Nano

* address PR feedback

* update changelog

* added ssvep to cvep method (#232)

Co-authored-by: Aida Fakhry <[email protected]>
Co-authored-by: Tab Memmott <[email protected]>

* #183037159 ; alert when using battery power

* Better documentation on return values and potential impacts

* VEP Display (#237)

* upgrade psychopy  (#239)

* ERP viz demo fix (#240)

* #175193924 infrastructure for changed parameters ; #183134229 Fixed issue with params_form rounding some float values ; #183133776  allow static offset to be input with more precision

* Remove unneeded parameters  (#241)

* signal model loaded log (#244)

better signal model logging

* Devices config update && BciPy running outside of root (#242)

* Refactor param changes GUI to use a scroll area for displaying a large number of changes

* Refinements; parameters changes start out collapsed if empty; minor refactorings

* #182408060 ; Ensure that spelled text is provided to the language model when using fake data

* Export the device used as a useable config file (#247)

* Convert: add BDF support and fix static offset bug (#246)

* #182031676 ; remove TCP-based acquisition code

* Added PR number to changelog

* Added function type information; better string representations of channel specs and device specs; removed unused code in tests

* Updated max_buffer_len parameter name for lsl_client

* fix rebase issue in parameters module

* Bug fixes: jitter, offline analysis, task complete alerting  (#250)

* Matrix Bug: fix for scp flashing (#252)

* Matrix documentation (#253)

Co-authored-by: lawhead <[email protected]>
Co-authored-by: Shijia Liu <[email protected]>
Co-authored-by: jcgangemi1 <[email protected]>
Co-authored-by: AidaFakhry <[email protected]>
Co-authored-by: Aida Fakhry <[email protected]>
Co-authored-by: Basak Celik <[email protected]>
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.

2 participants