cpp-lln-lab / CPP_PTB

a set of function to make it easier to create behavioral, EEG, fMRI experiment with psychtoolbox
https://cpp-ptb.readthedocs.io/en/latest/index.html#
MIT License
14 stars 13 forks source link

standardizing data structure of stimuli files #152

Open Remi-Gau opened 3 years ago

Remi-Gau commented 3 years ago

BIDS dataset allow you to ship the stimuli you used for your experiments with your data.

bids-specification.readthedocs.io/en/stable/04-modality-specific-files/05-task-events.html#task-events

Like this.


remi@remi-XPS-15-9570:~/github/BIDS-matlab/tests$ tree -L 2  bids-examples/eeg_rishikesh/

bids-examples/eeg_rishikesh/
├── CHANGES
├── code
│   └── run_mw_experiment6.m    <---- You can also add the code to run your experiment (or put your github repo as datalad subdataset <3
├── dataset_description.json
├── participants.json
├── participants.tsv
├── README
├── stimuli
│   ├── cancel.wav
│   ├── depth.wav
│   ├── expe_over.wav
│   ├── mind_wandering.wav
│   ├── rate_meditation.wav
│   ├── rate_mw.wav
│   ├── rate_tired.wav
│   ├── resumed.wav
│   ├── resumemed.wav
│   ├── resume.wav
│   ├── self.wav
│   ├── starting.wav
│   ├── time.wav
│   └── valence.wav
├── sub-001
│   ├── ses-01
│   └── ses-02
├── sub-002
│   ├── ses-01
│   └── ses-02
...

I am tempted to try to find a way to organize the stimuli folder for CPP_PTB so that when we are done with an experiment we can just drop the stimuli folder into the dataset.

Remi-Gau commented 3 years ago

This just requires a bit of planning because ideally the events.tsv files must contain the reference to the stimuli.

(base) remi@remi-XPS-15-9570:~/github/BIDS-matlab/tests$ tree -L 2  bids-examples/eeg_matchingpennies/bids-examples/eeg_matchingpennies/
├── CHANGES
├── code
│   └── format_v016_to_v020.py
├── dataset_description.json
├── LICENSE
├── participants.json
├── participants.tsv
├── README
├── sourcedata
│   ├── sub-05
│   ├── sub-06
│   ├── sub-07
│   ├── sub-08
│   ├── sub-09
│   ├── sub-10
│   └── sub-11
├── stimuli                        <-------- STIMULI folder
│   ├── left_hand.png
│   └── right_hand.png
├── sub-05
│   └── eeg
....

Under the column stim_file there is the name of the stimulus used.

(base) remi@remi-XPS-15-9570:~/github/BIDS-matlab/tests$ head  bids-examples/eeg_matchingpennies/sub-05/eeg/sub-05_task-matchingpennies_events.tsv 

onset   duration        trial_type      response_time   stim_file       value   sample  stage   trial   bci_prediction  bci_prediction_valid    n_repeated     latency
15.038933333332999      n/a     right   116.666666667   left_hand.png   n/a     n/a     1       1       right   1       2       -4.2
18.038933333333 n/a     right   116.666666667   left_hand.png   n/a     n/a     1       1       right   1       2       -4.2
18.1556 0       right   116.666666667   left_hand.png   2       90778   1       1       right   1       2       -4.2
19.8922 n/a     right   100.0   right_hand.png  n/a     n/a     1       2       left    1       2       -2.4
22.8922 n/a     right   100.0   right_hand.png  n/a     n/a     1       2       left    1       2       -2.4
22.9922 0       right   100.0   right_hand.png  2       114961  1       2       left    1       2       -2.4
24.5304666666667        n/a     left    33.3333333333   right_hand.png  n/a     n/a     1       3       left    1       2       -17.2
27.5304666666667        n/a     left    33.3333333333   right_hand.png  n/a     n/a     1       3       left    1       2       -17.2
27.5638 0       left    33.3333333333   right_hand.png  1       137819  1       3       left    1       2       -17.2
Remi-Gau commented 3 years ago

Why I am raising the issue:

When you get back to some old data and someone asks you for the stimuli you used, they are usually stored in a different location and "organized" in a way that can make it hard to make sure which version of the stimulus was used for which subject, session, version of the experiment.

DoesNotSparkJoy

With Marco with have used different audio stims in our pilot and we will most be using different sounds for different subjects. So it could be nice to have that in a tidier format.