====== Source Localization ======
Version: brainstorm3 \\
Package is in Shane/resources/brainstorm3 \\
Need to add its path to matlab and then just run the command brainstorm \\
Running/ installing brainstorm will automatically make a brainstorm_db folder in the same folder where brainstorm3 is saved (in my case resources) \\
=== Brainstorm Organization ===
* Each subject is then saved as a protocol that is then saved in that database folder
* With each protocol there is an anat and data folder
* anat: anatomy
* contains the anatomy files that were uploaded (from their freesurfer output)
* data: your brain data
* contains eeg files that you load in
\\
=== Brainstorm Scripts ===
* I have one script for each task epoch (fix, delay, resting state, etc)
* Sets the necessary paths to the freesurfer folders, list of glasser parcellations, merge 7t, and preprocessed data
* We need the subject folders that have 'long' in the title so it checks for that and if yes, moves on
if contains(FSsubfolder,'long')
* Define the subject folder (protocol), DBfolder is the brainstorm_db, and then I named it sourceLocal_beamforming_ subjectID based on their MRI date, not eeg date to match the freesurfer file
subjectDBfolder = [DBfolder '/sourceLocal_beamforming_' SubjectNameMRI];
* Here we are setting the protocol name
* The iProtocol bst_get checks to see the protocol already exists in the database
* If no (iProtocol is empty), then create protocol, and add the subject within it
* That just creates a blank subject line in the protocol to then fill with the anat and data
* If the protocol does exist, then load it and set it as the current protocol
ProtocolName = sprintf('sourceLocal_beamforming_%s', SubjectNameMRI);
iProtocol = bst_get('Protocol', ProtocolName);
if isempty(iProtocol)
gui_brainstorm('CreateProtocol', ProtocolName, 0, 0);
db_add_subject(SubjectNameMRI, [], 1);
else
gui_brainstorm('SetCurrentProtocol', iProtocol);
end
* bst_get('ProtocolStudies') pulls out the studies within one protocol
* A study is like each EEG file you have loaded into that protocol, so everyone should have fix, delays, and rest
* But this code below checks to see if fix (or delay or rest or whatever what you're running) already exists and removes it (cause maybe you wanna redo it)
sStudies = bst_get('ProtocolStudies');
for iStudy = 1:length(sStudies.Study)
studyName = sStudies.Study(iStudy).Name;
if contains(studyName, 'fix')
fprintf('Deleting study: %s\n', studyName);
db_delete_studies(iStudy);
end
end
* Find the lunaID
* Find the MRI date
* Find the row in merge 7t with the corresponding lunaID and MRI date
* Using that row, find the EEG date
* Create the path to the corresponding EEG file
luna = str2double(SubjectNameMRI(1:5));
MRIdate = str2double(SubjectNameMRI(7:14));
rowIdx = merge7t(:,1) == luna & merge7t(:,4) == MRIdate;
if any(rowIdx)
eeg_date = merge7t(rowIdx,5);
pattern = sprintf('%s_%s*_rerefwhole_ICA_icapru.set', string(luna), string(eeg_date));
files = dir(fullfile(EEGfolder, pattern));
EEGpath = fullfile(EEGfolder, files.name);
else
continue
end