-
Couldn't load subscription status.
- Fork 1
fixes to channels.tsv and electrodes.tsv in some datasets? #3
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
Conversation
1704116 to
6b34add
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the only blocking is placement_description. Otherwise, all good
| EMG4 EMG V Flexor digitorum superficialis Locate the midpoint of the inner forearm | ||
| EMG5 EMG V Flexor carpi ulnaris above the wrist on the inner forearm | ||
| EMG6 EMG V Abductor pollicis brevis Over the fleshy area at the base of the thumb | ||
| name type units target_muscle placement_scheme placement_scheme_description |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the spec, this is now placement_description. Should we change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oops, yeah
This makes sense to me.
I think for the case of the wristband, your reasoning would not hold actually 😅. We are using Your point on channels should not have the same names but different groups seems correct, as channels are tied to the data, and you can't have two channels with the same name. |
I think I agree with you from a "what is the reality of the hardware" point of view. So my edit, where I changed But from a general "BIDS dataset" point of view of the TwoWristbands case: either the two bands are recording into the same data file, or 2 different data files. If it's the same file, they MUST have distinct channel names (as they currently do). If it's 2 different data files, the names need not be unique because there would be distinct |
Well, yes, but exactly as you mentioned, if I were the data curator, I would add it, so the reader would understand that from Ch16 onward is another hand.
Yes. Agreed |
6b34add to
aae9d5f
Compare
|
ugh, it looks like you've been pushing fixes to |
aae9d5f to
455a65c
Compare
never mind, I think I sorted it out |
|
OK @neuromechanist I think this is ready for merge |
draft;
needs #2rebased ontoemg_examplesafter #2 was merged@neuromechanist while working on #2 I noticed some odd things about channels.tsv and electrodes.tsv in some datasets. This PR hopefully helps show what I think was odd.
but when you view the files diff you'll need to view only the most recent commit ("fixup channels & electrodes files in TwoWristbands & dataset").Here are the issues I saw and tried to fix here:it's supposed to be allowed for electrode name to be non-unique, as long as the name+group combination is unique. So first off, I changed the electrode names in grid2 to restart numbering at zero (so we can test that the validator handles that case properly).
I also had to rename them in the
signal_electrodecolumn in channels.tsv, which made me realize that thegroupcolumn in the channels file is really meant to mean "group that signal_electrode belongs to" (not "group that this channel belongs to). As far as I can tell, there shouldn't ever be a case where channels have the same name but different groups, right? In other words, we only need agroupcolumn in channels.tsv in cases wheresignal_electrodeis also specified.If you agree, I'll make a slight tweak to the definition of that column in the spec, and change the file rule so that only
name(notname+group) must be unique for channels. (for electrodes, the rule should remain as-is).while looking at channels.tsv, I noticed a
placementcolumn that recapitulated the xyz info in electrodes.tsv. I removed that, because it's redundant with the info in electrodes.tsv; putting measured locations in channels.tsv should only be done if electrodes.tsv is absent I think.That last point also made me realize that (a) the correct column name is
placement_scheme, notplacement, and (b)placement_schememust be one of "measured" or "other" (if "other", details go inplacement_scheme_description). So I fixed that issue in the IndependentMod dataset's channels.tsv file (it had the description content in the placement_scheme column) and updated its main emg.json correspondingly.Points 1 and 2 above I think also apply to the
concurrentIndependentUnitsdataset, but I haven't changed those here yet; want to hear your thoughts on all the above first.