|
@@ -5,6 +5,7 @@ clc
|
|
|
|
|
|
%% Directory of the repository and the NIX library
|
|
|
strMainPath = 'human_amygdala_mua_seeg_fearvideo';
|
|
|
+strMainPath = 'Human_Amygdala_MUA_sEEG_FearVideo';
|
|
|
strNIXLibraryPath = 'nix-mx_Win64_1.4.1'; % or 'nix_mx_macOS_1.4.2_Matlab2020a'
|
|
|
|
|
|
%% Add necessary folders to the MATLAB path
|
|
@@ -21,7 +22,7 @@ strNIXFileNames = {strNIXFileNames.name}';
|
|
|
assert(~isempty(strNIXFileNames),'strMainPath should be the full path of the folder Human_Amygdala_MUA_sEEG_FearVideo')
|
|
|
|
|
|
%% Select NIX file to open
|
|
|
-nFile = 1;
|
|
|
+nFile = 5;
|
|
|
|
|
|
%% Open NIX file
|
|
|
strFilePath = [strMainPath filesep 'data_NIX' filesep strNIXFileNames{nFile}];
|
|
@@ -121,6 +122,22 @@ cellfun(@(x) disp(x.name),block.groups)
|
|
|
%% Select trial
|
|
|
nTrial = 1;
|
|
|
|
|
|
+%% Trial events
|
|
|
+group_TrialEvents_iEEG = block.openGroup('Trial events single tags iEEG');
|
|
|
+
|
|
|
+%% Trial events for a single trial
|
|
|
+indTrialTags_iEEG = contains(cellfun(@(x) x.name,group_TrialEvents_iEEG.tags,'UniformOutput',0),['Trial_',num2str(nTrial,'%.2d')]);
|
|
|
+
|
|
|
+TrialEvents_iEEG = group_TrialEvents_iEEG.tags(indTrialTags_iEEG);
|
|
|
+
|
|
|
+cellfun(@(x) disp(x.name),TrialEvents_iEEG)
|
|
|
+
|
|
|
+%% Time of a single event
|
|
|
+nSingleTag = 1; % Gives the single tag for the trial condition
|
|
|
+fprintf(['Event name: ',TrialEvents_iEEG{nSingleTag}.name,'\n'])
|
|
|
+fprintf([sprintf('Time w.r.t. fixation: %.1f %s',TrialEvents_iEEG{nSingleTag}.position(2),TrialEvents_iEEG{nSingleTag}.units{1}),'\n'])
|
|
|
+fprintf([sprintf('Duration: %.1f %s',TrialEvents_iEEG{nSingleTag}.extent(2),TrialEvents_iEEG{nSingleTag}.units{1}),'\n'])
|
|
|
+
|
|
|
%% iEEG data
|
|
|
group_iEEG = block.openGroup('iEEG data');
|
|
|
% Data array
|
|
@@ -129,7 +146,11 @@ dataArray_iEEG = group_iEEG.dataArrays{nTrial};
|
|
|
% Electrode labels
|
|
|
striEEGLabels = dataArray_iEEG.dimensions{1}.labels;
|
|
|
% Time axis
|
|
|
-tiEEG = (0:(double(dataArray_iEEG.dataExtent(2))-1))*dataArray_iEEG.dimensions{2}.samplingInterval+dataArray_iEEG.dimensions{2}.offset;
|
|
|
+if(length(dataArray_iEEG.dataExtent)==2)
|
|
|
+ tiEEG = (0:(double(dataArray_iEEG.dataExtent(2))-1))*dataArray_iEEG.dimensions{2}.samplingInterval+dataArray_iEEG.dimensions{2}.offset;
|
|
|
+else
|
|
|
+ tiEEG = (0:(double(dataArray_iEEG.dataExtent(1))-1))*dataArray_iEEG.dimensions{2}.samplingInterval+dataArray_iEEG.dimensions{2}.offset;
|
|
|
+end
|
|
|
% Read data
|
|
|
data_iEEG = dataArray_iEEG.readAllData;
|
|
|
|
|
@@ -142,25 +163,28 @@ ylabel(['Voltage (',dataArray_iEEG.unit,')'])
|
|
|
xlim([tiEEG(1),tiEEG(end)])
|
|
|
legend(striEEGLabels)
|
|
|
|
|
|
-%% Trial events
|
|
|
-group_TrialEvents_iEEG = block.openGroup('Trial events single tags iEEG');
|
|
|
-
|
|
|
-%% Trial events for a single trial
|
|
|
-indTrialTags_iEEG = contains(cellfun(@(x) x.name,group_TrialEvents_iEEG.tags,'UniformOutput',0),['Trial_',num2str(nTrial,'%.2d')]);
|
|
|
+%% Sources of the iEEG data
|
|
|
+sourceUnit = dataArray_iEEG.sources{1};
|
|
|
+% Electrode label
|
|
|
+sourceUnit.sources{1}.name
|
|
|
+% Anatomical location
|
|
|
+sourceUnit.sources{2}.name
|
|
|
|
|
|
-TrialEvents_iEEG = group_TrialEvents_iEEG.tags(indTrialTags_iEEG);
|
|
|
+%% Use electrode map to get properties of the macroelectrode the unit is on
|
|
|
+groupiEEGElecrodes = block.openGroup('iEEG electrode information');
|
|
|
|
|
|
-cellfun(@(x) disp(x.name),TrialEvents_iEEG)
|
|
|
+nElectrode = find(strcmpi(cellfun(@(x) x.name,groupiEEGElecrodes.sources,'UniformOutput',0),sourceUnit.name));
|
|
|
|
|
|
-%% Time of a single event
|
|
|
-nSingleTag = 1; % Gives the single tag for the trial condition
|
|
|
-fprintf(['Event name: ',TrialEvents_iEEG{nSingleTag}.name,'\n'])
|
|
|
-fprintf([sprintf('Time w.r.t. fixation: %.1f %s',TrialEvents_iEEG{nSingleTag}.position(2),TrialEvents_iEEG{nSingleTag}.units{1}),'\n'])
|
|
|
-fprintf([sprintf('Duration: %.1f %s',TrialEvents_iEEG{nSingleTag}.extent(2),TrialEvents_iEEG{nSingleTag}.units{1}),'\n'])
|
|
|
+% MNI coordinates of the electrode
|
|
|
+groupiEEGElecrodes.multiTags{1}.retrieveFeatureData(nElectrode,'iEEG_Electrode_MNI_Coordinates')
|
|
|
|
|
|
%% Units
|
|
|
group_SpikeTimesMultitags = block.openGroup('Spike times multitags');
|
|
|
|
|
|
+if(group_SpikeTimesMultitags.multiTagCount==0)
|
|
|
+ warning('This subject does not have any units')
|
|
|
+
|
|
|
+else
|
|
|
%% Select unit and trial
|
|
|
nUnit = 1;
|
|
|
nTrial = 5;
|
|
@@ -211,3 +235,4 @@ nElectrode = find(strcmpi(cellfun(@(x) x.name,groupiEEGElecrodes.sources,'Unifor
|
|
|
% MNI coordinates of the electrode
|
|
|
groupiEEGElecrodes.multiTags{1}.retrieveFeatureData(nElectrode,'iEEG_Electrode_MNI_Coordinates')
|
|
|
|
|
|
+end
|