Browse Source

gin commit from DESKTOP-1FLVU9O

Modified files: 2
eceboran 3 years ago
parent
commit
baf9433c05
2 changed files with 40 additions and 14 deletions
  1. 39 14
      code_MATLAB/Main_Load_NIX_Data.m
  2. 1 0
      code_MATLAB/Main_Plot_Figures.m

+ 39 - 14
code_MATLAB/Main_Load_NIX_Data.m

@@ -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

+ 1 - 0
code_MATLAB/Main_Plot_Figures.m

@@ -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'; % For Mac: 'nix_mx_macOS_1.4.2_Matlab2020a'
 strFieldTripPath = 'fieldtrip-20200315';
 strGrammPath = 'gramm-master'; % https://github.com/piermorel/gramm