Data, material and additional information for eLife paper:
Ort, Fahrenfort, ten Cate, Eimer, & Olivers (2019). Humans can efficiently look for but not select multiple visual objects. *eLife (8)*, e49130. DOI: https://doi.org/10.7554/eLife.49130
This paper describes a study in which EEG was recorded while participants were performing a visual search task for two target colors. We manipulated the number of targets that participants had to look for, and the number of target colors that were present in a search display.
**Data**
The uploaded dataset consists of raw and processed EEG and behavioral data, both can be found in the folder *data*.
*A) Raw data*
1) **Raw behavioral data** is *csv* format in which every row represents one trial. Data was recorded with OpenSesame, a Python-based experiment builder. The experiment is included in the folder *material*. In addition, we provide a file that explains all relevant variables and what they represent.
2) **Raw EEG data** is in *bdf* format, as is the standard of the *Biosemi* EEG system (Amsterdam, Netherlands). Per participant there is one file containing the entire EEG session. EEG meta data is described in the manuscript and/or included in the file
*B) Processed data*
1) **Processed behavioral data** is a single csv file that contains all participants and which has added variables that were computed offline. The script for doing that is
*behav_preproc.py* in the folder *scripts*.
2) **Preprocessed EEG data** are *set* files (EEGLAB format) that were preprocessed with the script *preproc_multTempSearch.m* in Matlab. Cleaning was done by changing the trigger values of contaminated epochs. These epochs were not actually removed, in order to not meddle with the trial sequence. Additionally, an ICA was run and blink-related components were removed.
**Code**
Due to circumstances, the data were analyzed in Matlab (2019A), Python (2.7), and R. Below we provide the scripts that were used and describe in which way they were used in the general workflow. Note, even though th original analysis was executed in Python 2, the scripts were modified to be compatible with Python 3. In future, please use Python 3 to run the code. The file `elife_env.txt` is a text file that can be used with conda to install the Python environment that should reproduce the result: `conda create --name elife_replication --file elife_env.txt`
*A) General*
To set up the environments necessary to run the scripts, you can set the path, based on the file *pathdf.m* for Matlab, and use *anaconda* to create a Python environment based on the configuration file *environment.yml*.
*B) Behavioral analysis*
The file *behav_prepoc.py* was used to read all csv files, add them to a single data frame, compute some summary statistics on data quality, and write the combined dataframe to file. This script calls a function from *analUtils.py*.
In the next steps, the R script *behav_stats.R* was used to compute the statistics of participants' performance and make Figure 1. This script calls functions from *analUtils.R*. The file *variables.tsv* contains a legend for all relevant variable names.
*C) EEG classification analysis*
EEG data was primarily done with MATLAB. First, the data were preprocessed with *preproc.multTempSearch.m*. Note, this script should not just be run in one go, as there were steps that required manual additions (epoch rejection, specificatio of EOG related ICA components). After that the Python script *eegpreproc_stats.py* was run to compute summary statistics on epoch exclusion.
The cleaned data was then used to run a MVPA analysis based on the toolbox ADAM (Fahrenfort et al, 2018). The script *mvpa_firstlvl.m* was used to train the classifier separately for all individuals. The group statistics were computed with the Python script *class_preproc_and_plot.py*. This script was also used to make Figure 2, except panel 2B. This panel was created with the script *mvpa_group.m*. Similarly the script *n2pc_preproc_and_plot.py* was used to run the N2pc analysis and make Figure 2-supplement 1. To load the settings for this analysis a the configuration file *class_stats_512Hz_30HzLP.json* was loaded.
*D) EEG simulation analysis*
To investigate whether the correlation analysis had enough power, we also ran a simulation. Simulated data was created with the script *simulateEEG.m* and then fed into the first level classifier in script *mvpa_firstlvl_sim.m*. The group statistics and plots were created in a combination of *mvpa_group_simulation.m* (mostly for exporting the data in a useful format), and *simulation_corr_plot.py* to actually produce the stats. The configuration file *sim_plot.json* was used to load settings for that.
**Other material**
Finally, we also provide a list of some information on the participants of this study, the experimental code (that can be run with version [3.2.4](https://github.com/smathot/OpenSesame/releases/tag/release%2F3.2.4) of Opensesame), and two files necessary to get the spatial structure of the EEG electrodes right.
**Disclaimer**
Even though the scripts provided here were tested to some extent, they will not work out of the box. In the best scenario, the folder structure needs to be updated, in the worst scenario, more problems/bugs will arise. I do not take any responsibility if the scripts will not work. However, if you have problems or questions, feel free to contact me, I'll gladly try to assist in making things work.
**Eduard Ort -- eduardxort@gmail.com**