Diff of /Analysis/jpca_nusim.m [000000] .. [9f010e]

Switch to side-by-side view

--- a
+++ b/Analysis/jpca_nusim.m
@@ -0,0 +1,79 @@
+clc
+clear all
+close all
+
+%Make sure that usim test_data folder is included in the MATLAB path
+%test_data folder is where the jpca is saved during usim test
+
+%Parameters
+%Sampling rate in ms
+sampling_rate = 10;   %Sampling rate in ms; we do jpca at 10ms sampling rate as done previously in original jpca implementation
+numPCs = 4;   % Number of PCs for jpca
+end_tpoint= 620;   %timepoints to do the jpca
+%Select the cycle for each condition to do the jpca
+cycle = [3, 3, 3, 3, 3, 3];
+
+load('Data_jpca.mat')
+load('n_fixedsteps_jpca.mat')
+load('condition_tpoints_jpca.mat')
+%%
+%iterate through the Data object and format
+for i= 1:size(Data, 2)
+    
+    Data(i).A = double(Data(i).A.A);
+    Data(i).times = double(Data(i).times.times');
+
+end
+
+%%
+
+
+min_tpoints_cond = inf;
+for i= 1:size(Data, 2)
+    
+    Data(i).A = Data(i).A(n_fsteps(i) + cycle(i) * cond_tpoints(i): n_fsteps(i) + (cycle(i)+1) * cond_tpoints(i), :);
+    
+    Data(i).times = Data(i).times(n_fsteps(i) + cycle(i) * cond_tpoints(i): n_fsteps(i) + (cycle(i)+1) * cond_tpoints(i), :);
+    Data(i).times = Data(i).times - Data(i).times(1);
+    
+    %Now sample the data at the required sampling rate
+    Data(i).A = Data(i).A(1:sampling_rate:length(Data(i).A), :);
+    Data(i).times = Data(i).times(1:sampling_rate:length(Data(i).times), :);
+    
+    if min_tpoints_cond > size(Data(i).A, 1)
+        
+        min_tpoints_cond = size(Data(i).A, 1);
+    
+    end
+    
+end
+
+%Now select the min_tpoints for all the conditions for jpca analysis
+for i=1:size(Data, 2)
+    
+    Data(i).A = Data(i).A(1:min_tpoints_cond, :);
+    Data(i).times = Data(i).times(1:min_tpoints_cond, :);
+
+end
+%%
+
+%Now the data array has been created. Apply the jPCA to obtain the
+%corresponding plot
+
+
+%%-------------------------------------------------------------------------
+
+% these will be used for everything below
+jPCA_params.softenNorm = 1;  % how each neuron's rate is normized, see below
+jPCA_params.suppressBWrosettes = true;  % these are useful sanity plots, but lets ignore them for now
+jPCA_params.suppressHistograms = false;  % these are useful sanity plots, but lets ignore them for now
+jPCA_params.meanSubtract = false;
+
+%% EX1: FIRST PLANE
+times = 0:sampling_rate:end_tpoint;  % 0 ms before 'movement onset' until 150 ms after
+jPCA_params.numPCs = 4;  % default anyway, but best to be specific
+[Projection, Summary] = jPCA_4(Data, times, jPCA_params);
+
+phaseSpace(Projection, Summary);  % makes the plot
+
+printFigs(gcf, './jpca_plo;t', '-dpdf', 'jPCA_Plot');  % prints in the current directory as a PDF
\ No newline at end of file