The role of fear learning in the development of psychosis: an EEG study utilizing a differential fear conditioning paradigm in people with psychotic vulnerability.
The 3 matches
- [1] § Methods and materials › EEG and FPS data acquisition and processing ↔ Codes/LPP/LPP_preprocessing_afterICA.m, lines 201–234 · score 0.69 · channel deviation, variance, rejection, EEGLAB, Preprocessing, amplitude
- [2] § Methods and materials › EEG and FPS data acquisition and processing ↔ Codes/LPP/LPP_preprocessing_untilICA.m, lines 363–406 · score 0.59 · segmented, rejected, Component, EEGLAB, Preprocessing, filtered
- [3] § Methods and materials › Statistical analyses ↔ Codes/Statistics/Statistics_LMER.R, lines 3610–3663 · score 0.52 · Pairwise comparisons, emmeans, linear, models, LPPs
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
MATLAB · 451 lines · 19 KB · no license · 1 match
- %% ANALYSIS SCRIPT - ***EEG*** - PROOF - Classical Paradigm (Real Data) / Metin Ozyagcilar / PREPROCESSING AFTER ICA / NOV 2023
- %% TOOLBOXES / PLUG-INs
- % (1) EEGLAB (v2023.1)
- % Delorme A & Makeig S (2004) EEGLAB: an open-source toolbox for analysis of single-trial EEG dynamics,
- % Journal of Neuroscience Methods 134:9-21
- %%
- clear all; close all; clc;
- %% DEFINE FOLDERS
- % mainpath = 'D:\PROOF';
- %mainpath = 'C:\Users\metin\Desktop\PROOF_EEGSCRFPS_Analysis\AnalysisHome'; % if you work laptop
- % mainpath ='C:\Users\metin\Desktop\PROOF_EEGSCRFPS_Analysis\AnalysisHome'; % if youwork on Uni comp
- mainpath = 'D:\PROOF' % if you work on harddisk
- path_eeglab = [mainpath, '\eeglab2023.1']; % where eeglab is located
- %path_eeglab = [mainpath, '\eeglab2022.0']; % where eeglab is located
- path_rawdata = [mainpath, '\Real\Raw\']; % where raw data is located
- path_preprocessed = [mainpath, '\Real\Preprocessed\']; % where pre-processed data is saved
- path_condspecific = [mainpath, '\Real\Epoched\']; % where pre-processed data is saved
- %% EXTRACT SUBJECT IDs
- % Extract subject IDs (CHECKS ALL OF THE RAW DATA IN THE FOLDER):
- %cd (path_rawdata)
- %sub = dir('*.vhdr');
- %sub = {sub.name}; % subject IDs are stored here
- %for i = 1:length(sub)
- %sub{i} = sub{i}(1:7); % remove .vhdr extension and only keep the subject IDs
- %end
- %clear i;
- % LOAD SUBJECT IDs
- %load([mainpath, '\THESIS\Analysis\files.mat'], 'files');
- % DEFINE SUBJECT IDs MANUALLY
- sub = {'CF_189' 'CF_193'}
- %% TRIGGERS:
- % 20: CS- / 24: CS+ / 21: GS- / 23: GS+ / 22: GSU % keep writing here[1
- %% DEFINE PARAMETERS
- irr_1 = 'SCR'; % irrelevant channel 1
- irr_2 = 'Startle'; % irrelevant channel 2
- irr_3 = 'EKG'; % irrelevant channel 2 % +++ CHECK THAT AGAIN +++
- irr_4 = 'IO2' % irrelevant channel 3
- highpass = .01; % cut-off for the first high-pass filter
- highpass_ica = 1; % cut-off for the high-pass filter to be applied for ICA preparetaion
- lowpass = 30; % cut-off for the low-pass filter
- %notch_1 = 45; % first cut-off for the notch filter
- %notch_2 = 55; % second cut-off for the notch filter
- events_phase_wholeacq = {'S 2021' 'S 2022' 'S 2421' 'S 2422'};
- conds_phase_wholeacq = {'ACSMComb', 'ACSPComb'};
- events_phase_wholeext= {'S 2041' 'S 2042' 'S 2043' 'S 2441' 'S 2442' 'S 2443'};
- conds_phase_wholeext= {'ECSMComb', 'ECSPComb'};
- events_phase = {'S 201' 'S 241' 'S 2021' 'S 2421' 'S 2022' 'S 2422' 'S 203' 'S 213' 'S 223' 'S 233' 'S 243' 'S 2041' 'S 2441' 'S 2042' 'S 2442' ...
- 'S 2043' 'S 2443' 'S 205' 'S 245'}; % short version
- conds_phase = {'HCSM','HCSP','ACSMFirst', 'ACSPFirst', 'ACSMSecond', 'ACSPSecond', 'GCSM', 'GGSM', 'GGSU', 'GGSP', 'GCSP', ...
- 'ECSMFirst', 'ECSPFirst', 'ECSMSecond', 'ECSPSecond', 'ECSMThird', 'ECSPThird', 'ROFCSM', 'ROFCS+'}; % short version / G2 = RO
- %TEMP
- %events_phase = {'S 2021' 'S 2421' 'S 2022' 'S 2422' 'S 203' 'S 213' 'S 223' 'S 233' 'S 243' 'S 2041' 'S 2441' 'S 2042' 'S 2442' ...
- % 'S 2043' 'S 2443' 'S 205' 'S 245'}; % short version
- %conds_phase = {'ACSMFirst', 'ACSPFirst', 'ACSMSecond', 'ACSPSecond', 'GCSM', 'GGSM', 'GGSU', 'GGSP', 'GCSP', ...
- % 'ECSMFirst', 'ECSPFirst', 'ECSMSecond', 'ECSPSecond', 'ECSMThird', 'ECSPThird', 'ROFCSM', 'ROFCS+'}; % short version / G2 = RO
- epoch_start = -0.4;
- epoch_end = 2.6;
- base_start = -200;
- nobad = 0;
- %badcompz ={[1,3,'CF_001'], [1,2,'CF_002'],[1,4,'CF_003'], [1,4,'CF_004'], [1,2,5 'CF_006'], [1,7,'CF_0047'], ...
- % [1,2,'CF_009'], [1,5,'CF_013'], [1,5,'CF_015'], [1,2,'CF_016'], [1,2, 3,'CF_020'], [1,3,'CF_021'], [1,4,'CF_022'], ...
- % [1,2,'CF_023'], [1,3,'CF_024'], [1,4,'CF_026'], [1,4,'CF_027_02'], [1,5,'CF_028'], [1,3,'CF_031'], [1,4,'CF_032'], ...
- % [1,3,'CF_033'], [1,4,'CF_034'], [1,8,'CF_035'], [1,5,'CF_036'], [1,3,'CF_038'], [1,2,'CF_039'], [1,6,'CF_41'], ...
- % [2,3,5,'CF_043'], [2,3,'CF_044'], [1,5,'CF_045'], [1,3,'CF_046'], [1,7,'CF_048'], [1,3,'CF_049'], [1,4,'CF_051'], ...
- %[1,2,'CF_052'], [1,3,'CF_054'], [1,3,'CF_055'], [1,3,'CF_056'], [1,2,'CF_057'], [1,3,'CF_058'], ...
- %[1,2,'CF_061'], [1,3,'CF_063'], [1,3 'CF_064'],}; % TEMP for automatic comp rejection in the loop with predefined comp indexes
- %% PREPROCESSING AFTER ICA
- a = 0; % create and index variable here to create seperate datasets on EEGLAB after each step
- for i = 1:length(sub); % loops through subjects
- %% OCULAR CORRECTION (ICA) - REJECT BAD COMPONENTS
- cd(path_eeglab);
- eeglab; % first, re-start the eeglab
- eeglab redraw
- EEG = pop_loadset('filename',[sub{i}, '_icaed', '.set'],'filepath', [path_preprocessed, '\', sub{i}]);
- % pop_topoplot(EEG,0,[1:size(EEG.icawinv,2)],EEG.setname,[9 9] ,0,'electrodes','on'); % plot the components
- pop_selectcomps(EEG, [1:size(EEG.icawinv,2)] ); % plot the components - this one is better because you can also click on them to see the properties
- pop_eegplot(EEG, 0, 1, 1); % ?
- EEG.badcomps = input('Enter bad component indices [] : '); % enter bad component indices (after visually inspecting them on the plot)
- badcomp = EEG.badcomps;
- EEG = pop_subcomp(EEG, badcomp, 0); % bye bye bad components
- %EEG = pop_subcomp(EEG, badcompz{i}, 0); % bye bye bad components % TEMP for automatic comp rejection in the loop with predefined comp indexes
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_icapruned'],'savenew',[path_preprocessed,'\\', ...
- sub{i} '\\', sub{i}, '_icapruned', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next ste
- %for i = 1:length(sub); % loops through subjects % TEMP
- %%
- for r = 1:2 % (first rerefav then rerefmast, with another inner loop starting here)
- cd(path_eeglab);
- eeglab; % first, re-start the eeglab
- eeglab redraw
- a = 0; % re-set the index variable a
- EEG = pop_loadset('filename',[sub{i}, '_icapruned', '.set'],'filepath', [path_preprocessed, '\', sub{i}]);
- % EEG = pop_loadset('filename',[sub{i}, '_50hzremoved', '.set'],'filepath', [path_preprocessed, '\', sub{i}]);
- % TEMP for comparing data with & withouth eyeblinks removed
- if r == 1;
- %% RE-REFERENE (AVERAGE)
- chan_IO_reref_av = find(strcmpi('IO1',{EEG.chanlocs.labels})); % find the channel index of IO1
- EEG = pop_reref( EEG, [],'exclude', chan_IO_reref_av);
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav'],'savenew',[path_preprocessed,'\\', ...
- sub{i} '\\', sub{i}, '_rerefav', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next ste
- end
- if r == 2;
- %% RE-REFERENCE (MASTOIDS)
- chan_IO_reref_mast = find(strcmpi('IO1',{EEG.chanlocs.labels})); % find the channel index of IO1
- chan_mast_1 = find(strcmpi('T9',{EEG.chanlocs.labels})); % find the channel index of the mastoid elec 1
- chan_mast_2 = find(strcmpi('T10',{EEG.chanlocs.labels})); % find the channel index of the mastoid elec 2
- EEG = pop_reref( EEG, [chan_mast_1 chan_mast_2], 'exclude', chan_IO_reref_mast);
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast'],'savenew',[path_preprocessed,'\\', ...
- sub{i} '\\', sub{i}, '_rerefmast', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next ste
- end
- end
- %for i = 1:length(sub); % loops through subjects % TEMP
- %a = 0; %TEMP
- %% CREATE EPOCHS
- for z = 1:2 % load the datasets (load first rerefav then rerefmast and do the rest, with another loop starting here)
- eeglab; % first, re-start the eeglab
- eeglab redraw
- a = 0; % re-set the index variable a
- if z == 1; % for rerefav dataset
- EEG = pop_loadset('filename',[sub{i}, '_rerefav', '.set'],'filepath', [path_preprocessed, '\', sub{i}]); % this may not work check it
- end
- if z == 2; % for rerefmast dataset
- EEG = pop_loadset('filename',[sub{i}, '_rerefmast', '.set'],'filepath', [path_preprocessed, '\', sub{i}]); % this may not work check it
- end
- EEG = pop_epoch(EEG, events_phase, [epoch_start epoch_end], 'newname', [sub{i}, '_epoched'], 'epochinfo', 'yes'); % create epochs
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'gui','off');
- if z == 1;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav', '_epoched'],'savenew',[path_preprocessed,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefav', '_epoched', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- if z == 2;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast', '_epoched'],'savenew',[path_preprocessed,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefmast', '_epoched', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- EEG = eeg_checkset( EEG );
- eeglab redraw;
- %% ARTEFACT REJECTION
- % (Criteria: amplitude, variance and channel deviation larger than 3-z scores)
- % +++ maybe add again a temporary loop here to change stuff post processesing?
- if nobad == 0;
- datachan = [1:size(EEG.data,1)];
- list_props = epoch_properties(EEG,datachan); % determine contaminated epochs
- marked_trials = find(min_z(list_props,prep_rej_opt(list_props,3))); % store indices of contaminated epochs
- bad_trials = zeros(1,EEG.trials);
- bad_trials(marked_trials) = 1; % index to bad trials in the data
- EEG = pop_rejepoch(EEG,bad_trials,0); % bad trials are removed
- eeglab redraw;
- if z == 1;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav', '_badtrialsrejected'],'savenew',[path_preprocessed,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefav', '_badtrialsrejected', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- if z == 2;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast', '_badtrialsrejected'],'savenew',[path_preprocessed,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefmast', '_badtrialsrejected', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- elseif nobad == 1;
- end
- eeglab redraw;
- %% ARTEFACT REJECTION Option 2 EPOCH INT
- % Option A
- % EEG = pop_eegmaxmin(EEG, [],[], 75, [], 1, 0);
- % EEG = pop_TBT(EEG, EEG.reject.rejmaxminE , 10, 0.15, 1); % can I put here the last stuff from below [] EEG.chanlocs? ASK?
- % ~~ %
- % Option B (To add back all channels from the input EEG data-set) IS IT BETTER THAN A? WITH A YOU GET MISSING CHANNELS...:
- % EEG = pop_eegmaxmin(EEG); % Is this then takes the default stuff? Is it the same as above?
- % EEG = pop_eegmaxmin(EEG, [],[], 150, [], 1, 0); %START FROM HERE
- % my_bads = EEG.reject.rejmaxminE;
- % EEG = pop_TBT(EEG,my_bads,10,0.3,[],EEG.chanlocs); % or any other chanloc
- % struct, this is like option 1
- %EEG = pop_TBT(EEG,my_bads,[],0.3,[],EEG.chanlocs); % or any other chanloc struct --> I've put [] instead of 10, now it is doing option 4 (in the notes), I hope??
- %if z == 1;
- %[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav', '_badtrialsrejected'],'savenew',[path_preprocessed,'\\', ...
- %sub{i}, '\\', sub{i}, '_rerefav', '_badtrialsrejected', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- %eeglab redraw;
- %a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- %end
- %if z == 2;
- %[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast', '_badtrialsrejected'],'savenew',[path_preprocessed,'\\', ...
- %sub{i}, '\\', sub{i}, '_rerefmast', '_badtrialsrejected', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- %eeglab redraw;
- %a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- %end
- %eeglab redraw;
- % Option A explaination
- % Epoched data were subjected to an automated bad-channel and artifact detection using EEGPLAB's TBT plugin (Ben-Shachar, 2018): within each
- % epoch, channels that exceeded a differential average amplitude of 75μV were marked for rejection. Channels that were marked as bad
- % on more then 15/% of all epochs were excluded. Epochs having more than 10 bad channels were excluded. Epochs with less
- % than 10 bad channels were included, while replacing the bad-channel data with spherical interpolation of the neighboring channel values.
- %% ARTEFACT REJECTION Option 3 like BVA
- % ?
- %% BASELINE CORRECTION
- EEG = eeg_checkset( EEG );
- EEG = pop_rmbase(EEG, [base_start 0], []); % baseline correction
- if z == 1;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav', '_baselineremoved'],'savenew',[path_preprocessed,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefav', '_baselineremoved', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- if z == 2;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast', '_baselineremoved'],'savenew',[path_preprocessed,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefmast', '_baselineremoved', '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- eeglab redraw;
- %% CREATE SEPERATE DATASETS
- idx = length(ALLEEG);
- e = 1;
- while e <= size(events_phase) % loop through triggers
- for c = 1:size(conds_phase,2) % loop through condition names
- EEG = pop_selectevent(ALLEEG(idx), 'latency','-2<=2','type',{events_phase{e}},...
- 'deleteevents','off','deleteepochs','on','invertepochs','off'); % create a condition specific dataset
- if z == 1;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav', '_', conds_phase{c}],'savenew',[path_condspecific,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefav', '_', conds_phase{c}, '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- if z == 2;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast', '_', conds_phase{c}],'savenew',[path_condspecific,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefmast', '_', conds_phase{c}, '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- EEG = eeg_checkset(EEG);
- [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG);
- e = e+1;
- end
- end
- end
- end
- %% CREATE SEPERATE DATASETS FOR ACQ AS A WHOLE
- for i = 1:length(sub); % loop through all subjects
- for z = 1:2 % load the datasets (load first rerefav then rerefmast and do the rest, with another loop starting here)
- e= 1;
- a = 1;
- cd(path_eeglab);
- eeglab; % first, re-start the eeglab
- eeglab redraw
- if z == 1;
- EEG = pop_loadset('filename',[sub{i}, '_rerefav', '_baselineremoved', '.set'],'filepath', [path_preprocessed, '\', sub{i}]);
- EEG = eeg_checkset(EEG);
- [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG);
- idx = length(ALLEEG);
- end
- if z == 2;
- EEG = pop_loadset('filename',[sub{i}, '_rerefmast', '_baselineremoved', '.set'],'filepath', [path_preprocessed, '\', sub{i}]);
- EEG = eeg_checkset(EEG);
- [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG);
- idx = length(ALLEEG);
- end
- while e <= size(events_phase_wholeacq) % loop through triggers
- for c = 1:size(conds_phase_wholeacq,2) % loop through condition names
- EEG = pop_selectevent(ALLEEG(idx), 'latency','-2<=2','type',{events_phase_wholeacq{e}, events_phase_wholeacq{e+1}},...
- 'deleteevents','off','deleteepochs','on','invertepochs','off'); % create a condition specific dataset
- if z == 1;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav', '_', conds_phase_wholeacq{c}],'savenew',[path_condspecific,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefav', '_', conds_phase_wholeacq{c}, '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- if z == 2;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast', '_', conds_phase_wholeacq{c}],'savenew',[path_condspecific,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefmast', '_', conds_phase_wholeacq{c}, '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- EEG = eeg_checkset(EEG);
- [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG);
- e = e+2;
- end
- end
- end
- end
- eeglab redraw;
- %% CREATE SEPERATE DATASETS FOR EXT AS A WHOLE
- for i = 1:length(sub); % loop through all subjects
- for z = 1:2 % load the datasets (load first rerefav then rerefmast and do the rest, with another loop starting here)
- e= 1;
- a = 1;
- cd(path_eeglab);
- eeglab; % first, re-start the eeglab
- eeglab redraw
- if z == 1;
- EEG = pop_loadset('filename',[sub{i}, '_rerefav', '_baselineremoved', '.set'],'filepath', [path_preprocessed, '\', sub{i}]);
- EEG = eeg_checkset(EEG);
- [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG);
- idx = length(ALLEEG);
- end
- if z == 2;
- EEG = pop_loadset('filename',[sub{i}, '_rerefmast', '_baselineremoved', '.set'],'filepath', [path_preprocessed, '\', sub{i}]);
- EEG = eeg_checkset(EEG);
- [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG);
- idx = length(ALLEEG);
- end
- while e <= size(events_phase_wholeext) % loop through triggers
- for c = 1:size(conds_phase_wholeext,2) % loop through condition names
- EEG = pop_selectevent(ALLEEG(idx), 'latency','-2<=2','type',{events_phase_wholeext{e}, events_phase_wholeext{e+1}, events_phase_wholeext{e+2}},...
- 'deleteevents','off','deleteepochs','on','invertepochs','off'); % create a condition specific dataset
- if z == 1;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefav', '_', conds_phase_wholeext{c}],'savenew',[path_condspecific,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefav', '_', conds_phase_wholeext{c}, '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- if z == 2;
- [ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, a,'setname',[sub{i}, '_rerefmast', '_', conds_phase_wholeext{c}],'savenew',[path_condspecific,'\\', ...
- sub{i}, '\\', sub{i}, '_rerefmast', '_', conds_phase_wholeext{c}, '.set'],'gui','off'); % create a dataset on EEGLAB and assign a name to the data
- eeglab redraw;
- a = a+1; % increase a by 1 so that it creates a different dataset on the next step
- end
- EEG = eeg_checkset(EEG);
- [ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG);
- e = e+3;
- end
- end
- end
- end
- eeglab redraw;
LPP_preprocessing_afterICA.m, no license · at the source
Overview
- Clinical Psychology and Psychotherapy, Institute of Psychology, Faculty of Psychology and Human Movement Science, Universität Hamburg, Hamburg, Germany
- Clinical Psychology and Neuroscience, Institute of Psychology, Faculty of Psychology and Human Movement Science, Universität Hamburg, Hamburg, Germany
- Biological Psychology and Cognitive Neuroscience, Department of Psychology, Universität Bielefeld, Bielefeld, Germany
- Institute of Systems Neuroscience, University Medical Center Hamburg-Eppendorf, Hamburg, Germany
Abstract
By studying how individuals in an “at-risk” state of psychosis learn about threat and safety cues – specifically, how they develop and unlearn fear responses to neutral cues – we might better understand the mechanisms leading to heightened arousal and fear that are characteristic of acute psychotic episodes. At-risk individuals (N = 88; of which 28 fulfilled ultra-high-risk criteria on the Comprehensive Assessment of At-Risk Mental States interview and 60 scored above a predefined threshold on the Community Assessment of Psychic Experiences) and healthy controls (N = 44) underwent a standardized and validated differential fear conditioning paradigm including an acquisition, generalization, and extinction phase. The main outcomes of interest were the late positive potential, fear-potentiated startle, and self-reported ratings of valence, arousal, fear, and expectancy elicited by the conditioned stimuli (CS). The at-risk group exhibited diminished fear learning, evident in significantly reduced differentiation between the CS+ vs. CS- in the valence ratings compared to controls. Additionally, they demonstrated impaired fear extinction, evident in valence and arousal ratings, in which their CS differentiation showed a slower reduction than the controls. There were no group differences in late positive potential responses. At risk mental states appear to be associated with problems in distinguishing dangerous from safe stimuli and a diminished ability to adjust affective responses to conditioned stimuli based on new information, while the late-positive potential and fear-potentiated startle are unaltered. Early interventions could focus on recalibrating subjective emotional evaluations of fear-associated events.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 3 matches between paragraphs and lines of code.
OSF fj9cg
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
- 28 September 2026: the link answers (HTTP 200)
5 files
- Codes/
LPP/ , MATLAB, 245 linesLPP_extractERPs.m - Codes/
LPP/ , MATLAB, 752 linesLPP_plotting_gav.m - Codes/
LPP/ , MATLAB, 451 lines, 1 matchLPP_preprocessing_afterI CA.m - Codes/
LPP/ , MATLAB, 406 lines, 1 matchLPP_preprocessing_untilI CA.m - Codes/
Statistics/ , R, 3,773 lines, 1 matchStatistics_LMER.R
Code availability
Analysis code(s) used in the processing of datasets are available in the OSF repository (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 5 scripts, each with its path and the digest of its content;
- 3 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data availability
The datasets generated during and/
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 5 authors, 2 keywords, 1 funder, 56 references.
Cite
This paper
Özyagcilar, M., Ahrens-Demirdal, N. E., Riesel, A., Lonsdorf, T. B., & Lincoln, T. M. (2026). The role of fear learning in the development of psychosis: an EEG study utilizing a differential fear conditioning paradigm in people with psychotic vulnerability. Schizophrenia (Heidelberg, Germany), 12(1), 45. https://
BibTeX
@article{ozyagcilar2026r
author = {Özyagcilar, Metin and Ahrens-Demirdal, Nilay Esin and Riesel, Anja and Lonsdorf, Tina B and Lincoln, Tania M},
title = {{The role of fear learning in the development of psychosis: an EEG study utilizing a differential fear conditioning paradigm in people with psychotic vulnerability}},
journal = {Schizophrenia (Heidelberg, Germany)},
year = {2026},
month = may,
volume = {12},
number = {1},
pages = {45},
publisher = {Nature Publishing Group},
issn = {2754-6993},
doi = {10.1038/
url = {https://
pmid = {42140955},
pmcid = {PMC13179330}
}
RIS
TY - JOUR
AU - Özyagcilar, Metin
AU - Ahrens-Demirdal, Nilay Esin
AU - Riesel, Anja
AU - Lonsdorf, Tina B
AU - Lincoln, Tania M
TI - The role of fear learning in the development of psychosis: an EEG study utilizing a differential fear conditioning paradigm in people with psychotic vulnerability
T2 - Schizophrenia (Heidelberg, Germany)
J2 - Schizophrenia (Heidelb)
PY - 2026
DA - 2026/
VL - 12
IS - 1
SP - 45
SN - 2754-6993
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "The role of fear learning in the development of psychosis: an EEG study utilizing a differential fear conditioning paradigm in people with psychotic vulnerability",
"container-title": "Schizophrenia (Heidelberg, Germany)",
"author": [
{
"family": "Özyagcilar",
"given": "Metin"
},
{
"family": "Ahrens-Demirdal",
"given": "Nilay Esin"
},
{
"family": "Riesel",
"given": "Anja"
},
{
"family": "Lonsdorf",
"given": "Tina B"
},
{
"family": "Lincoln",
"given": "Tania M"
}
],
"container-title-short":
"volume": "12",
"issue": "1",
"page": "45",
"DOI": "10.1038/
"PMID": "42140955",
"PMCID": "PMC13179330",
"ISSN": "2754-6993",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
15
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1073/pnas.2606871123 [code]
- Oxytocin modulates the neurocomputational mechanisms engaged in learning rank relationships in social networks.Journal: Proceedings of the National Academy of Sciences of the United States of AmericaIn common: nlme, psych, broom, 6 other tools
- [2] doi:10.1038/s41398-026-04010-9 [code]
- Bullying victimization and brain development: a longitudinal structural magnetic resonance imaging study from adolescence to early adulthood.Journal: Translational psychiatryIn common: nlme, psych, broom, 6 other tools
- [3] doi:10.1371/journal.pbio.3003979 [code]
- Impaired midfrontal‑motor theta phase synchronization characterizes maladaptive motivational behavior in people with obsessive‑compulsive disorder.Journal: PLoS biologyIn common: psych, EEGLAB, emmeans, 5 other tools, EEG, 1 reference
- [4] doi:10.1371/journal.pone.0353990 [code]
- Positive mood enhances accessibility of unrelated concepts in the first language but not in the foreign language.Journal: PloS oneIn common: psych, EEGLAB, emmeans, 4 other tools, EEG, 2 references
- [5] doi:10.1038/s41467-026-71415-x [code]
- Regional BOLD variability reflects microstructural maturation and neuronal ensheathment in the preterm infant cortex.Journal: Nature communicationsIn common: nlme, psych, broom, 5 other tools
- [6] doi:10.1126/sciadv.aec9291 [code]
- Computational mechanisms of perception in autism revealed using games inspired by rodent operant tasks.Journal: Science advancesIn common: nlme, psych, broom, 5 other tools
- [7] doi:10.1111/psyp.70265 [code]
- Neurocognitive Dynamics of Translating Information From a Spatial Map Into Action.Journal: PsychophysiologyIn common: nlme, EEGLAB, emmeans, 4 other tools, EEG, 1 reference
- [8] doi:10.1016/j.neuroimage.2026.122115 [code]
- Midfrontal theta power relates to response speeding following frustrative nonreward.Journal: NeuroImageIn common: psych, EEGLAB, emmeans, 4 other tools, EEG, 1 reference
- [9] doi:10.1038/s41398-026-04122-2 [code]
- Multi-session CBM-I for social anxiety: examining psychopathology, cognitive, neural, and psychophysiological effects in a randomized controlled trial.Journal: Translational psychiatryIn common: nlme, psych, EEGLAB, 4 other tools, clinical / translational
- [10] doi:10.1002/hbm.70605 [code]
- BrainEnrich: Revealing Biological Insights for Imaging-Derived Phenotypes Through Transcriptomic Enrichment.Journal: Human brain mappingIn common: nlme, EEGLAB, broom, 4 other tools
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 5 scripts, and 3 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:876db631fbbefe8d…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[.
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
