-
Notifications
You must be signed in to change notification settings - Fork 169
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
[SCHEMA] Add TSV column files #827
Changes from 16 commits
84bfd06
066e2a2
10816d7
19901cd
2a48ef6
2451b9a
de00cea
54458cd
b5754e7
42d6e08
034c6a8
b0b2c3f
4988676
26e8ae9
4615684
27168f5
de9511a
59aea34
a1148c0
02568cf
c3f2558
dc227d6
d831c6c
3955ed4
9b4e8b9
0cb74ee
8d39711
e7db250
3218e8e
3918690
552b4ae
84241d4
bd8c933
9161079
a7356eb
fd54609
efa6fa1
0a4880f
48656fc
7ff360a
de5b5f6
ba84f44
4ba9c25
b510b7d
d562986
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -234,6 +234,16 @@ MUST be present **in this specific order**: | |
| low_cutoff | REQUIRED | Frequencies used for the low pass filter applied to the channel in Hz. If no low pass filter was applied, use `n/a`. Note that anti-alias is a low pass filter, specify its frequencies here if applicable. | | ||
| high_cutoff | REQUIRED | Frequencies used for the high pass filter applied to the channel in Hz. If no high pass filter applied, use `n/a`. | | ||
|
||
{{ MACROS___make_columns_table( | ||
{ | ||
"name_channels": "REQUIRED", | ||
"type": "REQUIRED", | ||
"units": "REQUIRED", | ||
"low_cutoff": "REQUIRED", | ||
"high_cutoff": "REQUIRED", | ||
} | ||
) }} | ||
|
||
SHOULD be present: | ||
|
||
| **Column name** | **Requirement level** | **Description** | | ||
|
@@ -246,6 +256,18 @@ SHOULD be present: | |
| status | OPTIONAL | Data quality observed on the channel (good/bad). A channel is considered bad if its data quality is compromised by excessive noise. Description of noise type SHOULD be provided in `[status_description]`. | | ||
| status_description | OPTIONAL | Freeform text description of noise or artifact affecting data quality on the channel. It is meant to explain why the channel was declared bad in `[status]`. | | ||
|
||
{{ MACROS___make_columns_table( | ||
{ | ||
"reference": "OPTIONAL", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this makes references to the EEG section here ... but we are in the iEEG section of the spec - so these references don't make sense here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The definitions for EEG and iEEG are really different, so I decided to split it into two schema objects. I don't love splitting definitions for the same column in the same file across modalities, so if there's any way to write a single definition that works for both that would be awesome. Do you think it's possible? |
||
"group": "OPTIONAL", | ||
"sampling_frequency": "OPTIONAL", | ||
"description": "OPTIONAL", | ||
"notch": "OPTIONAL", | ||
"status": "OPTIONAL", | ||
"status_description": "OPTIONAL", | ||
} | ||
) }} | ||
|
||
**Example** `sub-01_channels.tsv`: | ||
|
||
```Text | ||
|
@@ -343,6 +365,16 @@ MUST be present **in this specific order**: | |
| z | REQUIRED | Z position. If electrodes are in 2D space this should be a column of `n/a` values. | | ||
| size | REQUIRED | Surface area of the electrode, units MUST be in `mm^2`. | | ||
|
||
{{ MACROS___make_columns_table( | ||
{ | ||
"name_electrodes": "REQUIRED", | ||
"x": "REQUIRED", | ||
tsalo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"y": "REQUIRED", | ||
"z": "REQUIRED", | ||
tsalo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"size": "REQUIRED", | ||
} | ||
) }} | ||
|
||
SHOULD be present: | ||
|
||
| **Column name** | **Requirement level** | **Description** | | ||
|
@@ -352,6 +384,15 @@ SHOULD be present: | |
| group | RECOMMENDED | The group that the electrode is a part of. Note that any group specified here should match a group specified in `_channels.tsv`. | | ||
| hemisphere | RECOMMENDED | The hemisphere in which the electrode is placed, one of `['L' or 'R']` (use capital). | | ||
|
||
{{ MACROS___make_columns_table( | ||
{ | ||
"material": "RECOMMENDED", | ||
"manufacturer": "RECOMMENDED", | ||
"group": "RECOMMENDED", | ||
tsalo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"hemisphere": "RECOMMENDED", | ||
} | ||
) }} | ||
|
||
MAY be present: | ||
|
||
| **Column name** | **Requirement level** | **Description** | | ||
|
@@ -360,6 +401,14 @@ MAY be present: | |
| impedance | OPTIONAL | Impedance of the electrode, units MUST be in `kOhm`. | | ||
| dimension | OPTIONAL | Size of the group (grid/strip/probe) that this electrode belongs to. Must be of form `[AxB]` with the smallest dimension first (for example, `[1x8]`). | | ||
|
||
{{ MACROS___make_columns_table( | ||
{ | ||
"type": "OPTIONAL", | ||
"impedance": "OPTIONAL", | ||
"dimension": "OPTIONAL", | ||
} | ||
) }} | ||
|
||
Example: | ||
|
||
```Text | ||
|
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.
probably wrong place to discuss this, but I don't get this (screenshot):
What if we have several samples for one participant?
Then there are two rows referring to
sub-01
, which should not happen according to the description ofparticipant_id
.Maybe I am misunderstanding something.
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.
Hi! I may be able to help here (my apologies if I'm missing some context for this PR).
sample_id
andsamples.tsv
were introduced in PR #812.In
samples.tsv
, the "unique" identifier per row issample_id
.So the descriptions were:
sample_id: MUST consist of sample-<label> values identifying one row for each sample
and
participant_id: MUST consist of sub-<label>
(without mention of one row per participant).The resulting table for participants with more than 1 sample each looks like this:
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.
It seems we're getting
participants.tsv
-specific text insamples.tsv
table, and more generally we're combining the term description and its usage in a specific file.Here I think the correct fix is probably to make
participant_id
say something like "A participant identifier of the formsub-<label>
." and then theparticipants.tsv
macro can add text that says "There MUST be exactly one row for each participant."Edit: I see
participant_id
is not in theparticipants.tsv
macro. Seems fine for now.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 problem should be addressed by 0cb74ee. WDYT?