-
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
[ENH] add screen parameters metadata #1369
Conversation
@mszinte as discussed I am extracting this part of BEP020. |
Codecov ReportBase: 88.65% // Head: 88.65% // No change to project coverage 👍
Additional details and impacted files@@ Coverage Diff @@
## master #1369 +/- ##
=======================================
Coverage 88.65% 88.65%
=======================================
Files 11 11
Lines 1084 1084
=======================================
Hits 961 961
Misses 123 123 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
The requirement level for those metadata is currently recommended. For eyetracking some will have to be required, so this may require overriding the StimulusPresentation:
name: StimulusPresentation
display_name: Stimulus Presentation
description: |
Object containing key-value pairs related to the software used to present
the stimuli during the experiment, specifically:
`"OperatingSystem"`, `"SoftwareName"`, `"SoftwareRRID"`, `"SoftwareVersion"` and
`"Code"`.
See table below for more information.
type: object
recommended_fields:
- OperatingSystem
- ScreenRefreshRate
- SoftwareName
- SoftwareRRID
- SoftwareVersion
- Code
required_fields: # <--------- those fields are required
- ScreenDistance
- ScreenResolution
- ScreenSize
properties:
OperatingSystem:
$ref: objects.metadata.OperatingSystem
ScreenDistance:
$ref: objects.metadata.ScreenDistance
ScreenRefreshRate:
$ref: objects.metadata.ScreenRefreshRate
ScreenResolution:
$ref: objects.metadata.ScreenResolution
ScreenSize:
$ref: objects.metadata.ScreenSize
SoftwareName:
$ref: objects.metadata.SoftwareName
SoftwareRRID:
$ref: objects.metadata.SoftwareRRID
SoftwareVersion:
$ref: objects.metadata.SoftwareVersion
Code:
$ref: objects.metadata.Code Let me know if you anticipate any headaches with 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.
+1 to include this in the experiment metadata
I think we could do either an override or just a separate check for those values. |
The current description is
If you want to make this include hardware and positioning details, then the description will need to be udpated. Alternately you could create a new metadata field like |
I don't understand why/how this would go into |
@CPernet I think that the |
That's what I was getting at ... Just want to avoid the repetition of values in the tsv. Where else could that go? Or do we want a full optional object |
yup as mentioned by @robertoostenveld I meant the events.json. Will add a correction in the top message. Sorry for the confusion. |
Co-authored-by: Stefan Appelhoff <stefan.appelhoff@mailbox.org>
I don't think that's what @robertoostenveld meant -- I guess the verification here is 1 - all columns of the tsv should be described in json but 2 - can json have more elements than tsv |
OK I decided to actually remove from the description the list of fields that this object should include because it felt redundant to list them verbatim and then have a table rendered to list them again. |
Yes they can. Whether to describe the stimuli database used or some of the presentation details: {
"trial_type": {
"LongName": "Emotion image type",
"Description": "Type of emotional face from Karolinska database that is displayed",
"Levels": {
"afraid": "A face showing fear is displayed",
"angry": "A face showing anger is displayed",
"sad": "A face showing sadness is displayed"
}
},
"identifier": {
"LongName": "Unique identifier from Karolinska (KDEF) database",
"Description": "ID from KDEF database used to identify the displayed image"
},
"StimulusPresentation": {
"OperatingSystem": "Linux Ubuntu 18.04.5",
"SoftwareName": "Psychtoolbox",
"SoftwareRRID": "SCR_002881",
"SoftwareVersion": "3.0.14",
"Code": "doi:10.5281/zenodo.3361717"
}
} |
ok good (because of course in tsv that was weird) |
Co-authored-by: Yaroslav Halchenko <debian@onerussian.com>
BTW thank you for "extracting" this as a separate PR. A great example for #371 |
Been more than 5 days. Merging. |
@@ -268,7 +268,11 @@ in the accompanying JSON sidecar as follows (based on the example of the previou | |||
"SoftwareName": "Psychtoolbox", | |||
"SoftwareRRID": "SCR_002881", | |||
"SoftwareVersion": "3.0.14", | |||
"Code": "doi:10.5281/zenodo.3361717" | |||
"Code": "doi:10.5281/zenodo.3361717", | |||
"ScreenDistance": 180, |
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.
@Remi-Gau - even though unit was adjusted to become m
, examples seems were not like here and below!... I will send a PR
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. Thanks for spotting it.
Extracts screen parameters metadata from BEP20 and adds them to
events.tsv
associated metadata to make them usable by other modalities.EDIT
Clarification: those extra metadata are meant to go in the
events.json
Motivation:
The metadata listed below are not eyetracking specific and can in principle be used by any experiment that uses visual stimulation. Those metadata are actually fairly important for anyone who would like to replicate an experiment where visual stimulus relative size matters.