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

[MRG] Added epilepsy example dataset #133

Merged
merged 15 commits into from
Mar 7, 2019
Merged

[MRG] Added epilepsy example dataset #133

merged 15 commits into from
Mar 7, 2019

Conversation

ftadel
Copy link
Contributor

@ftadel ftadel commented Dec 3, 2018

No description provided.

Copy link
Member

@sappelhoff sappelhoff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

There are still some errors to be corrected though (see comments).

regarding the travis error

3: [ERR] The column names of the channels file must begin with ['name', 'type', 'units', 'sampling_frequency', 'low_cutoff', 'high_cutoff', 'notch', 'reference'] (code: 72 - MISSING_TSV_COLUMN_IEEG_CHANNELS)

you can coordinate with Chris H. see: https://github.com/bids-standard/bids-validator/pull/652

Regarding the error

4: [ERR] Empty files not allowed. (code: 99 - EMPTY_FILE)

I have raised this issue here: https://github.com/bids-standard/bids-validator/issues/651#issuecomment-442821513

and it needs to be discussed, cc @chrisfilo

fz EEG uV n/a n/a 512 unknown good
cz EEG uV n/a n/a 512 unknown good
ecg1 ECG uV n/a n/a 512 unknown good
ecg2 ECG uV n/a n/a 512 unknown good
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are missing a column for the last 5 rows, if it's not known, fill it with n/a

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(see also below for similar)

"TaskName": "seizure",
"SamplingFrequency": 512,
"PowerLineFrequency": 50,
"SoftwareFilters", "n/a",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: comma should be a colon

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(see also below for similar)

@ftadel
Copy link
Contributor Author

ftadel commented Dec 3, 2018

Regarding the remaining warnings: should I add participants.json and _channels.json files?
Where can I find templates for these files? I couldn't find info about these in the specs or the article.

Regarding the empty files error: Were not supposed to post only empty data files in theis bids_examples repo?

@sappelhoff
Copy link
Member

Regarding the remaining warnings: should I add participants.json and _channels.json files?
Where can I find templates for these files? I couldn't find info about these in the specs or the article.

Yes, please specify a participants.json which contains a description of all "non-custom keys" that you are using in the corresponding participants.tsv.

The "custom keys" are usually explicitly referred to (and described) in the specification ... such that additional information is not necessary. In your case sex throws an error, because there is no explanation about it in the specification, so you have to provide it. For more information on what's custom, you can see this file: https://github.com/bids-standard/bids-validator/blob/master/bids_validator/tsv/non_custom_columns.json

Regarding channels.json and electrodes.json, ... if you are using only the fields as defined in the specification, then you shouldn't add anything --> you are just getting an error, because the validator lags a bit behind the specification, and we have not yet added the "new custom columns" to the bids-validator. (This is a ToDo for us, cc @choldgraf )

Regarding a "template", please see: https://github.com/bids-standard/bids-examples/blob/bep006_eeg/eeg_matchingpennies/participants.json

@ftadel
Copy link
Contributor Author

ftadel commented Dec 4, 2018

Thanks - Fixed
Is there anything else I should do with this dataset?

So if I understand well, there is no way I can post this iEEG dataset openneuro yet?

Copy link
Member

@sappelhoff sappelhoff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great, thanks! It's looking good now.

RE: openneuro:

  1. you would upload the full data there, so the "Empty File Error" wouldn't be applicable, would it?
  2. I think openneuro accepts bids data as long as it does not throw errors ... the complaint about non-described columns in channels.tv and electrodes.tsv is just a warning (soon to disappear, once the validator catches up) ... so you should be fine uploading to openneuro.

If @choldgraf or @dorahermes agree, I can merge this.

@sappelhoff sappelhoff changed the title Added epilepsy example dataset [MRG] Added epilepsy example dataset Dec 4, 2018
@sappelhoff sappelhoff added the iEEG label Dec 4, 2018
@ftadel
Copy link
Contributor Author

ftadel commented Dec 5, 2018

I think openneuro accepts bids data as long as it does not throw errors ... the complaint about non-described columns in channels.tv and electrodes.tsv is just a warning (soon to disappear, once the validator catches up) ... so you should be fine uploading to openneuro.

No errors because of the empty files or the columns in the .tsv files, but none of the .json ieeg files are accepted by the openneuro validator...

image

@sappelhoff
Copy link
Member

ahhhh, I completely forgot ... openneuro is running bids-validator ... but for now, to validate iEEG data, we need to run bids-validator --bep010.

This will only change once iEEG is merged into the main spec. Actually, we could already make that step with the validator IMHO, what's your take on this @chrisfilo? Would it be okay to remove the optional EEG and iEEG flags of the validator now? Or is that something we should do as the "last step of the merging process"?

@chrisgorgo
Copy link
Contributor

chrisgorgo commented Dec 5, 2018 via email

@sappelhoff
Copy link
Member

I would prefer to wait until it's merged into the spec. Hopefully won't be long now.

Mmh okay fair enough, that puts us into a dilemma situation though: @ftadel's data is part of iEEG bids, which we want to publish before merging ... but in order to publish, it needs to be uploaded (his choice: openneuro), which is only possible once the merge has happened ;-)

Solutions I see:

  • storing the data on another platform ... either temporarily or permanently
  • not sharing the full data (yet) ... but waiting for after the merge --> which might be before the actual print of the iEEG publication, so only the people reading the preprint would be confused that the real example data is not accessible.

@ftadel
Copy link
Contributor Author

ftadel commented Feb 11, 2019

When will this be merged?

@sappelhoff
Copy link
Member

We are waiting for an approving review from @choldgraf or @dorahermes

It seems that in the meantime, adjustments to the validator also made this PR not pass:

Validating dataset ieeg_epilepsy/
	1: [ERR] Invalid JSON file. The file is not formatted according the schema. (code: 55 - JSON_SCHEMA_VALIDATION_ERROR)
		./sub-01/ses-post/ieeg/sub-01_ses-post_coordsystem.json
			Evidence:  should NOT have additional properties
	2: [ERR] Empty files not allowed. (code: 99 - EMPTY_FILE)
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-01_ieeg.eeg
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-01_ieeg.vhdr
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-01_ieeg.vmrk
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-02_ieeg.eeg
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-02_ieeg.vhdr
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-02_ieeg.vmrk
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-03_ieeg.eeg
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-03_ieeg.vhdr
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-03_ieeg.vmrk
	1: [WARN] Tabular file contains custom columns not described in a data dictionary (code: 82 - CUSTOM_COLUMN_WITHOUT_DESCRIPTION)
		./sub-01/ses-post/ieeg/sub-01_ses-post_space-MNI152_electrodes.tsv
			Evidence: Columns: name, x, y, z, size, hemisphere, group, type, manufacturer not defined, please define in: /space-MNI152_electrodes.json, /electrodes.json,/sub-01/sub-01_space-MNI152_electrodes.json,/sub-01/sub-01_electrodes.json,/sub-01/ses-post/sub-01_ses-post_space-MNI152_electrodes.json,/sub-01/ses-post/sub-01_ses-post_electrodes.json,/sub-01/ses-post/ieeg/sub-01_ses-post_space-MNI152_electrodes.json,/sub-01/ses-post/ieeg/sub-01_ses-post_electrodes.json
		./sub-01/ses-post/ieeg/sub-01_ses-post_space-orig_electrodes.tsv
			Evidence: Columns: name, x, y, z, size, hemisphere, group, type, manufacturer not defined, please define in: /space-orig_electrodes.json, /electrodes.json,/sub-01/sub-01_space-orig_electrodes.json,/sub-01/sub-01_electrodes.json,/sub-01/ses-post/sub-01_ses-post_space-orig_electrodes.json,/sub-01/ses-post/sub-01_ses-post_electrodes.json,/sub-01/ses-post/ieeg/sub-01_ses-post_space-orig_electrodes.json,/sub-01/ses-post/ieeg/sub-01_ses-post_electrodes.json
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-01_channels.tsv
			Evidence: Columns: reference, group not defined, please define in: /sub-01/ses-post/ieeg/sub-01_ses-post_channels.json, /sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_channels.json,/sub-01/ses-post/sub-01_ses-post_channels.json,/sub-01/ses-post/sub-01_ses-post_task-seizure_channels.json,/sub-01/sub-01_channels.json,/sub-01/sub-01_task-seizure_channels.json,/channels.json,/task-seizure_channels.json,/sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-01_channels.json
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-02_channels.tsv
			Evidence: Columns: reference, group not defined, please define in: /sub-01/ses-post/ieeg/sub-01_ses-post_channels.json, /sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_channels.json,/sub-01/ses-post/sub-01_ses-post_channels.json,/sub-01/ses-post/sub-01_ses-post_task-seizure_channels.json,/sub-01/sub-01_channels.json,/sub-01/sub-01_task-seizure_channels.json,/channels.json,/task-seizure_channels.json,/sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-02_channels.json
		./sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-03_channels.tsv
			Evidence: Columns: reference, group not defined, please define in: /sub-01/ses-post/ieeg/sub-01_ses-post_channels.json, /sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_channels.json,/sub-01/ses-post/sub-01_ses-post_channels.json,/sub-01/ses-post/sub-01_ses-post_task-seizure_channels.json,/sub-01/sub-01_channels.json,/sub-01/sub-01_task-seizure_channels.json,/channels.json,/task-seizure_channels.json,/sub-01/ses-post/ieeg/sub-01_ses-post_task-seizure_run-03_channels.json
        Summary:                 Available Tasks:        Available Modalities: 
        42 Files, 33.17KB        seizure                 T1w                   
        1 - Subject                                      ieeg                  
        2 - Sessions                                                           
If you have any questions please post on https://neurostars.org/tags/bids

@choldgraf
Copy link
Collaborator

sorry, all of my cycles had gone towards getting the BIDS-iEEG paper submitted. I can try to take a stab at finishing up the validator code. Then we should re-run on this PR and see what modifications need to be made to ensure this dataset passes the validator

@choldgraf
Copy link
Collaborator

Just a note that updates are now merged into the validator, so we should see how it works on this dataset once more. Looking at those errors:

  • The invalid JSON file error should be fixed now
  • The "empty files" errors can be fixed by just writing in some text into those files (e.g. with open('myfile.vhdr', 'w') as ff: ff.write('some random text'). It's a bit hacky but I think it should work
  • The "undocumented columns" warning will be smaller (since we now expect x, y, z, size, etc) though you'll need to provide a JSON file to explain the remaining columns.

@sappelhoff sappelhoff self-requested a review March 1, 2019 07:50
Copy link
Member

@sappelhoff sappelhoff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ftadel - based on the experiences in #138 I am positive that we can finally make your PR work and merge it.

So if you have time to go through the final issues, I'd be happy to help and then merge :-)

@sappelhoff sappelhoff changed the title [MRG] Added epilepsy example dataset [WIP] Added epilepsy example dataset Mar 4, 2019
@sappelhoff sappelhoff self-requested a review March 4, 2019 17:21
@ftadel
Copy link
Contributor Author

ftadel commented Mar 6, 2019

Passed!

@ftadel ftadel mentioned this pull request Mar 6, 2019
@sappelhoff sappelhoff changed the title [WIP] Added epilepsy example dataset [MRG] Added epilepsy example dataset Mar 7, 2019
@sappelhoff sappelhoff merged commit 90a0b7c into bids-standard:bep010_ieeg Mar 7, 2019
@sappelhoff
Copy link
Member

Thanks @ftadel ! :-)

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

Successfully merging this pull request may close these issues.

4 participants