``` .\ │ ├── custom_epitran_files\ # custom mapping files used for the phonological analysis in supp mat │ ├── deu-Latn-nar_custom.csv │ └── deu-Latn-nar_custom.txt | ├── eeg\ # raw EEG in BIDS format will be stored in here │ └── download_raw_eeg.sh # script that uses curl to download the BIDS repository │ ├── env\ # .yml files for the conda environments (files prefixed with -vague give general requirements but are less constrained) │ ├── environment-mne-vague.yml │ ├── environment-mne.yml │ ├── environment-r-vague.yml │ ├── environment-r.yml │ ├── environment-rdms-vague.yml │ └── environment-rdms.yml │ ├── epo\ # preprocessed epoch files from 02_preprocessing.py │ ├── sub-01-epo.fif │ ├── sub-02-epo.fif │ ├── sub-03-epo.fif │ ├── sub-04-epo.fif │ ├── sub-06-epo.fif │ ├── sub-07-epo.fif │ ├── sub-08-epo.fif │ ├── sub-09-epo.fif │ ├── sub-10-epo.fif │ ├── sub-11-epo.fif │ ├── sub-12-epo.fif │ ├── sub-13-epo.fif │ ├── sub-14-epo.fif │ ├── sub-15-epo.fif │ └── sub-16-epo.fif │ ├── estimates\ # .rds files for estimates and posterior samples (draws) saved from Bayesian models │ ├── ANNs_p1_draws.rds │ ├── ANNs_poi_draws.rds │ ├── ANNs_time_resolved.rds │ ├── controls_all_chs_cor_samps_long.rds │ ├── controls_all_chs_timecourse.rds │ ├── controls_cor_samps_long.rds │ ├── controls_timecourse.rds │ ├── jacc_geom_p1_draws.rds │ ├── jacc_geom_poi_draws.rds │ ├── jacc_geom_time_resolved.rds │ ├── ot_geom_p1_draws.rds │ ├── ot_geom_poi_draws.rds │ ├── ot_geom_time_resolved.rds │ ├── planned_timecourse.rds │ ├── prereg_cor_samps_long.rds │ └── sensitivity_lkj_prior.rds │ ├── fig\ # contains all figures │ │ │ ├── ica\ │ │ ├── ica_Hz_100_example.pdf │ │ ├── ica_Hz_40_example.pdf │ │ ├── ica_Hz_example_impact.pdf │ │ ├── ica_N_32_example.pdf │ │ ├── ica_N_64_example.pdf │ │ └── ica_N_example_impact.pdf │ │ │ ├── optimisation_illustration\ │ │ ├── j_example_0.svg │ │ ├── j_example_1.svg │ │ ├── j_example_2.svg │ │ ├── j_example_3.svg │ │ ├── j_example_4.svg │ │ ├── mats_jacc.svg │ │ ├── mats_ot.svg │ │ ├── optimisation_illustration.png │ │ ├── optimisation_illustration.svg │ │ ├── spaces.svg │ │ ├── w_example_0.svg │ │ ├── w_example_1.svg │ │ ├── w_example_2.svg │ │ ├── w_example_3.svg │ │ └── w_example_4.svg │ │ │ ├── pattern_examples\ │ │ ├── a.svg │ │ ├── b.svg │ │ ├── c.svg │ │ ├── colorbar.svg │ │ ├── d.svg │ │ ├── e.svg │ │ ├── f.svg │ │ ├── g.svg │ │ ├── h.svg │ │ ├── i.svg │ │ ├── j.svg │ │ ├── k.svg │ │ ├── l.svg │ │ ├── m.svg │ │ ├── n.svg │ │ ├── o.svg │ │ ├── p.svg │ │ ├── q.svg │ │ ├── r.svg │ │ ├── s.svg │ │ ├── t.svg │ │ ├── u.svg │ │ ├── v.svg │ │ ├── w.svg │ │ ├── x.svg │ │ ├── y.svg │ │ ├── z.svg │ │ ├── ß.svg │ │ ├── ä.svg │ │ ├── ö.svg │ │ └── ü.svg │ │ │ ├── rank_rdm_examples\ │ │ ├── colorbar.svg │ │ ├── rank_rdm_0.svg │ │ ├── rank_rdm_1.svg │ │ ├── rank_rdm_10.svg │ │ ├── rank_rdm_11.svg │ │ ├── rank_rdm_12.svg │ │ ├── rank_rdm_13.svg │ │ ├── rank_rdm_14.svg │ │ ├── rank_rdm_2.svg │ │ ├── rank_rdm_3.svg │ │ ├── rank_rdm_4.svg │ │ ├── rank_rdm_5.svg │ │ ├── rank_rdm_6.svg │ │ ├── rank_rdm_7.svg │ │ ├── rank_rdm_8.svg │ │ └── rank_rdm_9.svg │ │ │ ├── rdm_examples\ │ │ ├── colorbar.svg │ │ ├── rdm_0.svg │ │ ├── rdm_1.svg │ │ ├── rdm_10.svg │ │ ├── rdm_11.svg │ │ ├── rdm_12.svg │ │ ├── rdm_13.svg │ │ ├── rdm_14.svg │ │ ├── rdm_2.svg │ │ ├── rdm_3.svg │ │ ├── rdm_4.svg │ │ ├── rdm_5.svg │ │ ├── rdm_6.svg │ │ ├── rdm_7.svg │ │ ├── rdm_8.svg │ │ └── rdm_9.svg │ │ │ ├── ANN_joined.pdf │ ├── ANN_joined.png │ ├── ERP.svg │ ├── RDM_illustration.pdf │ ├── RDM_illustration.svg │ ├── avg_neural_rdm.png │ ├── channels.pdf │ ├── controls.pdf │ ├── controls.png │ ├── illustrate_controls.pdf │ ├── illustrate_controls.png │ ├── intro_jaccard_examples.pdf │ ├── intro_jaccard_examples.png │ ├── intro_jaccard_examples.svg │ ├── intro_ot_examples.pdf │ ├── intro_ot_examples.png │ ├── intro_stim_rdms.pdf │ ├── intro_stim_rdms.png │ ├── intro_stim_rdms.svg │ ├── intro_stim_rdms_plus_ot_illustration.pdf │ ├── intro_stim_rdms_plus_ot_illustration.svg │ ├── intro_stim_rdms_rank_only.pdf │ ├── intro_stim_rdms_rank_only.png │ ├── jacc_ot_geom_poi_joined.pdf │ ├── jacc_ot_geom_poi_joined.png │ ├── jacc_ot_geom_poi_p1_joined.pdf │ ├── jacc_ot_geom_poi_p1_joined.png │ ├── main_analysis.pdf │ ├── main_analysis.svg │ ├── model_rdm_jacc.png │ ├── model_rdm_ot.png │ ├── neural_rdm.png │ ├── posterior_poi_partial.pdf │ ├── posterior_poi_partial.png │ ├── posterior_poi_partial.svg │ ├── sensitivity_analysis.pdf │ ├── sensitivity_analysis.png │ ├── tc_joined_CrI.pdf │ ├── tc_joined_CrI.png │ ├── tc_joined_CrI.svg │ └── tc_joined_CrI_bf.pdf │ ├── fig_code\ # code used to generate figures in the fig/ directory │ ├── 99_estimate_spaces.py │ ├── 99_estimate_spaces_illustrate.py │ ├── 99_estimate_spaces_jaccard.npy │ ├── 99_estimate_spaces_wasserstein.npy │ ├── 99_illustrate_control_rdms.py │ ├── 99_jaccard_distance_figure.py │ ├── 99_make_all_ggplots.R │ ├── 99_optimal_transport_figure.py │ ├── 99_plot_ica_N_change_examples.py │ ├── 99_plot_ica_filter_change_examples.py │ ├── 99_rdms_corr.py │ ├── ggplot2_theme.R │ └── mpl_setup_fonts.py │ ├── noise_ceiling\ # noise ceiling estimates output by 03_get_neural_rdms.py │ ├── noise_ceiling_p1.csv │ ├── noise_ceiling_poi.csv │ ├── noise_ceiling_poi_all_chs.csv │ ├── noise_ceiling_time.csv │ └── noise_ceiling_time_all_chs.csv │ ├── rdm_data\ # per-paricipant neural dissimilarity matrices (RDMs) output by 03_get_neural_rdms.py │ │ │ ├── p1_period\ │ │ ├── sub-01.csv │ │ ├── sub-02.csv │ │ ├── sub-03.csv │ │ ├── sub-04.csv │ │ ├── sub-06.csv │ │ ├── sub-07.csv │ │ ├── sub-08.csv │ │ ├── sub-09.csv │ │ ├── sub-10.csv │ │ ├── sub-11.csv │ │ ├── sub-12.csv │ │ ├── sub-13.csv │ │ ├── sub-14.csv │ │ ├── sub-15.csv │ │ └── sub-16.csv │ │ │ ├── period_of_interest\ │ │ ├── sub-01.csv │ │ ├── sub-02.csv │ │ ├── sub-03.csv │ │ ├── sub-04.csv │ │ ├── sub-06.csv │ │ ├── sub-07.csv │ │ ├── sub-08.csv │ │ ├── sub-09.csv │ │ ├── sub-10.csv │ │ ├── sub-11.csv │ │ ├── sub-12.csv │ │ ├── sub-13.csv │ │ ├── sub-14.csv │ │ ├── sub-15.csv │ │ └── sub-16.csv │ │ │ ├── period_of_interest_all_chs\ │ │ ├── sub-01.csv │ │ ├── sub-02.csv │ │ ├── sub-03.csv │ │ ├── sub-04.csv │ │ ├── sub-06.csv │ │ ├── sub-07.csv │ │ ├── sub-08.csv │ │ ├── sub-09.csv │ │ ├── sub-10.csv │ │ ├── sub-11.csv │ │ ├── sub-12.csv │ │ ├── sub-13.csv │ │ ├── sub-14.csv │ │ ├── sub-15.csv │ │ └── sub-16.csv │ │ │ ├── time_resolved\ │ │ ├── sub-01.csv │ │ ├── sub-02.csv │ │ ├── sub-03.csv │ │ ├── sub-04.csv │ │ ├── sub-06.csv │ │ ├── sub-07.csv │ │ ├── sub-08.csv │ │ ├── sub-09.csv │ │ ├── sub-10.csv │ │ ├── sub-11.csv │ │ ├── sub-12.csv │ │ ├── sub-13.csv │ │ ├── sub-14.csv │ │ ├── sub-15.csv │ │ └── sub-16.csv │ │ │ └── time_resolved_all_chs\ │ ├── sub-01.csv │ ├── sub-02.csv │ ├── sub-03.csv │ ├── sub-04.csv │ ├── sub-06.csv │ ├── sub-07.csv │ ├── sub-08.csv │ ├── sub-09.csv │ ├── sub-10.csv │ ├── sub-11.csv │ ├── sub-12.csv │ ├── sub-13.csv │ ├── sub-14.csv │ ├── sub-15.csv │ └── sub-16.csv │ │ ├── scold\ # custom python functions used to calculate model RDMs │ ├── arr_sim.py │ ├── bubbles.py │ ├── draw.py │ ├── phase.py │ ├── rumelhart.py │ ├── string_sim.py │ ├── text_arr_sim.py │ ├── text_arr_sim_wasserstein.py │ └── utils.py │ ├── stim_sim\ # model RDMs output by 00_get_orth_model_rdms.py and 01_get_corpus_model_rdms.py │ │ │ ├── ANNs\ │ │ │ │ │ ├── cornet-z_imagenet\ │ │ │ ├── IT.csv │ │ │ ├── IT.npy │ │ │ ├── V1.csv │ │ │ ├── V1.npy │ │ │ ├── V2.csv │ │ │ ├── V2.npy │ │ │ ├── V4.csv │ │ │ └── V4.npy │ │ │ │ │ ├── cornet-z_imagenet_letters\ │ │ │ ├── IT.csv │ │ │ ├── IT.npy │ │ │ ├── V1.csv │ │ │ ├── V1.npy │ │ │ ├── V2.csv │ │ │ ├── V2.npy │ │ │ ├── V4.csv │ │ │ └── V4.npy │ │ │ │ │ ├── cornet-z_letters\ │ │ │ ├── IT.csv │ │ │ ├── IT.npy │ │ │ ├── V1.csv │ │ │ ├── V1.npy │ │ │ ├── V2.csv │ │ │ ├── V2.npy │ │ │ ├── V4.csv │ │ │ └── V4.npy │ │ │ │ │ ├── resnet50_imagenet\ │ │ │ ├── layer1.0.csv │ │ │ ├── layer1.0.npy │ │ │ ├── layer1.1.csv │ │ │ ├── layer1.1.npy │ │ │ ├── layer1.2.csv │ │ │ ├── layer1.2.npy │ │ │ ├── layer2.0.csv │ │ │ ├── layer2.0.npy │ │ │ ├── layer2.1.csv │ │ │ ├── layer2.1.npy │ │ │ ├── layer2.2.csv │ │ │ ├── layer2.2.npy │ │ │ ├── layer2.3.csv │ │ │ ├── layer2.3.npy │ │ │ ├── layer3.0.csv │ │ │ ├── layer3.0.npy │ │ │ ├── layer3.1.csv │ │ │ ├── layer3.1.npy │ │ │ ├── layer3.2.csv │ │ │ ├── layer3.2.npy │ │ │ ├── layer3.3.csv │ │ │ ├── layer3.3.npy │ │ │ ├── layer3.4.csv │ │ │ ├── layer3.4.npy │ │ │ ├── layer3.5.csv │ │ │ ├── layer3.5.npy │ │ │ ├── layer4.0.csv │ │ │ ├── layer4.0.npy │ │ │ ├── layer4.1.csv │ │ │ ├── layer4.1.npy │ │ │ ├── layer4.2.csv │ │ │ └── layer4.2.npy │ │ │ │ │ ├── resnet50_imagenet_letters\ │ │ │ ├── layer1.0.csv │ │ │ ├── layer1.0.npy │ │ │ ├── layer1.1.csv │ │ │ ├── layer1.1.npy │ │ │ ├── layer1.2.csv │ │ │ ├── layer1.2.npy │ │ │ ├── layer2.0.csv │ │ │ ├── layer2.0.npy │ │ │ ├── layer2.1.csv │ │ │ ├── layer2.1.npy │ │ │ ├── layer2.2.csv │ │ │ ├── layer2.2.npy │ │ │ ├── layer2.3.csv │ │ │ ├── layer2.3.npy │ │ │ ├── layer3.0.csv │ │ │ ├── layer3.0.npy │ │ │ ├── layer3.1.csv │ │ │ ├── layer3.1.npy │ │ │ ├── layer3.2.csv │ │ │ ├── layer3.2.npy │ │ │ ├── layer3.3.csv │ │ │ ├── layer3.3.npy │ │ │ ├── layer3.4.csv │ │ │ ├── layer3.4.npy │ │ │ ├── layer3.5.csv │ │ │ ├── layer3.5.npy │ │ │ ├── layer4.0.csv │ │ │ ├── layer4.0.npy │ │ │ ├── layer4.1.csv │ │ │ ├── layer4.1.npy │ │ │ ├── layer4.2.csv │ │ │ └── layer4.2.npy │ │ │ │ │ └── resnet50_letters\ │ │ ├── layer1.0.csv │ │ ├── layer1.0.npy │ │ ├── layer1.1.csv │ │ ├── layer1.1.npy │ │ ├── layer1.2.csv │ │ ├── layer1.2.npy │ │ ├── layer2.0.csv │ │ ├── layer2.0.npy │ │ ├── layer2.1.csv │ │ ├── layer2.1.npy │ │ ├── layer2.2.csv │ │ ├── layer2.2.npy │ │ ├── layer2.3.csv │ │ ├── layer2.3.npy │ │ ├── layer3.0.csv │ │ ├── layer3.0.npy │ │ ├── layer3.1.csv │ │ ├── layer3.1.npy │ │ ├── layer3.2.csv │ │ ├── layer3.2.npy │ │ ├── layer3.3.csv │ │ ├── layer3.3.npy │ │ ├── layer3.4.csv │ │ ├── layer3.4.npy │ │ ├── layer3.5.csv │ │ ├── layer3.5.npy │ │ ├── layer4.0.csv │ │ ├── layer4.0.npy │ │ ├── layer4.1.csv │ │ ├── layer4.1.npy │ │ ├── layer4.2.csv │ │ └── layer4.2.npy │ │ │ │ │ ├── complexity\ │ │ ├── complexity.csv │ │ ├── complexity.npy │ │ └── complexity_features.csv │ │ │ ├── frequency\ │ │ ├── frequency.csv │ │ ├── frequency.npy │ │ └── frequency_features.csv │ │ │ ├── jacc_geom\ │ │ ├── jacc_T0_S0_R0_Flr0_Fud0.csv │ │ ├── jacc_T0_S0_R0_Flr0_Fud0.npy │ │ ├── jacc_T0_S0_R1_Flr0_Fud0.csv │ │ ├── jacc_T0_S0_R1_Flr0_Fud0.npy │ │ ├── jacc_T0_S1_R0_Flr0_Fud0.csv │ │ ├── jacc_T0_S1_R0_Flr0_Fud0.npy │ │ ├── jacc_T0_S1_R1_Flr0_Fud0.csv │ │ ├── jacc_T0_S1_R1_Flr0_Fud0.npy │ │ ├── jacc_T1_S0_R0_Flr0_Fud0.csv │ │ ├── jacc_T1_S0_R0_Flr0_Fud0.npy │ │ ├── jacc_T1_S0_R1_Flr0_Fud0.csv │ │ ├── jacc_T1_S0_R1_Flr0_Fud0.npy │ │ ├── jacc_T1_S1_R0_Flr0_Fud0.csv │ │ ├── jacc_T1_S1_R0_Flr0_Fud0.npy │ │ ├── jacc_T1_S1_R1_Flr0_Fud0.csv │ │ └── jacc_T1_S1_R1_Flr0_Fud0.npy │ │ │ ├── ot_geom\ │ │ ├── ot_T0_S0_R0_Flr0_Fud0.csv │ │ ├── ot_T0_S0_R0_Flr0_Fud0.npy │ │ ├── ot_T0_S0_R1_Flr0_Fud0.csv │ │ ├── ot_T0_S0_R1_Flr0_Fud0.npy │ │ ├── ot_T0_S1_R0_Flr0_Fud0.csv │ │ ├── ot_T0_S1_R0_Flr0_Fud0.npy │ │ ├── ot_T0_S1_R1_Flr0_Fud0.csv │ │ ├── ot_T0_S1_R1_Flr0_Fud0.npy │ │ ├── ot_T1_S0_R0_Flr0_Fud0.csv │ │ ├── ot_T1_S0_R0_Flr0_Fud0.npy │ │ ├── ot_T1_S0_R1_Flr0_Fud0.csv │ │ ├── ot_T1_S0_R1_Flr0_Fud0.npy │ │ ├── ot_T1_S1_R0_Flr0_Fud0.csv │ │ ├── ot_T1_S1_R0_Flr0_Fud0.npy │ │ ├── ot_T1_S1_R1_Flr0_Fud0.csv │ │ ├── ot_T1_S1_R1_Flr0_Fud0.npy │ │ ├── ot_pgw.csv │ │ └── ot_pgw.npy │ │ │ ├── ot_variants\ │ │ ├── ot_sq0_tcrosscor.csv │ │ ├── ot_sq0_tcrosscor.npy │ │ ├── ot_sq0_topt.csv │ │ ├── ot_sq0_topt.npy │ │ ├── ot_sq1_tcrosscor.csv │ │ ├── ot_sq1_tcrosscor.npy │ │ ├── ot_sq1_topt.csv │ │ └── ot_sq1_topt.npy │ │ │ ├── phonology\ │ │ ├── dominant_phonemes.csv │ │ ├── dominant_phonemes.npy │ │ ├── dominant_phonemes_features.csv │ │ ├── letter_names.csv │ │ ├── letter_names.npy │ │ └── letter_names_features.csv │ │ │ └── preregistered\ │ ├── jacc.csv │ ├── jacc.npy │ ├── ot.csv │ └── ot.npy │ │ ├── 00_get_orth_model_rdms.py # get model RDMs related to orthography ├── 01_get_corpus_model_rdms.py # get other model RDMs (including supp mat analysis) ├── 02_preprocessing.py # preprocess and epoch the EEG data ├── 03_get_neural_rdms.py # get neural RDMs from epoched EEG data ├── 04_rsa.R # run the main analysis and ├── 05_ot_geom.R # run the analysis on geometric invariance for Wasserstein distance ├── 06_jacc_geom.R # run the analysis on geometric invariance for Jaccard distance ├── 07_rsa_anns.R # run the analysis on alignment with the artificial neural networks ├── 08_controls_rsa.R # run the analysis with the control RDMs, analysing data from the posterior region of interest ├── 09_controls_rsa_all_chs.R # run the analysis with the control RDMs, analysing data from all channels ├── 10_sensitivity_analysis.R # run the sensitivity analysis # Miscellanious files from here ├── AC-64.bvef # channel locations file ├── Arial-Lgt.ttf ├── Dockerfile # specifies the docker container ├── Helvetica.ttf ├── README.md ├── SUBTLEX-DE_cleaned_with_Google00_frequencies.csv # SUBTLEX-DE word frequencies used in the letter frequency RDM ├── arial.ttf ├── project_tree.md # you are here ├── run.sh # maps scripts to expected environments (designed to run in docker container) └── transcribed_phonological_letter_name_vectors.csv # the custom-transcribed letter name vectors for the phonological letter-name RDM ```