Open khl02007 opened 1 year ago
I like this idea and think it would improve the experience for the average user who just wants to run code on their data like using a toolbox.
Another disadvantage is that it is more code to document, test, and maintain.
Related: https://github.com/LorenFrankLab/spyglass/issues/518
@CBroz1 this seemed to be related to some of your goals in the long/medium term. Could you comment here?
I think of 3 categories of users...
If my assumptions are correct above, I would start with the goal of making 'everyday use' notebooks for analysis and entry users covering data entry/queries and work backwards to whatever new methods would reduce the complexity of the notebooks as much as possible
I actually think users from categories 2 and 3 would benefit greatly from this. I can't remember an instance when I needed to do joins for my analysis, and I only do queries occasionally. From my perspective the primary benefit to using a relational database backend is provenance rather than the ability to do fancy database operations. Most users just want to run their NWB file through the workflows; queries are only useful if you start doing things like analyzing across multiple NWB files. I agree that for entry users, coding is the primary barrier, but maybe that's precisely why we should try to make the interface easier to pick up (yes I think pythonic = more intuitive = easier). For them, a table is a rather obscure thing to work with.
Is your feature request related to a problem? Please describe. Most users who know python do not know the datajoint-specific syntax required to interact with the pipelines. A more pythonic, object-oriented interface could improve the user experience.
Example Ingesting an NWB file returns a spyglass
session
object:One can access everything about the session (e.g. information in the common table) as attributes of the
session
object. Calling these attributes prints the datajoint table. For example,session.electrode
printsspyglass.common.Electrode & {'nwb_file_name': 'test.nwb'}
.To do analysis, set parameters by calling methods associated with the
session
object:and then run the computation
Later, the user can reinstantiate the session object from the NWB file.
Advantages
Disadvantages