Browse Source

correct reref, run ICA, label ICs

kosciessa 2 years ago
parent
commit
d5b8dbb768
100 changed files with 468 additions and 239 deletions
  1. 61 5
      README.md
  2. 0 63
      code/README.md
  3. 0 100
      code/a1_prepare_preprocessing.m
  4. 99 0
      code/a1_prepare_preprocessing/a1_prepare_preprocessing.m
  5. 23 0
      code/a1_prepare_preprocessing/a1_prepare_preprocessing_START.sh
  6. 13 0
      code/a1_prepare_preprocessing/a1_prepare_preprocessing_prepare.m
  7. 11 0
      code/a1_prepare_preprocessing/a1_prepare_preprocessing_prepare.sh
  8. 33 0
      code/a1_prepare_preprocessing/a1_prepare_preprocessing_run.sh
  9. 9 0
      code/a1_prepare_preprocessing/mccExcludedFiles.log
  10. 115 0
      code/a1_prepare_preprocessing/readme.txt
  11. 1 0
      code/a1_prepare_preprocessing/requiredMCRProducts.txt
  12. 1 1
      code/a2_visual_inspection.m
  13. 3 3
      code/a3_ica/a3_ica.m
  14. 14 10
      code/a3_ica/a3_ica_START.sh
  15. 1 1
      code/a4_ica_labeling.m
  16. 1 1
      data/outputs/eeg/sub-001_task-xxxx_eeg_ica.mat
  17. 1 1
      data/outputs/eeg/sub-001_task-xxxx_eeg_raw.mat
  18. 1 0
      data/outputs/eeg/sub-002_task-xxxx_eeg_ica.mat
  19. 1 1
      data/outputs/eeg/sub-002_task-xxxx_eeg_raw.mat
  20. 1 0
      data/outputs/eeg/sub-003_task-xxxx_eeg_ica.mat
  21. 1 1
      data/outputs/eeg/sub-003_task-xxxx_eeg_raw.mat
  22. 1 1
      data/outputs/eeg/sub-004_task-xxxx_eeg_ica.mat
  23. 1 1
      data/outputs/eeg/sub-004_task-xxxx_eeg_raw.mat
  24. 1 1
      data/outputs/eeg/sub-005_task-xxxx_eeg_ica.mat
  25. 1 1
      data/outputs/eeg/sub-005_task-xxxx_eeg_raw.mat
  26. 1 1
      data/outputs/eeg/sub-006_task-xxxx_eeg_ica.mat
  27. 1 1
      data/outputs/eeg/sub-006_task-xxxx_eeg_raw.mat
  28. 1 1
      data/outputs/eeg/sub-007_task-xxxx_eeg_ica.mat
  29. 1 1
      data/outputs/eeg/sub-007_task-xxxx_eeg_raw.mat
  30. 1 0
      data/outputs/eeg/sub-008_task-xxxx_eeg_ica.mat
  31. 1 1
      data/outputs/eeg/sub-008_task-xxxx_eeg_raw.mat
  32. 1 1
      data/outputs/eeg/sub-009_task-xxxx_eeg_ica.mat
  33. 1 1
      data/outputs/eeg/sub-009_task-xxxx_eeg_raw.mat
  34. 1 0
      data/outputs/eeg/sub-010_task-xxxx_eeg_ica.mat
  35. 1 1
      data/outputs/eeg/sub-010_task-xxxx_eeg_raw.mat
  36. 1 1
      data/outputs/eeg/sub-011_task-xxxx_eeg_ica.mat
  37. 1 1
      data/outputs/eeg/sub-011_task-xxxx_eeg_raw.mat
  38. 1 0
      data/outputs/eeg/sub-012_task-xxxx_eeg_ica.mat
  39. 1 1
      data/outputs/eeg/sub-012_task-xxxx_eeg_raw.mat
  40. 1 0
      data/outputs/eeg/sub-013_task-xxxx_eeg_ica.mat
  41. 1 1
      data/outputs/eeg/sub-013_task-xxxx_eeg_raw.mat
  42. 1 1
      data/outputs/eeg/sub-014_task-xxxx_eeg_ica.mat
  43. 1 1
      data/outputs/eeg/sub-014_task-xxxx_eeg_raw.mat
  44. 1 1
      data/outputs/eeg/sub-015_task-xxxx_eeg_ica.mat
  45. 1 1
      data/outputs/eeg/sub-015_task-xxxx_eeg_raw.mat
  46. 1 1
      data/outputs/eeg/sub-016_task-xxxx_eeg_ica.mat
  47. 1 1
      data/outputs/eeg/sub-016_task-xxxx_eeg_raw.mat
  48. 1 1
      data/outputs/eeg/sub-017_task-xxxx_eeg_ica.mat
  49. 1 1
      data/outputs/eeg/sub-017_task-xxxx_eeg_raw.mat
  50. 1 1
      data/outputs/eeg/sub-018_task-xxxx_eeg_ica.mat
  51. 1 1
      data/outputs/eeg/sub-018_task-xxxx_eeg_raw.mat
  52. 1 1
      data/outputs/eeg/sub-019_task-xxxx_eeg_ica.mat
  53. 1 1
      data/outputs/eeg/sub-019_task-xxxx_eeg_raw.mat
  54. 1 1
      data/outputs/eeg/sub-020_task-xxxx_eeg_ica.mat
  55. 1 1
      data/outputs/eeg/sub-020_task-xxxx_eeg_raw.mat
  56. 1 1
      data/outputs/eeg/sub-021_task-xxxx_eeg_ica.mat
  57. 1 1
      data/outputs/eeg/sub-021_task-xxxx_eeg_raw.mat
  58. 1 1
      data/outputs/eeg/sub-022_task-xxxx_eeg_ica.mat
  59. 1 1
      data/outputs/eeg/sub-022_task-xxxx_eeg_raw.mat
  60. 1 0
      data/outputs/eeg/sub-023_task-xxxx_eeg_ica.mat
  61. 1 1
      data/outputs/eeg/sub-023_task-xxxx_eeg_raw.mat
  62. 1 1
      data/outputs/eeg/sub-024_task-xxxx_eeg_ica.mat
  63. 1 1
      data/outputs/eeg/sub-024_task-xxxx_eeg_raw.mat
  64. 1 1
      data/outputs/eeg/sub-025_task-xxxx_eeg_ica.mat
  65. 1 1
      data/outputs/eeg/sub-025_task-xxxx_eeg_raw.mat
  66. 1 1
      data/outputs/eeg/sub-026_task-xxxx_eeg_ica.mat
  67. 1 1
      data/outputs/eeg/sub-026_task-xxxx_eeg_raw.mat
  68. 1 0
      data/outputs/eeg/sub-027_task-xxxx_eeg_ica.mat
  69. 1 1
      data/outputs/eeg/sub-027_task-xxxx_eeg_raw.mat
  70. 1 1
      data/outputs/eeg/sub-028_task-xxxx_eeg_ica.mat
  71. 1 1
      data/outputs/eeg/sub-028_task-xxxx_eeg_raw.mat
  72. 1 1
      data/outputs/eeg/sub-029_task-xxxx_eeg_ica.mat
  73. 1 1
      data/outputs/eeg/sub-029_task-xxxx_eeg_raw.mat
  74. 1 1
      data/outputs/eeg/sub-030_task-xxxx_eeg_ica.mat
  75. 1 1
      data/outputs/eeg/sub-030_task-xxxx_eeg_raw.mat
  76. 1 0
      data/outputs/eeg/sub-031_task-xxxx_eeg_ica.mat
  77. 1 1
      data/outputs/eeg/sub-031_task-xxxx_eeg_raw.mat
  78. 1 0
      data/outputs/eeg/sub-032_task-xxxx_eeg_ica.mat
  79. 1 1
      data/outputs/eeg/sub-032_task-xxxx_eeg_raw.mat
  80. 1 1
      data/outputs/eeg/sub-033_task-xxxx_eeg_ica.mat
  81. 1 1
      data/outputs/eeg/sub-033_task-xxxx_eeg_raw.mat
  82. 1 0
      data/outputs/history/log_sub-001_ica1_06-Jan-2022.txt
  83. 1 0
      data/outputs/history/log_sub-002_ica1_06-Jan-2022.txt
  84. 1 0
      data/outputs/history/log_sub-002_ica1_16-Dec-2021.txt
  85. 1 0
      data/outputs/history/log_sub-003_ica1_06-Jan-2022.txt
  86. 1 0
      data/outputs/history/log_sub-003_ica1_16-Dec-2021.txt
  87. 1 0
      data/outputs/history/log_sub-004_ica1_06-Jan-2022.txt
  88. 1 0
      data/outputs/history/log_sub-005_ica1_06-Jan-2022.txt
  89. 1 0
      data/outputs/history/log_sub-006_ica1_06-Jan-2022.txt
  90. 1 0
      data/outputs/history/log_sub-007_ica1_06-Jan-2022.txt
  91. 1 0
      data/outputs/history/log_sub-008_ica1_06-Jan-2022.txt
  92. 1 0
      data/outputs/history/log_sub-008_ica1_16-Dec-2021.txt
  93. 1 0
      data/outputs/history/log_sub-009_ica1_06-Jan-2022.txt
  94. 1 0
      data/outputs/history/log_sub-010_ica1_06-Jan-2022.txt
  95. 1 0
      data/outputs/history/log_sub-010_ica1_16-Dec-2021.txt
  96. 1 0
      data/outputs/history/log_sub-011_ica1_06-Jan-2022.txt
  97. 1 0
      data/outputs/history/log_sub-012_ica1_06-Jan-2022.txt
  98. 1 0
      data/outputs/history/log_sub-012_ica1_16-Dec-2021.txt
  99. 1 0
      data/outputs/history/log_sub-013_ica1_06-Jan-2022.txt
  100. 0 0
      data/outputs/history/log_sub-013_ica1_16-Dec-2021.txt

+ 61 - 5
README.md

@@ -1,7 +1,63 @@
-# Project <insert name>
+# **EEG Preprocessing**
 
-## Dataset structure
+Steps 1-4 create filters (e.g., from the ICA, segment labeling), which later get applied to the raw data starting in step 5.
 
-- All inputs (i.e. building blocks from other sources) are located in
-  `inputs/`.
-- All custom code is located in `code/`.
+All steps use FieldTrip and were executed within MATLAB 2020a.
+
+Deviations from the standard pipeline:
+- no ECG available, whcih would normally guide heart component labeling
+
+---
+
+### **01_prepare_preprocessing**
+-	Prepare for ICA
+-	Read into FieldTrip format
+-	Switch channels
+-	EEG settings:
+o	Referenced to avg. mastoid (A1, A2)
+o	downsample: 1000Hz to 250 Hz
+o	4th order Butterworth 1-100 Hz BPF
+o	no reref for ECG
+
+### **02_visual_inspection**
+-	Check for gross noise periods that should not be considered for ICA
+
+### **03_ica**
+-	Conduct initial ICA1, this should be run on tardis
+
+### **04_ica_labeling**
+-	Manual labeling of artefactual ICA components
+
+### **05_segmentation_raw_data**
+-	Segmentation: -1500 ms relative to fixcue onset to 1500 ms after ITI onset
+-	Load raw data
+-	Switch channels
+-	EEG settings: 
+o	Referenced to avg. mastoid (A1, A2)
+o	0.2 4th order butterworth HPF
+o	125 4th order butterworth LPF
+o	demean
+o	recover implicit reference: A2
+o	downsample: 1000Hz to 500 Hz
+
+### **06_automatic_artifact_correction**
+-	Automatic artifact correction, interpolation
+-	Remove blink, move, heart, ref, art & emg ICA components prior to calculation
+-	get artifact contaminated channels by kurtosis, low & high frequency artifacts
+-	get artifact contaminated channels by FASTER
+-	interpolate artifact contaminated channels
+-	equalize duration of trials to the trial with fewest samples
+o	This is a hack. Apparently, we did not always get consistent timing on each trial, such that some trials were a bit shorter. To include these trials, I cut every trial to the lowest trial length.
+o	Interpolation to a general length may be the better option.
+-	get artifact contaminated epochs & exclude epochs recursively
+-	get channel x epoch artifacts
+-	Note that this does NOT yet remove anything. We only calculate the data to be removed in the next setp (I).
+
+### **07_prep_data_for_analysis**
+-	Remove blink, move, heart, ref, art & emg ICA components
+-	Interpolate detected artifact channels
+-	Remove artifact-heavy trials, for subjects with missing onsets, the missing trials are included here as ‘artefactual trials’, hence correcting the EEG-behavior assignment:
+
+### **08_assignConditionsToData**
+-	Remove additional channels
+-	Load behavioral data and add information to data

+ 0 - 63
code/README.md

@@ -1,63 +0,0 @@
-# **EEG Preprocessing**
-
-Steps 1-4 create filters (e.g., from the ICA, segment labeling), which later get applied to the raw data starting in step 5.
-
-All steps use FieldTrip and were executed within MATLAB 2020a.
-
-Deviations from the standard pipeline:
-- no ECG available, whcih would normally guide heart component labeling
-
----
-
-### **01_prepare_preprocessing**
--	Prepare for ICA
--	Read into FieldTrip format
--	Switch channels
--	EEG settings:
-o	Referenced to avg. mastoid (A1, A2)
-o	downsample: 1000Hz to 250 Hz
-o	4th order Butterworth 1-100 Hz BPF
-o	no reref for ECG
-
-### **02_visual_inspection**
--	Check for gross noise periods that should not be considered for ICA
-
-### **03_ica**
--	Conduct initial ICA1, this should be run on tardis
-
-### **04_ica_labeling**
--	Manual labeling of artefactual ICA components
-
-### **05_segmentation_raw_data**
--	Segmentation: -1500 ms relative to fixcue onset to 1500 ms after ITI onset
--	Load raw data
--	Switch channels
--	EEG settings: 
-o	Referenced to avg. mastoid (A1, A2)
-o	0.2 4th order butterworth HPF
-o	125 4th order butterworth LPF
-o	demean
-o	recover implicit reference: A2
-o	downsample: 1000Hz to 500 Hz
-
-### **06_automatic_artifact_correction**
--	Automatic artifact correction, interpolation
--	Remove blink, move, heart, ref, art & emg ICA components prior to calculation
--	get artifact contaminated channels by kurtosis, low & high frequency artifacts
--	get artifact contaminated channels by FASTER
--	interpolate artifact contaminated channels
--	equalize duration of trials to the trial with fewest samples
-o	This is a hack. Apparently, we did not always get consistent timing on each trial, such that some trials were a bit shorter. To include these trials, I cut every trial to the lowest trial length.
-o	Interpolation to a general length may be the better option.
--	get artifact contaminated epochs & exclude epochs recursively
--	get channel x epoch artifacts
--	Note that this does NOT yet remove anything. We only calculate the data to be removed in the next setp (I).
-
-### **07_prep_data_for_analysis**
--	Remove blink, move, heart, ref, art & emg ICA components
--	Interpolate detected artifact channels
--	Remove artifact-heavy trials, for subjects with missing onsets, the missing trials are included here as ‘artefactual trials’, hence correcting the EEG-behavior assignment:
-
-### **08_assignConditionsToData**
--	Remove additional channels
--	Load behavioral data and add information to data

+ 0 - 100
code/a1_prepare_preprocessing.m

@@ -1,100 +0,0 @@
-%% 01_prepare_preprocessing
-
-% prepare (i.e. filter + downsample data) for ICA1
-
-%% initialize
-
-restoredefaultpath;
-clear all; close all; pack; clc;
-
-%% pathdef
-
-currentFile = mfilename('fullpath');
-[pathstr,~,~] = fileparts( currentFile );
-cd(pathstr)
-
-% inputs
-pn.eeg_BIDS = fullfile('..', 'data', 'inputs', 'rawdata', 'eeg_BIDS');
-pn.channel_locations = fullfile('..', 'data', 'inputs', 'rawdata', 'channel_locations');
-pn.events = fullfile('..', 'data', 'inputs', 'rawdata', 'events');
-% outputs
-pn.eeg_ft = fullfile('..', 'data', 'outputs', 'eeg'); if ~exist(pn.eeg_ft); mkdir(pn.eeg_ft); end
-pn.history = fullfile('..', 'data', 'outputs', 'history'); if ~exist(pn.history); mkdir(pn.history); end
-
-% add fieldtrip toolbox
-addpath(fullfile('..', 'tools', 'fieldtrip')); ft_defaults;
-
-%% define IDs for preprocessing
-
-% N = 33
-IDs = tdfread(fullfile(pn.eeg_BIDS, 'participants.tsv'));
-IDs = cellstr(IDs.participant_id);
-
-for id = 1:length(IDs)
-
-if ~exist(fullfile(pn.eeg_ft, [IDs{id}, '_task-xxxx_eeg_raw.mat']),'file')
-    
-    % load data
-    cfg_preproc           = [];
-    cfg_preproc.datafile  = ...
-        fullfile(pn.eeg_BIDS, IDs{id}, 'eeg', [IDs{id}, '_task-xxxx_eeg.eeg']);
-
-    % load header & event information
-    config              = ft_read_header(cfg_preproc.datafile);
-    config.data_file    = cfg_preproc.datafile;
-    config.mrk          = ft_read_event(cfg_preproc.datafile);
-
-    % define reading & preprocessing parameters
-    cfg_preproc.channel     = {'all'};
-    cfg_preproc.implicitref = 'REF'; % recover implicit reference
-
-    % get all data first, then apply specific steps only for subsets
-    data_eeg = ft_preprocessing(cfg_preproc);
-
-    %% preprocessing
-
-    cfg_preproc               = [];                                 
-    cfg_preproc.channel       = {'all'};
-
-    cfg_preproc.continuous  = 'yes';
-    cfg_preproc.demean      = 'yes';
-
-    cfg_preproc.reref       = 'yes';
-    cfg_preproc.refchannel  = {'M1', 'M2'};
-    cfg_preproc.implicitref = 'A2';
-
-    cfg_preproc.hpfilter    = 'yes';
-    cfg_preproc.hpfreq      = 1;
-    cfg_preproc.hpfiltord   = 4;
-    cfg_preproc.hpfilttype  = 'but';
-
-    cfg_preproc.lpfilter    = 'yes';
-    cfg_preproc.lpfreq      = 100;
-    cfg_preproc.lpfiltord   = 4;
-    cfg_preproc.lpfilttype  = 'but';
-
-    data_eeg = ft_preprocessing(cfg_preproc, data_eeg);
-    
-    % define settings for resampling
-    cfg_resample.resamplefs = 250;
-    cfg_resample.detrend    = 'no';
-    cfg_resample.feedback   = 'no';
-    cfg_resample.trials     = 'all';
-
-    data_eeg = ft_resampledata(cfg_resample,data_eeg);
-    
-    % change data precision to single
-    for t = 1:length(data_eeg.trial)
-        data_eeg.trial{t} = single(data_eeg.trial{t});
-    end; clear t
-
-    %% save outputs
-
-    save(fullfile(pn.eeg_ft, [IDs{id}, '_task-xxxx_eeg_raw.mat']),'data_eeg');
-    % save config
-    save(fullfile(pn.history, [IDs{id}, '_task-xxxx_config.mat']),'config');
-    % clear variables
-    clear cfg_* config data_eeg
-    
-end
-end; clear id;

+ 99 - 0
code/a1_prepare_preprocessing/a1_prepare_preprocessing.m

@@ -0,0 +1,99 @@
+function a1_prepare_preprocessing(id, rootpath)
+
+% prepare (i.e. filter + downsample data) for ICA1
+
+if ismac % run if function is not pre-compiled
+    id = '1'; % test for example subject
+    currentFile = mfilename('fullpath');
+    [pathstr,~,~] = fileparts(currentFile);
+    cd(fullfile(pathstr,'..', '..'))
+    rootpath = pwd;
+end
+
+% inputs
+pn.eeg_BIDS = fullfile(rootpath, 'data', 'inputs', 'rawdata', 'eeg_BIDS');
+pn.channel_locations = fullfile(rootpath, 'data', 'inputs', 'rawdata', 'channel_locations');
+pn.events = fullfile(rootpath, 'data', 'inputs', 'rawdata', 'events');
+pn.tools = fullfile(rootpath, 'tools');
+% outputs
+pn.eeg_ft = fullfile(rootpath, 'data', 'outputs', 'eeg');
+pn.history = fullfile(rootpath, 'data', 'outputs', 'history');
+
+if ismac % run if function is not pre-compiled
+     addpath(fullfile(pn.tools, 'fieldtrip')); ft_defaults;
+     addpath(fullfile(pn.tools, 'helpers'));
+end
+
+%% define IDs for visual screening
+
+% N = 33
+IDs = tdfread(fullfile(pn.eeg_BIDS, 'participants.tsv'));
+IDs = cellstr(IDs.participant_id);
+
+id = str2num(id);
+
+% load data
+cfg_preproc           = [];
+cfg_preproc.datafile  = ...
+    fullfile(pn.eeg_BIDS, IDs{id}, 'eeg', [IDs{id}, '_task-xxxx_eeg.eeg']);
+
+% load header & event information
+config              = ft_read_header(cfg_preproc.datafile);
+config.data_file    = cfg_preproc.datafile;
+config.mrk          = ft_read_event(cfg_preproc.datafile);
+
+% define reading & preprocessing parameters
+cfg_preproc.channel     = {'all'};
+
+% get all data first, then apply specific steps only for subsets
+data_eeg = ft_preprocessing(cfg_preproc);
+
+%% preprocessing
+
+cfg_preproc               = [];                                 
+cfg_preproc.channel       = {'all'};
+
+cfg_preproc.continuous  = 'yes';
+cfg_preproc.demean      = 'yes';
+
+cfg_preproc.reref       = 'yes';
+cfg_preproc.refmethod   = 'avg';
+cfg_preproc.refchannel  = {'M1', 'M2'};
+cfg_preproc.implicitref = 'POz';
+
+cfg_preproc.hpfilter    = 'yes';
+cfg_preproc.hpfreq      = 1;
+cfg_preproc.hpfiltord   = 4;
+cfg_preproc.hpfilttype  = 'but';
+
+cfg_preproc.lpfilter    = 'yes';
+cfg_preproc.lpfreq      = 100;
+cfg_preproc.lpfiltord   = 4;
+cfg_preproc.lpfilttype  = 'but';
+
+data_eeg = ft_preprocessing(cfg_preproc, data_eeg);
+
+% define settings for resampling
+cfg_resample.resamplefs = 250;
+cfg_resample.detrend    = 'no';
+cfg_resample.feedback   = 'no';
+cfg_resample.trials     = 'all';
+
+data_eeg = ft_resampledata(cfg_resample,data_eeg);
+
+% change data precision to single
+for t = 1:length(data_eeg.trial)
+    data_eeg.trial{t} = single(data_eeg.trial{t});
+end; clear t
+
+%% save outputs
+
+save(fullfile(pn.eeg_ft, [IDs{id}, '_task-xxxx_eeg_raw.mat']),'data_eeg');
+% save config if it does not exist yet (otherwise we risk overwriting manual segs)
+if ~exist(fullfile(pn.history, [IDs{id}, '_task-xxxx_config.mat']),'file')
+    save(fullfile(pn.history, [IDs{id}, '_task-xxxx_config.mat']),'config');
+end
+% clear variables
+clear cfg_* config data_eeg
+
+end

+ 23 - 0
code/a1_prepare_preprocessing/a1_prepare_preprocessing_START.sh

@@ -0,0 +1,23 @@
+#!/bin/bash
+
+mkdir ./logs
+
+rootpath="$(pwd)/../.."
+rootpath=$(builtin cd $rootpath; pwd)
+
+for subj in $(seq 1 33); do
+	# if not been performed yet
+	if [ ! -f ${rootpath}/data/outputs/eeg/sub-$(printf "%03d" ${subj})*_raw.mat ]; then
+		echo "step not performed yet for this subject"
+		echo "#!/bin/bash"                    			> job.slurm
+		echo "#SBATCH --job-name eegmp_prep_${subj}" 	>> job.slurm
+		echo "#SBATCH --cpus-per-task 4"				>> job.slurm
+		echo "#SBATCH --mem 8gb" 						>> job.slurm
+		echo "#SBATCH --time 01:00:00" 					>> job.slurm
+		echo "#SBATCH --output ./logs/eegmp_prep_${subj}.out"			>> job.slurm
+		echo "#SBATCH --workdir ." 										>> job.slurm
+		echo "./a1_prepare_preprocessing_run.sh /opt/matlab/R2016b ${subj} ${rootpath}" 	>> job.slurm
+		sbatch job.slurm
+		rm -f job.slurm
+	fi
+done

+ 13 - 0
code/a1_prepare_preprocessing/a1_prepare_preprocessing_prepare.m

@@ -0,0 +1,13 @@
+function a1_prepare_preprocessing_prepare()
+
+%% add fieldtrip toolbox
+
+addpath(fullfile('..','..', 'tools', 'fieldtrip'));
+ft_defaults()
+ft_hastoolbox('JSONLAB')
+addpath(genpath(fullfile('..','..', 'tools', 'fieldtrip', 'external', 'jsonlab')))
+ft_compile_mex(true)
+
+mcc -m a1_prepare_preprocessing.m 
+
+exit

+ 11 - 0
code/a1_prepare_preprocessing/a1_prepare_preprocessing_prepare.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# This script prepares tardis by compiling the necessary function in MATLAB.
+
+# check [module avail matlab] and choose matlab version
+
+fun_name="a1_prepare_preprocessing"
+
+module load matlab/R2016b
+matlab -nodesktop -nosplash -r "run ${fun_name}_prepare.m"
+mv run_${fun_name}.sh ${fun_name}_run.sh

+ 33 - 0
code/a1_prepare_preprocessing/a1_prepare_preprocessing_run.sh

@@ -0,0 +1,33 @@
+#!/bin/sh
+# script for execution of deployed applications
+#
+# Sets up the MATLAB Runtime environment for the current $ARCH and executes 
+# the specified command.
+#
+exe_name=$0
+exe_dir=`dirname "$0"`
+echo "------------------------------------------"
+if [ "x$1" = "x" ]; then
+  echo Usage:
+  echo    $0 \<deployedMCRroot\> args
+else
+  echo Setting up environment variables
+  MCRROOT="$1"
+  echo ---
+  LD_LIBRARY_PATH=.:${MCRROOT}/runtime/glnxa64 ;
+  LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRROOT}/bin/glnxa64 ;
+  LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRROOT}/sys/os/glnxa64;
+  LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRROOT}/sys/opengl/lib/glnxa64;
+  export LD_LIBRARY_PATH;
+  echo LD_LIBRARY_PATH is ${LD_LIBRARY_PATH};
+  shift 1
+  args=
+  while [ $# -gt 0 ]; do
+      token=$1
+      args="${args} \"${token}\"" 
+      shift
+  done
+  eval "\"${exe_dir}/a1_prepare_preprocessing\"" $args
+fi
+exit
+

+ 9 - 0
code/a1_prepare_preprocessing/mccExcludedFiles.log

@@ -0,0 +1,9 @@
+The List of Excluded Files
+Excluded files	 Exclusion Message ID	 Reason For Exclusion	 Exclusion Rule
+/mnt/beegfs/software/archive/matlab/R2016b/toolbox/fuzzy/fuzzy/findcluster.m	MATLAB:depfun:req:ExcludedBy	Cannot be packaged for use in the target environment MCR. Removed from the parts list by license Compiler.	
+/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/+matlab/+internal/+toolboxes/addInstalledToolboxesToJavaPath.m	MATLAB:depfun:req:ExcludedBy	Cannot be packaged for use in the target environment MCR. Removed from the parts list by license Compiler.	/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/[+]matlab/[+]internal/[+]toolboxes/
+/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/+matlab/+internal/+toolboxes/addInstalledToolboxesToPath.m	MATLAB:depfun:req:ExcludedBy	Cannot be packaged for use in the target environment MCR. Removed from the parts list by license Compiler.	/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/[+]matlab/[+]internal/[+]toolboxes/
+/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/+matlab/+internal/+zipAddOns/addInstalledZipAddOnsToPath.m	MATLAB:depfun:req:ExcludedBy	Cannot be packaged for use in the target environment MCR. Removed from the parts list by license Compiler.	/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/[+]matlab/[+]internal/[+]zipAddOns/
+/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/pathdef.m	MATLAB:depfun:req:ExcludedBy	Cannot be packaged for use in the target environment MCR. Removed from the parts list by license Compiler.	/mnt/beegfs/software/archive/matlab/R2016b/toolbox/local/pathdef[.]m
+/mnt/beegfs/software/archive/matlab/R2016b/toolbox/matlab/codetools/@mtree/mtree.m	MATLAB:depfun:req:ExcludedBy	Cannot be packaged for use in the target environment MCR. Removed from the parts list by license Compiler.	/mnt/beegfs/software/archive/matlab/R2016b/toolbox/matlab/codetools/
+/mnt/beegfs/software/archive/matlab/R2016b/toolbox/matlab/codetools/initdesktoputils.m	MATLAB:depfun:req:ExcludedBy	Cannot be packaged for use in the target environment MCR. Removed from the parts list by license Compiler.	/mnt/beegfs/software/archive/matlab/R2016b/toolbox/matlab/codetools/

+ 115 - 0
code/a1_prepare_preprocessing/readme.txt

@@ -0,0 +1,115 @@
+MATLAB Compiler
+
+1. Prerequisites for Deployment 
+
+. Verify the MATLAB Runtime is installed and ensure you    
+  have installed version 9.1 (R2016b).   
+
+. If the MATLAB Runtime is not installed, do the following:
+  (1) enter
+  
+      >>mcrinstaller
+      
+      at MATLAB prompt. The MCRINSTALLER command displays the 
+      location of the MATLAB Runtime installer.
+
+  (2) run the MATLAB Runtime installer.
+
+Or download the Linux 64-bit version of the MATLAB Runtime for R2016b 
+from the MathWorks Web site by navigating to
+
+   http://www.mathworks.com/products/compiler/mcr/index.html
+   
+   
+For more information about the MATLAB Runtime and the MATLAB Runtime installer, see 
+Package and Distribute in the MATLAB Compiler documentation  
+in the MathWorks Documentation Center.    
+
+
+2. Files to Deploy and Package
+
+Files to package for Standalone 
+================================
+-a1_prepare_preprocessing 
+-run_a1_prepare_preprocessing.sh (shell script for temporarily setting environment 
+                                  variables and executing the application)
+   -to run the shell script, type
+   
+       ./run_a1_prepare_preprocessing.sh <mcr_directory> <argument_list>
+       
+    at Linux or Mac command prompt. <mcr_directory> is the directory 
+    where version 9.1 of the MATLAB Runtime is installed or the directory where 
+    MATLAB is installed on the machine. <argument_list> is all the 
+    arguments you want to pass to your application. For example, 
+
+    If you have version 9.1 of the MATLAB Runtime installed in 
+    /mathworks/home/application/v91, run the shell script as:
+    
+       ./run_a1_prepare_preprocessing.sh /mathworks/home/application/v91
+       
+    If you have MATLAB installed in /mathworks/devel/application/matlab, 
+    run the shell script as:
+    
+       ./run_a1_prepare_preprocessing.sh /mathworks/devel/application/matlab
+-MCRInstaller.zip
+   -if end users are unable to download the MATLAB Runtime using the above  
+    link, include it when building your component by clicking 
+    the "Runtime downloaded from web" link in the Deployment Tool
+-This readme file 
+
+3. Definitions
+
+For information on deployment terminology, go to 
+http://www.mathworks.com/help. Select MATLAB Compiler >   
+Getting Started > About Application Deployment > 
+Deployment Product Terms in the MathWorks Documentation 
+Center.
+
+
+4. Appendix 
+
+A. Linux x86-64 systems:
+In the following directions, replace MCR_ROOT by the directory where the MATLAB Runtime 
+   is installed on the target machine.
+
+(1) Set the environment variable XAPPLRESDIR to this value:
+
+    MCR_ROOT/v91/X11/app-defaults
+
+
+(2) If the environment variable LD_LIBRARY_PATH is undefined, set it to the concatenation 
+   of the following strings:
+
+    MCR_ROOT/v91/runtime/glnxa64:
+    MCR_ROOT/v91/bin/glnxa64:
+    MCR_ROOT/v91/sys/os/glnxa64:
+    MCR_ROOT/v91/sys/opengl/lib/glnxa64
+
+    If it is defined, set it to the concatenation of these strings:
+
+    ${LD_LIBRARY_PATH}: 
+    MCR_ROOT/v91/runtime/glnxa64:
+    MCR_ROOT/v91/bin/glnxa64:
+    MCR_ROOT/v91/sys/os/glnxa64:
+    MCR_ROOT/v91/sys/opengl/lib/glnxa64
+
+   For more detail information about setting the MATLAB Runtime paths, see Package and 
+   Distribute in the MATLAB Compiler documentation in the MathWorks Documentation Center.
+
+
+     
+        NOTE: To make these changes persistent after logout on Linux 
+              or Mac machines, modify the .cshrc file to include this  
+              setenv command.
+        NOTE: The environment variable syntax utilizes forward 
+              slashes (/), delimited by colons (:).  
+        NOTE: When deploying standalone applications, it is possible 
+              to run the shell script file run_a1_prepare_preprocessing.sh 
+              instead of setting environment variables. See 
+              section 2 "Files to Deploy and Package".    
+
+
+
+
+
+

+ 1 - 0
code/a1_prepare_preprocessing/requiredMCRProducts.txt

@@ -0,0 +1 @@
+35000	35001	35010	

+ 1 - 1
code/a2_visual_inspection.m

@@ -54,7 +54,7 @@ for id = 1:length(IDs)
         cfg = config.visual_inspection;
     end
 
-    cfg.channel = {'all','-ECG', '-A2', '-REF'};
+    cfg.channel = {'all'};
 
     % inspect data
     cfg = ft_databrowser(cfg,data_eeg);

+ 3 - 3
code/a3_ica/a3_ica.m

@@ -1,7 +1,7 @@
 function a3_ica(id, rootpath)
 
 if ismac % run if function is not pre-compiled
-    id = '1'; % test for first subject
+    id = '5'; % test for example subject
     currentFile = mfilename('fullpath');
     [pathstr,~,~] = fileparts(currentFile);
     cd(fullfile(pathstr,'..', '..'))
@@ -49,9 +49,9 @@ if ~exist(fullfile(pn.eeg_ft, [IDs{id}, '_task-xxxx_eeg_ica.mat']),'file')
     % load data
     load(fullfile(pn.eeg_ft, [IDs{id}, '_task-xxxx_eeg_raw.mat']),'data_eeg');
 
-    % remove implicit reference channels
+    % remove M2 (collinear with M1 due to avg. mastoid REF: mean(M1,M2)=0)
     cfg_preproc               = [];
-    cfg_preproc.channel       = {'all', '-REF', '-A2'};
+    cfg_preproc.channel       = {'all', '-M2'};
     data_eeg = ft_preprocessing(cfg_preproc, data_eeg);
     
     % adjust final length

+ 14 - 10
code/a3_ica/a3_ica_START.sh

@@ -6,14 +6,18 @@ rootpath="$(pwd)/../.."
 rootpath=$(builtin cd $rootpath; pwd)
 
 for subj in $(seq 1 33); do
-	echo "#!/bin/bash"                    			> job.slurm
-	echo "#SBATCH --job-name eegmp_ica_${subj}" 	>> job.slurm
-	echo "#SBATCH --cpus-per-task 4"				>> job.slurm
-	echo "#SBATCH --mem 8gb" 						>> job.slurm
-	echo "#SBATCH --time 10:00:00" 					>> job.slurm
-	echo "#SBATCH --output ./logs/eegmp_ica_${subj}.out"			>> job.slurm
-	echo "#SBATCH --workdir ." 										>> job.slurm
-	echo "./a3_ica_run.sh /opt/matlab/R2016b ${subj} ${rootpath}" 	>> job.slurm
-	sbatch job.slurm
-	rm -f job.slurm
+	# if ica has not been performed yet
+	if [ ! -f ${rootpath}/data/outputs/eeg/sub-$(printf "%03d" ${subj})*_ica.mat ]; then
+		echo "ICA not performed yet for this subject"
+		echo "#!/bin/bash"                    			> job.slurm
+		echo "#SBATCH --job-name eegmp_ica_${subj}" 	>> job.slurm
+		echo "#SBATCH --cpus-per-task 8"				>> job.slurm
+		echo "#SBATCH --mem 8gb" 						>> job.slurm
+		echo "#SBATCH --time 24:00:00" 					>> job.slurm
+		echo "#SBATCH --output ./logs/eegmp_ica_${subj}.out"			>> job.slurm
+		echo "#SBATCH --workdir ." 										>> job.slurm
+		echo "./a3_ica_run.sh /opt/matlab/R2016b ${subj} ${rootpath}" 	>> job.slurm
+		sbatch job.slurm
+		rm -f job.slurm
+	fi
 done

+ 1 - 1
code/a4_ica_labeling.m

@@ -22,7 +22,7 @@ addpath(fullfile(pn.tools, 'helpers'));
 
 %% define IDs for visual screening
 
-ID = 'sub-001';
+ID = 'sub-002';
 
 %% load data & start GUI
 

+ 1 - 1
data/outputs/eeg/sub-001_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/XW/59/MD5E-s393481429--6f4e270c6acf376dca6a40dc8dffa97a.mat/MD5E-s393481429--6f4e270c6acf376dca6a40dc8dffa97a.mat
+../../../.git/annex/objects/mw/58/MD5E-s389832600--853e747be45bbc2d4e8240a9848527c7.mat/MD5E-s389832600--853e747be45bbc2d4e8240a9848527c7.mat

+ 1 - 1
data/outputs/eeg/sub-001_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Kg/6v/MD5E-s337812336--facf5c9a636e00fbf2f45472593895f5.mat/MD5E-s337812336--facf5c9a636e00fbf2f45472593895f5.mat
+../../../.git/annex/objects/qk/XK/MD5E-s333564368--7cae9447d07385b473cf1c15fba4b3fb.mat/MD5E-s333564368--7cae9447d07385b473cf1c15fba4b3fb.mat

+ 1 - 0
data/outputs/eeg/sub-002_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+../../../.git/annex/objects/8W/gz/MD5E-s292168698--b334e8cf02a0b8eea19f47d9a6a6f389.mat/MD5E-s292168698--b334e8cf02a0b8eea19f47d9a6a6f389.mat

+ 1 - 1
data/outputs/eeg/sub-002_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/0q/0j/MD5E-s244169833--68e89b51c65e7dc8cdb14a2706af9833.mat/MD5E-s244169833--68e89b51c65e7dc8cdb14a2706af9833.mat
+../../../.git/annex/objects/72/M9/MD5E-s241135375--0657ea72e70078076b464fdcac8151f0.mat/MD5E-s241135375--0657ea72e70078076b464fdcac8151f0.mat

+ 1 - 0
data/outputs/eeg/sub-003_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s317668636--631e09c366e3b400a0d01e9d59ac19ad.mat

+ 1 - 1
data/outputs/eeg/sub-003_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/V4/P7/MD5E-s264528693--289f5a40eb5ea196757b113274b44982.mat/MD5E-s264528693--289f5a40eb5ea196757b113274b44982.mat
+../../../.git/annex/objects/v0/Gk/MD5E-s261237219--695bffe0d662afa14117f9f5e9e0a4dc.mat/MD5E-s261237219--695bffe0d662afa14117f9f5e9e0a4dc.mat

+ 1 - 1
data/outputs/eeg/sub-004_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/3F/fz/MD5E-s292245091--0b905ea092a205ced6cb1f18578d34ad.mat/MD5E-s292245091--0b905ea092a205ced6cb1f18578d34ad.mat
+../../../.git/annex/objects/wm/5k/MD5E-s289808650--050a1748d8363d09bda65f83b2e4ccfe.mat/MD5E-s289808650--050a1748d8363d09bda65f83b2e4ccfe.mat

+ 1 - 1
data/outputs/eeg/sub-004_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/K8/6W/MD5E-s245671983--ee5a80d6661428cb6a10de8b237bf401.mat/MD5E-s245671983--ee5a80d6661428cb6a10de8b237bf401.mat
+../../../.git/annex/objects/0M/f0/MD5E-s242588254--9438c0b4bf1f053a8a081c59f43a1145.mat/MD5E-s242588254--9438c0b4bf1f053a8a081c59f43a1145.mat

+ 1 - 1
data/outputs/eeg/sub-005_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/QQ/vv/MD5E-s298642197--d9d73d7bed6853cf050fb1b55d5340f8.mat/MD5E-s298642197--d9d73d7bed6853cf050fb1b55d5340f8.mat
+../../../.git/annex/objects/Gj/Jv/MD5E-s296076521--2d5f147faa8c11ffa42d65f242e6c751.mat/MD5E-s296076521--2d5f147faa8c11ffa42d65f242e6c751.mat

+ 1 - 1
data/outputs/eeg/sub-005_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/4m/w6/MD5E-s251023983--d836ce21c7bfc0155a84f271a8406a13.mat/MD5E-s251023983--d836ce21c7bfc0155a84f271a8406a13.mat
+../../../.git/annex/objects/fJ/fK/MD5E-s247864306--6878009d27b2150e620ee6cc6ed35eb6.mat/MD5E-s247864306--6878009d27b2150e620ee6cc6ed35eb6.mat

+ 1 - 1
data/outputs/eeg/sub-006_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/pw/7G/MD5E-s337512432--77d95f019adcff76a48fe5e122fcbe48.mat/MD5E-s337512432--77d95f019adcff76a48fe5e122fcbe48.mat
+../../../.git/annex/objects/X5/xG/MD5E-s334638528--6c53471ef253572ef038467584e1fdea.mat/MD5E-s334638528--6c53471ef253572ef038467584e1fdea.mat

+ 1 - 1
data/outputs/eeg/sub-006_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/KV/Q0/MD5E-s283881732--220cc7e5e55775df2a1f1f396cbb0d48.mat/MD5E-s283881732--220cc7e5e55775df2a1f1f396cbb0d48.mat
+../../../.git/annex/objects/m3/1q/MD5E-s280358341--bfb74aed6cfd3fbe367f565d403b6a29.mat/MD5E-s280358341--bfb74aed6cfd3fbe367f565d403b6a29.mat

+ 1 - 1
data/outputs/eeg/sub-007_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/vJ/J3/MD5E-s349760395--94f02df9f51ee6e14d18811656e23fc0.mat/MD5E-s349760395--94f02df9f51ee6e14d18811656e23fc0.mat
+../../../.git/annex/objects/xX/7Z/MD5E-s346834565--74ffbb4a29a538e09addfd5661483f9b.mat/MD5E-s346834565--74ffbb4a29a538e09addfd5661483f9b.mat

+ 1 - 1
data/outputs/eeg/sub-007_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/7p/48/MD5E-s286989459--957fb2fabb8e5f7cb70e76e54cd8587a.mat/MD5E-s286989459--957fb2fabb8e5f7cb70e76e54cd8587a.mat
+../../../.git/annex/objects/2X/zG/MD5E-s283451199--dd761f490b748e0ebc17dd4d1f18d023.mat/MD5E-s283451199--dd761f490b748e0ebc17dd4d1f18d023.mat

+ 1 - 0
data/outputs/eeg/sub-008_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s301792402--db2f4eb61ac11398862a39216213ddd9.mat

+ 1 - 1
data/outputs/eeg/sub-008_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/q3/GQ/MD5E-s252335895--10ef334dcb50c742e932abff3172dc96.mat/MD5E-s252335895--10ef334dcb50c742e932abff3172dc96.mat
+../../../.git/annex/objects/f3/j2/MD5E-s249188153--f008510547d9d7dbefec460a7e83d291.mat/MD5E-s249188153--f008510547d9d7dbefec460a7e83d291.mat

+ 1 - 1
data/outputs/eeg/sub-009_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/G0/mF/MD5E-s323815755--48d305865ccbedcaa2c93f5f0adce9f1.mat/MD5E-s323815755--48d305865ccbedcaa2c93f5f0adce9f1.mat
+../../../.git/annex/objects/GM/0K/MD5E-s321129376--4410156412777a1049e0c40056784a99.mat/MD5E-s321129376--4410156412777a1049e0c40056784a99.mat

+ 1 - 1
data/outputs/eeg/sub-009_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/4z/5G/MD5E-s286966683--09f12a0f561361613f2ed01963800cda.mat/MD5E-s286966683--09f12a0f561361613f2ed01963800cda.mat
+../../../.git/annex/objects/7q/1Z/MD5E-s283390134--5efb09e0fdac8553cc5221be00f96f2f.mat/MD5E-s283390134--5efb09e0fdac8553cc5221be00f96f2f.mat

+ 1 - 0
data/outputs/eeg/sub-010_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s293034150--f7ab0fb368fc1b59d81d5ebf54ae9a00.mat

+ 1 - 1
data/outputs/eeg/sub-010_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/qp/vW/MD5E-s251744457--3a2c0c271bcc2eab8d0b96dcfcf98ba2.mat/MD5E-s251744457--3a2c0c271bcc2eab8d0b96dcfcf98ba2.mat
+../../../.git/annex/objects/Gj/jW/MD5E-s248615027--8a98bd5d151814a1afd01694347e0cca.mat/MD5E-s248615027--8a98bd5d151814a1afd01694347e0cca.mat

+ 1 - 1
data/outputs/eeg/sub-011_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/kX/zk/MD5E-s315636989--655b414a92413ce8b81b3836b4a761a2.mat/MD5E-s315636989--655b414a92413ce8b81b3836b4a761a2.mat
+../../../.git/annex/objects/63/wk/MD5E-s313047275--20da864a5eb9e671f2f91166b18db950.mat/MD5E-s313047275--20da864a5eb9e671f2f91166b18db950.mat

+ 1 - 1
data/outputs/eeg/sub-011_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Kk/56/MD5E-s259356739--0ee4298a571a5ab40d09045efd361291.mat/MD5E-s259356739--0ee4298a571a5ab40d09045efd361291.mat
+../../../.git/annex/objects/j5/3j/MD5E-s256126165--32e1cd7b73f2fe98c780d88e6d9804f3.mat/MD5E-s256126165--32e1cd7b73f2fe98c780d88e6d9804f3.mat

+ 1 - 0
data/outputs/eeg/sub-012_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s352710975--99df2db5ef5dcc6c4fec5ec8f404afc1.mat

+ 1 - 1
data/outputs/eeg/sub-012_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/8X/VG/MD5E-s293141733--c52fcd56300108e284c62b54cb2275b7.mat/MD5E-s293141733--c52fcd56300108e284c62b54cb2275b7.mat
+../../../.git/annex/objects/W8/Qf/MD5E-s289485363--be9c3d2a101896ce6550a976aed1fac7.mat/MD5E-s289485363--be9c3d2a101896ce6550a976aed1fac7.mat

+ 1 - 0
data/outputs/eeg/sub-013_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s319353599--e40ed02125c60d0d8c0e71c735ceca42.mat

+ 1 - 1
data/outputs/eeg/sub-013_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/8w/j6/MD5E-s264904591--1de99cca5f687a5cf1ef559be331f5f5.mat/MD5E-s264904591--1de99cca5f687a5cf1ef559be331f5f5.mat
+../../../.git/annex/objects/84/9Q/MD5E-s261610536--ba935c2b70f9551d7a1ef51381032437.mat/MD5E-s261610536--ba935c2b70f9551d7a1ef51381032437.mat

+ 1 - 1
data/outputs/eeg/sub-014_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/GG/55/MD5E-s280009293--4d154e04d132d65693aa4b1142c29bb7.mat/MD5E-s280009293--4d154e04d132d65693aa4b1142c29bb7.mat
+../../../.git/annex/objects/07/Vq/MD5E-s277667475--c45d9de281c38fbbd8b6f16661d8269a.mat/MD5E-s277667475--c45d9de281c38fbbd8b6f16661d8269a.mat

+ 1 - 1
data/outputs/eeg/sub-014_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Gm/4P/MD5E-s234088670--a9bbf032f2cfcdf388a47ef5863ad170.mat/MD5E-s234088670--a9bbf032f2cfcdf388a47ef5863ad170.mat
+../../../.git/annex/objects/Zv/69/MD5E-s231188281--3543ac71833da915b13871bbf84b3a15.mat/MD5E-s231188281--3543ac71833da915b13871bbf84b3a15.mat

+ 1 - 1
data/outputs/eeg/sub-015_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/kX/9V/MD5E-s311518547--3f28af9e305400e74c030b836adc2150.mat/MD5E-s311518547--3f28af9e305400e74c030b836adc2150.mat
+../../../.git/annex/objects/Mk/G5/MD5E-s308841661--e1679fc0222111558a1beca6d869e1ad.mat/MD5E-s308841661--e1679fc0222111558a1beca6d869e1ad.mat

+ 1 - 1
data/outputs/eeg/sub-015_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/mk/27/MD5E-s259563288--8462ef8ea5f4e9e6d21d27c96b2716a3.mat/MD5E-s259563288--8462ef8ea5f4e9e6d21d27c96b2716a3.mat
+../../../.git/annex/objects/KP/GW/MD5E-s256333855--ed609c8394b0bed96b5df44cc5476b49.mat/MD5E-s256333855--ed609c8394b0bed96b5df44cc5476b49.mat

+ 1 - 1
data/outputs/eeg/sub-016_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/FJ/fv/MD5E-s288681698--84a8c1c7f25c8aa247ab2a1185dc34d1.mat/MD5E-s288681698--84a8c1c7f25c8aa247ab2a1185dc34d1.mat
+../../../.git/annex/objects/2F/xz/MD5E-s286376642--a69a00a53bf20bd32acb734fcf1c3435.mat/MD5E-s286376642--a69a00a53bf20bd32acb734fcf1c3435.mat

+ 1 - 1
data/outputs/eeg/sub-016_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Gw/PQ/MD5E-s238382996--d9be493658e1ce9cad78f7a7a48df8ed.mat/MD5E-s238382996--d9be493658e1ce9cad78f7a7a48df8ed.mat
+../../../.git/annex/objects/PW/kw/MD5E-s235411078--754510a02cf9de9c9e529b9b8ac0915a.mat/MD5E-s235411078--754510a02cf9de9c9e529b9b8ac0915a.mat

+ 1 - 1
data/outputs/eeg/sub-017_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/q2/x2/MD5E-s296559473--338f200228a5c9b864d3d79dcde92069.mat/MD5E-s296559473--338f200228a5c9b864d3d79dcde92069.mat
+../../../.git/annex/objects/km/5m/MD5E-s294090862--546d400e5818d510dca44385229f94fd.mat/MD5E-s294090862--546d400e5818d510dca44385229f94fd.mat

+ 1 - 1
data/outputs/eeg/sub-017_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/16/21/MD5E-s256077118--f2a590e9ac74da4fcfcae9bf43d387cd.mat/MD5E-s256077118--f2a590e9ac74da4fcfcae9bf43d387cd.mat
+../../../.git/annex/objects/GX/fG/MD5E-s252906777--65d92da4bf891ddb1e178a9f5b7d3cbb.mat/MD5E-s252906777--65d92da4bf891ddb1e178a9f5b7d3cbb.mat

+ 1 - 1
data/outputs/eeg/sub-018_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Mq/x0/MD5E-s355819390--b1ecd34bf34afcc7eb778137df290508.mat/MD5E-s355819390--b1ecd34bf34afcc7eb778137df290508.mat
+../../../.git/annex/objects/5Q/pf/MD5E-s352731810--847d893910f6d58757bf6b23a8a29b72.mat/MD5E-s352731810--847d893910f6d58757bf6b23a8a29b72.mat

+ 1 - 1
data/outputs/eeg/sub-018_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/0G/kP/MD5E-s297196569--5f94516e3ee86795bc9aa70c9286dc7d.mat/MD5E-s297196569--5f94516e3ee86795bc9aa70c9286dc7d.mat
+../../../.git/annex/objects/M9/24/MD5E-s293477073--cc87f261a1d33fe4c25d58e4cbd4b572.mat/MD5E-s293477073--cc87f261a1d33fe4c25d58e4cbd4b572.mat

+ 1 - 1
data/outputs/eeg/sub-019_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/GQ/FM/MD5E-s369960576--09dbfb4466cfc061fb8ed6173d7b3da6.mat/MD5E-s369960576--09dbfb4466cfc061fb8ed6173d7b3da6.mat
+../../../.git/annex/objects/GX/0P/MD5E-s366844109--75943c163ac5f920f17e149f1b57c73a.mat/MD5E-s366844109--75943c163ac5f920f17e149f1b57c73a.mat

+ 1 - 1
data/outputs/eeg/sub-019_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/J4/3M/MD5E-s307074479--fdaaa3778e059b02b76ec2a969ded529.mat/MD5E-s307074479--fdaaa3778e059b02b76ec2a969ded529.mat
+../../../.git/annex/objects/JG/Pm/MD5E-s303332735--d420207786eb15090d73fba99990c81f.mat/MD5E-s303332735--d420207786eb15090d73fba99990c81f.mat

+ 1 - 1
data/outputs/eeg/sub-020_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/zj/9F/MD5E-s426851518--6b1ebeaeae5dee4453de051f2ebccbec.mat/MD5E-s426851518--6b1ebeaeae5dee4453de051f2ebccbec.mat
+../../../.git/annex/objects/29/2x/MD5E-s423611561--927aa1c3c5f43627e022cfd73bbd0c57.mat/MD5E-s423611561--927aa1c3c5f43627e022cfd73bbd0c57.mat

+ 1 - 1
data/outputs/eeg/sub-020_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/MV/V5/MD5E-s387482388--5afad58f67764e76d6051f07fcc104ba.mat/MD5E-s387482388--5afad58f67764e76d6051f07fcc104ba.mat
+../../../.git/annex/objects/Kp/7w/MD5E-s382734896--15ac220a2e5e81b0c5ff607667d2fa3a.mat/MD5E-s382734896--15ac220a2e5e81b0c5ff607667d2fa3a.mat

+ 1 - 1
data/outputs/eeg/sub-021_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/9G/0G/MD5E-s321206288--43d5a902089f4124afb24e03cce94b2d.mat/MD5E-s321206288--43d5a902089f4124afb24e03cce94b2d.mat
+../../../.git/annex/objects/6p/Xg/MD5E-s318594706--3e9b88d612933a29233807447527f374.mat/MD5E-s318594706--3e9b88d612933a29233807447527f374.mat

+ 1 - 1
data/outputs/eeg/sub-021_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/v9/FZ/MD5E-s267345969--cc3b20d6a1b4acb1f31cf945f69eef2e.mat/MD5E-s267345969--cc3b20d6a1b4acb1f31cf945f69eef2e.mat
+../../../.git/annex/objects/mQ/57/MD5E-s264027600--1e30b9dc110eb982306d4dca06752eff.mat/MD5E-s264027600--1e30b9dc110eb982306d4dca06752eff.mat

+ 1 - 1
data/outputs/eeg/sub-022_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/GG/fK/MD5E-s358254835--e0b8e20b06c0861128fe7844b14faf37.mat/MD5E-s358254835--e0b8e20b06c0861128fe7844b14faf37.mat
+../../../.git/annex/objects/Qx/4M/MD5E-s355267562--392d411d2b94ca14d4e8b8c1f4360e82.mat/MD5E-s355267562--392d411d2b94ca14d4e8b8c1f4360e82.mat

+ 1 - 1
data/outputs/eeg/sub-022_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/7z/VM/MD5E-s296241274--ae4a85550ec672379b138d966b2246c0.mat/MD5E-s296241274--ae4a85550ec672379b138d966b2246c0.mat
+../../../.git/annex/objects/1Q/4Q/MD5E-s292562949--322cfdd14a3744289c68e026ce04ebb0.mat/MD5E-s292562949--322cfdd14a3744289c68e026ce04ebb0.mat

+ 1 - 0
data/outputs/eeg/sub-023_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s335463929--a5912f0cc50403343ad6c0a621a4f5a7.mat

+ 1 - 1
data/outputs/eeg/sub-023_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/wQ/8G/MD5E-s295074563--ee56245e5e3c5f9ac0684c19ffb496d5.mat/MD5E-s295074563--ee56245e5e3c5f9ac0684c19ffb496d5.mat
+../../../.git/annex/objects/57/pQ/MD5E-s291446436--1faf1a2b822cbed5274c866a9af537bc.mat/MD5E-s291446436--1faf1a2b822cbed5274c866a9af537bc.mat

+ 1 - 1
data/outputs/eeg/sub-024_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/6w/j6/MD5E-s356971037--eeed2644aca12592e9948a38fef9c872.mat/MD5E-s356971037--eeed2644aca12592e9948a38fef9c872.mat
+../../../.git/annex/objects/mm/9V/MD5E-s353979643--7b8f222ea31b3b700f48190ba6cc536c.mat/MD5E-s353979643--7b8f222ea31b3b700f48190ba6cc536c.mat

+ 1 - 1
data/outputs/eeg/sub-024_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/QM/zj/MD5E-s293844137--4e2814c182325f94ace4fe5a126aaafd.mat/MD5E-s293844137--4e2814c182325f94ace4fe5a126aaafd.mat
+../../../.git/annex/objects/Z3/pq/MD5E-s290263653--7b37a1161f055726c4c06d98ae3e1fe6.mat/MD5E-s290263653--7b37a1161f055726c4c06d98ae3e1fe6.mat

+ 1 - 1
data/outputs/eeg/sub-025_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/V1/fJ/MD5E-s348725676--159535a60388ce507cea84c0933a3f66.mat/MD5E-s348725676--159535a60388ce507cea84c0933a3f66.mat
+../../../.git/annex/objects/2V/w5/MD5E-s345799749--0d372c02ad82a95d42795664ec99da3b.mat/MD5E-s345799749--0d372c02ad82a95d42795664ec99da3b.mat

+ 1 - 1
data/outputs/eeg/sub-025_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/03/37/MD5E-s292387949--d66277bcf32b55d6528db1536f35fbcb.mat/MD5E-s292387949--d66277bcf32b55d6528db1536f35fbcb.mat
+../../../.git/annex/objects/P5/jQ/MD5E-s288777340--78a577bd14968b4b3d7d97bd7d6d0e1d.mat/MD5E-s288777340--78a577bd14968b4b3d7d97bd7d6d0e1d.mat

+ 1 - 1
data/outputs/eeg/sub-026_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/KP/wm/MD5E-s307953395--749e5c4c822e80756cfe4a11f960ba0f.mat/MD5E-s307953395--749e5c4c822e80756cfe4a11f960ba0f.mat
+../../../.git/annex/objects/X4/8Z/MD5E-s305418608--b36d6ba629e73419ff3b7a6666dba28a.mat/MD5E-s305418608--b36d6ba629e73419ff3b7a6666dba28a.mat

+ 1 - 1
data/outputs/eeg/sub-026_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Gp/q2/MD5E-s265498854--84707dbe2f6c73607ff5a6c2d651c57b.mat/MD5E-s265498854--84707dbe2f6c73607ff5a6c2d651c57b.mat
+../../../.git/annex/objects/Km/P2/MD5E-s262194758--558b4f6fe7d0f04b6c1f43fe3ec103da.mat/MD5E-s262194758--558b4f6fe7d0f04b6c1f43fe3ec103da.mat

+ 1 - 0
data/outputs/eeg/sub-027_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s304898156--cb4cda8f66cd336ae2e01e8ca5921313.mat

+ 1 - 1
data/outputs/eeg/sub-027_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/MM/29/MD5E-s256796394--9ec7ba983d3f7256ce4560fcd3aa2842.mat/MD5E-s256796394--9ec7ba983d3f7256ce4560fcd3aa2842.mat
+../../../.git/annex/objects/V0/q8/MD5E-s253629201--40d398c18bf2cb228aa4b406323f9eab.mat/MD5E-s253629201--40d398c18bf2cb228aa4b406323f9eab.mat

+ 1 - 1
data/outputs/eeg/sub-028_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Km/12/MD5E-s337464888--d19d14cbeaaf3b1934b2264e15997019.mat/MD5E-s337464888--d19d14cbeaaf3b1934b2264e15997019.mat
+../../../.git/annex/objects/Xz/v4/MD5E-s334722920--96a1b2a17ff1450ab9f1ee12d79f1038.mat/MD5E-s334722920--96a1b2a17ff1450ab9f1ee12d79f1038.mat

+ 1 - 1
data/outputs/eeg/sub-028_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/Vv/K9/MD5E-s285395177--bcfb5fbadd2363fae58f4299c60853d9.mat/MD5E-s285395177--bcfb5fbadd2363fae58f4299c60853d9.mat
+../../../.git/annex/objects/jJ/x8/MD5E-s281977261--8262bbee9d060b7d01d7c60c187eb41d.mat/MD5E-s281977261--8262bbee9d060b7d01d7c60c187eb41d.mat

+ 1 - 1
data/outputs/eeg/sub-029_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/xZ/0z/MD5E-s360780484--880fa386cb1d8715e41d78a00f20da52.mat/MD5E-s360780484--880fa386cb1d8715e41d78a00f20da52.mat
+../../../.git/annex/objects/wZ/gV/MD5E-s357797728--754662412ad67b220dd5043a2f65582b.mat/MD5E-s357797728--754662412ad67b220dd5043a2f65582b.mat

+ 1 - 1
data/outputs/eeg/sub-029_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/4m/7X/MD5E-s296454435--16bdf0379eb2cbaf5611b8915fcccaa7.mat/MD5E-s296454435--16bdf0379eb2cbaf5611b8915fcccaa7.mat
+../../../.git/annex/objects/XQ/xx/MD5E-s292786251--25d7c87fd7a8ab43881ae03ec6149c6a.mat/MD5E-s292786251--25d7c87fd7a8ab43881ae03ec6149c6a.mat

+ 1 - 1
data/outputs/eeg/sub-030_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/fq/93/MD5E-s350469706--b8430970c8349aabdbfefa9daac868e2.mat/MD5E-s350469706--b8430970c8349aabdbfefa9daac868e2.mat
+../../../.git/annex/objects/q2/4W/MD5E-s347572257--420bca4bd896b7e4b47e66e3f13da319.mat/MD5E-s347572257--420bca4bd896b7e4b47e66e3f13da319.mat

+ 1 - 1
data/outputs/eeg/sub-030_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/W4/8q/MD5E-s299840231--411d2e0954078b98b253b60b0066d34d.mat/MD5E-s299840231--411d2e0954078b98b253b60b0066d34d.mat
+../../../.git/annex/objects/Z6/GJ/MD5E-s296138048--56866a61bb54de3afe7c03185462e261.mat/MD5E-s296138048--56866a61bb54de3afe7c03185462e261.mat

+ 1 - 0
data/outputs/eeg/sub-031_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s343047455--603ab3128c80eda0bb22fb481392b4ca.mat

+ 1 - 1
data/outputs/eeg/sub-031_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/P9/42/MD5E-s287396678--15fe22d69f813c110e2a19162e47efef.mat/MD5E-s287396678--15fe22d69f813c110e2a19162e47efef.mat
+../../../.git/annex/objects/XX/7j/MD5E-s283850694--3eb320c1700a0352b9afdaa9d19cd618.mat/MD5E-s283850694--3eb320c1700a0352b9afdaa9d19cd618.mat

+ 1 - 0
data/outputs/eeg/sub-032_task-xxxx_eeg_ica.mat

@@ -0,0 +1 @@
+/annex/objects/MD5E-s358325827--ee058a0737f635cac5231c2ba30ebd5e.mat

+ 1 - 1
data/outputs/eeg/sub-032_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/KV/59/MD5E-s326492051--a6238b17ad10db8082882e0ef8c99eb4.mat/MD5E-s326492051--a6238b17ad10db8082882e0ef8c99eb4.mat
+../../../.git/annex/objects/QP/Q8/MD5E-s322442169--c497d8c1596db9908b5994e4dd5e74c5.mat/MD5E-s322442169--c497d8c1596db9908b5994e4dd5e74c5.mat

+ 1 - 1
data/outputs/eeg/sub-033_task-xxxx_eeg_ica.mat

@@ -1 +1 @@
-../../../.git/annex/objects/kv/kQ/MD5E-s361803950--bc46dd83a7cf3e616d347a8b0e3ee72a.mat/MD5E-s361803950--bc46dd83a7cf3e616d347a8b0e3ee72a.mat
+../../../.git/annex/objects/pj/gg/MD5E-s358749203--4fe12d8c544ab8282e694b352fa7c033.mat/MD5E-s358749203--4fe12d8c544ab8282e694b352fa7c033.mat

+ 1 - 1
data/outputs/eeg/sub-033_task-xxxx_eeg_raw.mat

@@ -1 +1 @@
-../../../.git/annex/objects/3w/Qm/MD5E-s304905247--387a37597df9f33a3e96518db6d635f6.mat/MD5E-s304905247--387a37597df9f33a3e96518db6d635f6.mat
+../../../.git/annex/objects/Jz/KJ/MD5E-s301168336--da4767ee6a993defdc7cae2cfc3e23fc.mat/MD5E-s301168336--da4767ee6a993defdc7cae2cfc3e23fc.mat

+ 1 - 0
data/outputs/history/log_sub-001_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s28152--0e90fa5a26959c2337ce6e2b9ac1249c.txt

+ 1 - 0
data/outputs/history/log_sub-002_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+../../../.git/annex/objects/MF/xP/MD5E-s35432--b5b26c94cb0029d2fc5689bdf9914455.txt/MD5E-s35432--b5b26c94cb0029d2fc5689bdf9914455.txt

+ 1 - 0
data/outputs/history/log_sub-002_ica1_16-Dec-2021.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s34610--50a25b1ca8007651287c8392375ea310.txt

+ 1 - 0
data/outputs/history/log_sub-003_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s35633--4a129d777ff39b66d80cb01f1cf82fe2.txt

+ 1 - 0
data/outputs/history/log_sub-003_ica1_16-Dec-2021.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s25552--3141b11c3d7e19e4ea625592f1fcc868.txt

+ 1 - 0
data/outputs/history/log_sub-004_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s36382--2cd8333804cbcfa6cf633be680932894.txt

+ 1 - 0
data/outputs/history/log_sub-005_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s31259--ca7b5be066c18ce72edadfd73d4216d3.txt

+ 1 - 0
data/outputs/history/log_sub-006_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s30277--b15ff13388e105d18aac7326647677b7.txt

+ 1 - 0
data/outputs/history/log_sub-007_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s36065--29d905e13996f8a663ec4c30dce7ca4b.txt

+ 1 - 0
data/outputs/history/log_sub-008_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s36334--3665b2238f1fdb01bfea7a76bbabd510.txt

+ 1 - 0
data/outputs/history/log_sub-008_ica1_16-Dec-2021.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s42723--05740b9afdde941098ed1e0aaaa3a2d6.txt

+ 1 - 0
data/outputs/history/log_sub-009_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s34728--007cdd14a726109a3bdea6aa91beb54b.txt

+ 1 - 0
data/outputs/history/log_sub-010_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s35867--6f8e78bbca15fd9eeeeccacfac0c2ff0.txt

+ 1 - 0
data/outputs/history/log_sub-010_ica1_16-Dec-2021.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s19611--1b9ef8d92aab47627bd4a777b784081c.txt

+ 1 - 0
data/outputs/history/log_sub-011_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s30810--557584f0016eaa425411bb37c6ce17a8.txt

+ 1 - 0
data/outputs/history/log_sub-012_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s37597--2f533714ae55ae76e3edf0372ab5e4d9.txt

+ 1 - 0
data/outputs/history/log_sub-012_ica1_16-Dec-2021.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s42710--d423a85b98793e5267d787e35dca6e48.txt

+ 1 - 0
data/outputs/history/log_sub-013_ica1_06-Jan-2022.txt

@@ -0,0 +1 @@
+/annex/objects/MD5E-s30753--70ba952853edc412a736cb1fffa5d704.txt

+ 0 - 0
data/outputs/history/log_sub-013_ica1_16-Dec-2021.txt


Some files were not shown because too many files changed in this diff