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

Update NixRawIO to strictly follow RawIO data structure #1250

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

JuliaSprenger
Copy link
Member

@JuliaSprenger JuliaSprenger commented Apr 4, 2023

This PR rewrites the IO to read only data that follow the RawIO restrictions. For loading old data autogenerate_* keywords were introduced to permit loading data, but ignoring inconsistent channel / unit names. Since there is no structural relation between blocks in nix, it is only possible to load a single block at time. The substructure of that block has to follow the rawio constraints.

This PR is requires test files added in https://gin.g-node.org/NeuralEnsemble/ephy_testing_data/pulls/100 .

@JuliaSprenger JuliaSprenger added this to the 0.13.0 milestone Apr 4, 2023
For the NixRawIO this implies
- loading of a single block only (as in nix there is no reason to assume consistent channel/stream structure across blocks)
- introducing checks for channel & id consistencies across segments
- introducing `autogenerate_*` keyword argument for ignoring non-rawio compatible channel names and unit ids in nix files
- add static `get_block_count` method to permit scanning of nix file for number of blocks
- the `block_index` argument is now already required at IO initialization
@JuliaSprenger
Copy link
Member Author

@Kleinjohann Can you test this implementation with some of your nix files?

@JuliaSprenger JuliaSprenger marked this pull request as ready for review April 11, 2023 14:25
@JuliaSprenger
Copy link
Member Author

With https://gin.g-node.org/NeuralEnsemble/ephy_testing_data/pulls/100 merged, tests are passing now.

@Kleinjohann
Copy link
Contributor

@Kleinjohann Can you test this implementation with some of your nix files?

Hi! Thanks for the work!
I tested it with our files and it works. Initialising the IO and lazy-loading a block takes quite long, but everything seems to work.

@JuliaSprenger
Copy link
Member Author

Todos:

  • Improve parse_header runtime

@apdavison
Copy link
Member

@JuliaSprenger do you want to implement your "todo" item, or shall we merge now and fix that later?

@apdavison apdavison modified the milestones: 0.13.0, 0.14.0 Jan 26, 2024
@apdavison apdavison self-requested a review July 26, 2024 13:55
@zm711 zm711 modified the milestones: 0.14.0, future Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants