-
Notifications
You must be signed in to change notification settings - Fork 20
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
Add neo objects as data sources #14
base: master
Are you sure you want to change the base?
Conversation
Thanks Julia, great work |
Hi Julia. Thank you for the PR. We should have discussed about the changes before you worked on it. I found an issue about the |
@EtienneCmb No worry, you can first improve |
I guess neo have to be installed also for github action (workflow) |
@EtienneCmb Any progress on the restructuring of the |
I'm currently testing the new implementation on the develop branch. We should take a coffee and discuss about the best way to integrate neo inside Frites. |
1 similar comment
I'm currently testing the new implementation on the develop branch. We should take a coffee and discuss about the best way to integrate neo inside Frites. |
821d392
to
fff7674
Compare
Hi @EtienneCmb I am not sure I understand your concept behind the |
@EtienneCmb Any opinion on this? |
Hi @JuliaSprenger, the |
@EtienneCmb So does it make sense to you to also add Neo support in the sim_mi module or is this rather minimal code for demonstration purposes that should not be cluttered with additional data format cases? |
I would keep it simple, using NumPy. If you want to illustrate the functionalities with Neo, I would just add an example here. For illustrating input types like MNE / NumPy / Xarray, I usually generate random data with NumPy and then convert them to MNE or Xarray for example. Could we do the same with neo? |
Instead of having many : try:
import neo
HAVE_NEO = True
except ModuleNotFoundError:
HAVE_NEO = False Could you make a |
This PR adds functionality to use neo objects as sources of ephys data.
In the current implementation a specific structure of one neo.Block per subject needs to be provided, containing one neo.Segment for each frites epoch and holding exactly one neo.AnalogSignal with the data of that epoch.
Alternative ways of inputting these data would be a continuous AnalogSignal object containing all data of a subject accompanied by a neo.Epoch object that can be used for slicing the data. Currently this preprocessing step is left to the user.
Potentially frites could also make use of more neo features to extract, e.g. rois, but this would require a deeper understanding of the frites data concept on my side. @EtienneCmb If you think this might be interesting we should discuss this in more detail before implementing it.
This PR also introduces extra requirements in the setup to not introduce neo as a hard dependency.