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

Channels Tags in sessionInfo #183

Open
dlevenstein opened this issue Apr 21, 2018 · 24 comments
Open

Channels Tags in sessionInfo #183

dlevenstein opened this issue Apr 21, 2018 · 24 comments
Assignees

Comments

@dlevenstein
Copy link
Collaborator

add option to sessionInfoGUI to add arbitrary "tags" for channels.
For example: ThetaChannel, CTXRepresentativeChannel, etc etc.

Can even have drop-down menu for commonly used tags.

@DavidTingley
Copy link
Collaborator

👍 I would love to formalize this. I 'tag' many different things (ripple chan, ref chan, etc, etc) just adding sessionInfo.* fields but that isn't the long term solution

@brendonw1
Copy link
Collaborator

I’m not sure how to think about session info. Are we turning it into a legitimate metadata structure? Right now it’s a limited metadata structure - is the idea to really change that? Is if the right place to put this stuff. It doesn’t quite strike me as right but maybe I just need to reconceptualize sessioninfo.

@dlevenstein
Copy link
Collaborator Author

dlevenstein commented May 26, 2018 via email

@brendonw1
Copy link
Collaborator

brendonw1 commented May 26, 2018 via email

@brendonw1
Copy link
Collaborator

For, say ripple channel, I'm thinking of making a field in a field inside sessionInfo, like this: sessionInfo.LFPAnalysisChannels.RippleChannel. OK?

@dlevenstein
Copy link
Collaborator Author

How about sessionInfo.ChannelTags.RippleChannel? That way its more general than LFPAnalysis.

I can add an easy way to add/edit ChannelTags in the sessionInfoGUI

@DavidTingley
Copy link
Collaborator

Although, wouldn't we want this metadata stored in the ripples.event file? as it pertains to channels used for that.

I'm wondering how we can keep these things synchronized..

@dlevenstein
Copy link
Collaborator Author

dlevenstein commented Jun 3, 2018

Yes definitely. Channels used for detection should always be stored in the relevant events.mat file or states.mat file or whatever it may be.

Especially since you might have (for some unknown but maybe interesting physiological reason) two different ripple events on two different channels. (Maybe from two different regions? ;))

@brendonw1
Copy link
Collaborator

brendonw1 commented Jun 3, 2018 via email

@DavidTingley
Copy link
Collaborator

@brendonw1, I agree having detectors inherit from sessionInfo is a great idea. We're getting closer and closer to OOP buzcode...

@brendonw1
Copy link
Collaborator

@DavidTingley Good :)
@dlevenstein & @DavidTingley ... "ManuallySelectedChannels"?

@dlevenstein
Copy link
Collaborator Author

I'd prefer it be more general. A box for any channel tags you may have.

for example, badchannels should move to sessionInfo.ChannelTags.badchannels

@brendonw1
Copy link
Collaborator

brendonw1 commented Jun 4, 2018 via email

@dlevenstein
Copy link
Collaborator Author

I dunno, I thought the term tag was pretty standard/general - this is where you store any tags (labels) you want to associate with specific channels. Maybe that didn't get across or isn't how you're thinking about it? Seems like a good general feature to have. I don't really have another term for the same thing. ChannelLabels sounds clunky to me but could work I guess.

https://en.wikipedia.org/wiki/Tag_(metadata)

@brendonw1
Copy link
Collaborator

I worry that it seems like a temporary term. But that might be because I’m old. I also think “coding” seems that way too :)

Basically I’m fine with it if others are fine ... @DavidTingley - does “tag” seem like a solid term to use? If you’re fine I’m fine.

@brendonw1
Copy link
Collaborator

The resounding silence on this issue convinces me that no one else cares and we should just do "channel tags"

@dlevenstein
Copy link
Collaborator Author

dlevenstein commented Jun 7, 2018 via email

@brendonw1
Copy link
Collaborator

???

@dlevenstein
Copy link
Collaborator Author

dlevenstein commented Jun 7, 2018 via email

@brendonw1
Copy link
Collaborator

Ah ;-P
So how do we move forward?

@dlevenstein
Copy link
Collaborator Author

Oh, the crickets didn't look very crickety on here.... I guess github doesn't have good emoji integration.

Here's a possible moving forward plan of attack:

  1. Update SessioninfoGUI to have a ChannelTags section

  2. make a dropdown list of common channel tags, and an option for the user to add their own. users will select or enter a channel tag (i.e. RippleChannel) and list the channels they want associated with that tag. Will be saved as sessionInfo.ChannelTags.RippleChannel

  3. move badchannels to a common ChannelTag

  4. and to avoid issues with backwards compatibility of badchannels, make bz_getSessionInfo move sessionInfo.badchannels to sessionInfo.ChannelTags.badchannels if it finds them there when loading a sessionInfo file

  5. Update existing functions that reference sesionInfo.badchannels to reference sessionInfo.ChannelTags.badchannels

@brendonw1
Copy link
Collaborator

brendonw1 commented Jun 8, 2018 via email

@dlevenstein
Copy link
Collaborator Author

dlevenstein commented Jun 8, 2018 via email

@dlevenstein
Copy link
Collaborator Author

Update on this: I've added the function bz_TagChannel(basePath,channums,tag) (see #294)

The function is an easy way for the user to add "tags" to specific channels in the sessionInfo. It saves any tags in: sessionInfo.channelTags.(tagName)
For example, it's now being used in PickSWTHChannel to save sessionInfo.channelTags.NREMDetectionChan and sessionInfo.channelTags.ThetaChan

I haven't yet integrated into SessionInfoGUI (steps 1-2 above), but would like to do so, and move badchannels and all references to badchannels in the repo over to this form. (i.e. implement 3-5 above). Does anyone have a problem with this, or thoughts to improve documentation/implementation?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants