-
Notifications
You must be signed in to change notification settings - Fork 266
[NeuralynxRawIO] Factor ncs blocks and repackage #905
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
[NeuralynxRawIO] Factor ncs blocks and repackage #905
Conversation
# Conflicts: # neo/rawio/neuralynxrawio.py
Tests for v5.5.1 still failing. # Conflicts: # neo/rawio/neuralynxrawio.py
# Conflicts: # neo/rawio/neuralynxrawio.py
# Conflicts: # neo/rawio/neuralynxrawio.py
…ssignement. Using a tolerance over a longer experiment is not sensitive enough to detect blocks where perhaps a large amount of samples are dropped and there is a small gap afterwards.
# Conflicts: # neo/test/rawiotest/test_neuralynxrawio.py
# Conflicts: # neo/rawio/neuralynxrawio.py
# Conflicts: # neo/test/rawiotest/test_neuralynxrawio.py
Tests for v5.5.1 still failing.
|
About the submodules for neuralynx I would have the reflex to keep single file but if it is becoming too big to be easy to read the subfolder is ok. |
|
Hi @JuliaSprenger. I resisted breaking up the file for some time, but it had become about 1500 lines long and rather awkward to use, so I followed the suggestion in the Google NeuralEnsemble group to do so. The reasons for this are that the code to handle both the variations in treatment of the sampling frequency by Neuralynx over the years and the variations in the style of the headers used (which is technically free form text per the Neuralynx docs) by both Neuralynx and other producers of these files, such as Pegasus and my lab, is more complicated than what was in the original set of test files used during development. Handling the case of "gaps" and how this will result in additional segments, or not, in future modifications will also require more complicated algorithms. I think breaking this up is, as @samuelgarcia notes, easier to read, particularly for those who want to understand how this is working and/or adapt it to other uses. At the same this preserves the ability for a typical user to simply use a NeuralynxRawIO object as usual. |
# Conflicts: # neo/rawio/neuralynxrawio/__init__.py # neo/rawio/neuralynxrawio/ncssections.py # neo/rawio/neuralynxrawio/nlxheader.py
# Conflicts: # neo/test/rawiotest/test_neuralynxrawio.py
These were created by inadvertendly committed the required changes on another branch and needing to cherry-pick off that branch.
Not quite sure how this test was passing in the original pull request. But this skips it for now.
|
8 discussion points remaining which as far as I am concerned can be closed. Checked in changes to address the other points. All tests non-excluded tests passing on my end. |
|
Appears the circleCI tests timed out after 10 mins. I don't understand that as the neuralynx and nixio tests run fine now on my machine and the test which it is complaining about timing out at the end run in about 7 seconds. |
Attempt to see what is happening with CircleCI testing.
|
Hi Peter and Julia. |
|
I would be reluctant to merge this without figuring out why this is failing in Circle, but not on other machines. A lot of changes in this one and it is stalling on the Neuralynx io. Can others please pull this and check it out and see if all the tests run on their machine? |
|
I have push the button "rerun test" and now it pass tests. |
|
The neuralynx io pass test on my desktop. |
|
oups. |
|
After some travis issues, tests are passing now. |
NeuralynxRawIO was reorganized into a multi-file module in a separate directory with NeuralEnsemble#905. This old file is not needed and may be interfering with Sphinx autodoc.
This provides refactoring of parsing contiguous blocks of records in Ncs files and handles earlier Ncs file styles. It moves the helper classes into separate files within a package sub-directory, as the main IO file had become quite large.
This replaces the old pull requests #888, #890, #891 with a single branch of the new 0.9.0 master. Those old pull requests have been deleted.
This likely obviates the need for pull request #881.
It is likely easier to understand this as a new set of files rather than each commit which went into the old pull requests gradually refactoring and moving these items.