Open EricThomson opened 1 year ago
Another thing to consider (something @gviejo brought to my attention): we are saving both A
(neural components) and b
(low-rank bg components) as rois using the add_roi()
method to the image plane. I'm not familiar with the NWB standard for calcium imaging, but I worry this will be counterintuitive because background components might be confused for neural components. We might consider saving background components as their own special category (this will come up with W
, in the ring model, where they are clearly just different).
@EricThomson thanks for reaching out. Our approach has shifted somewhat from trying to build export into popular tools to encouraging users to use NeuroConv to convert data to NWB. NeuroConv is easier for us to maintain and offers features that it can be difficult for 3rd party software to support, e.g. chunking and compression, flexible metadata, and (soon) saving to different storage backends. I'm not exactly sure how we handle these specific data elements in NeuroConv. @pauladkisson, could you work with @EricThomson to ensure we are integrating the output of CaImAn well into ROI Extractors and NeuroConv?
Thanks for the reply @bendichter that is helpful info. @pauladkisson if you have the bandwidth, maybe we could schedule a chat on zoom at some point? My guess is there are quite a few details to get through.
@EricThomson, sure! Feel free to grab a time on Calendly in the next few weeks.
@EricThomson, let's just try to work through this asynchronously instead. I am happy to help out with any questions you might have just let me know. This will also help me give more thorough responses since I am familiarizing myself with ROIExtractors/Caiman/Suite2p/etc. as well.
I am currently looking into the how background components are represented in ROIExtractors. There isn't really native support for this in NWB (but there may be a good case to add it in as an extension).
We currently have a py module showing how to work with NWB. It would be good to put this in a notebook and explain things a bit more: this is where most of our foot traffic goes. I just made a draft of one that seems to work well.
==== "Side" issue @bendichter I just learned of neuroconv which seems great! (https://github.com/catalystneuro/neuroconv) I'm not sure if there are any additional things we should be thinking about on our end when it comes to interoperability of Caiman and NWB, before I make this notebook.
Also, one worry I have is that our current NWB-functionality may be CNMF-centric: that things might be incomplete when users run CNMFE (e.g., for miniscope data). For instance, it seems to make heavy use of
f
andb
, but these background components aren't typically used for CNMFE (i.e., we don't use the low-rank background model when running CNMFE: in some cases we actually usef
andb
beingNone
as the indicator that CNMFE was run -- the ring modelW
forms the (higher dimensional) background model in the case of CNMFE).Anyway, these are just first impressions, likely to change.