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

Integration with SpikeInterface (for spike sorting and file conversion) #413

Open
colehurwitz opened this issue Sep 19, 2019 · 5 comments
Open

Comments

@colehurwitz
Copy link

colehurwitz commented Sep 19, 2019

Hello,

I am a developer on the SpikeInterface project which is a unified framework for spike sorting. I recently met with two developers of NIX and discussed potential synergy between our two projects.

A big part of our project is a standardized file API which allows users to quickly get their data into SpikeInterface for analysis and convert between formats. The spikeextractors module is where we implement all of our file IO.

We would love to have the NIX file format supported in SpikeInterface which would allow NIX users to spike sort their data with a variety of algorithms and also convert other formats into NIX. If you could help us create a RecordingExtractor and/or a SortingExtractor for NIX, that would be a great help. We have some documentation for implementing extractors here:

https://spikeinterface.readthedocs.io/en/latest/contribute.html

Hopefully this is of interest to you as well!

Best,

Cole Hurwitz

@achilleas-k
Copy link
Member

Looked into it a bit today and I want to try and get a quick prototype to get a sense of what's needed. It would be nice if I could have a minimum viable test case to run. Since we're going to support both writing and reading, is copying one of the test cases for the other extractors enough?

Am I right that these smaller, identical-looking tests are the ones for extractors that support both writig and reading and just copying and adapting the types is enough for a consistency test?

@achilleas-k
Copy link
Member

For example

    def test_nixio_extractor(self):
        path1 = self.test_dir + '/raw.nix'
        se.NIXIORecordingExtractor.write_recording(self.RX, path1)
        RX_nixio = se.NIXIORecordingExtractor(path1)
        self._check_recording_return_types(RX_nixio)
        self._check_recordings_equal(self.RX, RX_nixio)

@colehurwitz
Copy link
Author

Yes, this is the minimum required test case and would be a great one to implement. As you mentioned, these tests only work for extractors that can read and write. We are still trying to figure out the best way to test formats that don't have write capabilities.

@colehurwitz
Copy link
Author

This can be done for both a RecordingExtractor and a SortingExtractor if you have a SortingExtractor for Nix as well.

@achilleas-k
Copy link
Member

Great, thanks! I'll start with the RX and see how it goes.

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

No branches or pull requests

2 participants