-
Notifications
You must be signed in to change notification settings - Fork 16
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 bad times object #224
add bad times object #224
Comments
lol I meant "add" not "ass". What an unfortunate typo. Sorry if I sullied anyone's email inbox! |
How about calling it Is there any additional metadata you want to associate with these times, e.g., descriptions of why these intervals are invalid? |
@oruebel yeah good point. This should include a required |
I am not convinced we want a global 'bad_times' entry (or whatever name) across modalities since this 'bakes in' a particular decision about how to use that information that is better made by the analyst. Instead, I think we should be more descriptive. Create top-level interval series objects called 'ecog_artifacts', or 'camera_occluded', or 'patient_sneezed', or whatever. These names could be standardized for a particular application. Consider the case where some part of your data is bad (e.g. there's an electrode artifact), but you still want to analyze the subject's behavior, as measured by keypresses or video record. In this case, it's not really useful to call it 'Bad_times' |
@tjd2002 I like the idea of allowing more specificity, but I think standardizing across that many different types of exclusion criteria the way you describe would be difficult. What if we had a table with the following fields:
Every bad time interval row is associated with a required |
@bendichter Even if the names aren't standardized, perhaps we could still allow for multiple I don't really like the idea of implementing this as a single list with a per-row free-form comment field. Writing and parsing comment fields seems awkward, and generally I think we anticipate that there would only be a small number of categories of artifact. I suppose I'm proposing a top-level MultiContainerInterface called (Lastly, by 'timeseries', are you proposing a reference to the timeseries that the list of invalid times applies to? If so, I think this gets tricky very fast, and we should avoid it for now). |
I think the idea would be to have a default name of
I think the idea here is to have this as just another
I agree that we generally want to avoid free-form as much as possible. However, here the proposal is to just have
I assume that is the case, but @bendichter can you clarify? For now, my feeling is that it's probably be best to leave this out of the table (but I'm happy to be convinced otherwise). |
Great.
I see @oruebel, sounds good, I'll retract my multi-container suggestion then.
OK. Are TimeIntervals required to be non-overlapping? If so, it would not always be possible to represent multiple types of artifacts in one list (e.g. if an 'ecog artifact' happens during a 'camera occlusion' event.) In my experience it's more useful for analysts if there's a separate table for each type of artifact, but it sounds like @bendichter sees a use case for a global, top-level 'these times are bad' list. As long as it's possible to have multiple instances, then this can be something that just gets worked out by convention. |
I don't think that is something we would enforce here. Generally speaking, I think with what we have discussed so far it would be up to the user to decide whether they want to put all invalid times into one table or have multiple such tables depending on the type. To be more specific, there are to basic ways to deal with categories. Either: 1) you have a column in the table that explicitly describes the category or 2) you have a category for each table that then applies to all elements in that table. The only problem with 2) is that currently this would be implicit in the name of the table, i.e., unless you define an extension or we add an attribute for a category that applies to the table as a whole. |
I mean allowing for a column that for each row indicates what It could be possible to use multiple tables for this. Could you give me an example of where this would be needed? I want to somehow make it machine-readable which time intervals are to be interpreted as artifactual/bad/excluded. If we have a single table we can do that by the name of the table. If we have multiple tables in the same group they will have different names, but we can still mark them as being in this category by putting them in a specific |
Looking at the An alternative approach would also be to simply have a default tag
I think the use case here comes down to the question of which information you want to encode as part of columns of the table vs. general attributes of the table. E.g., instead of having one table for everything your could have a table with invalid times for your EcOG recordings and another table with the invalid times for your eye tracking.
Again, |
OK sounds good. Let's add You are right that the lookup is inverse and it would be great to have a convenience function for it! That would be a good first issue for someone... |
I have previously discussed this with @ajtritt but wanted to get group feedback before implementing.
Several groups I am working with require a standardized way to store time intervals that should be excluded from analysis due to artifacts in the signal. This is commonplace in ECoG, and I believe could be useful in nearly every domain. Andrew and I settled on storing this as a
TimeIntervals
object inside/intervals
. I would like the name of this to be standardized. What should it be? 'bad_times', 'artifacts', or 'exclude_intervals' would be options I am OK with. This data will be set to optional, so the change will be non-schema-breaking.The text was updated successfully, but these errors were encountered: