Kaynağa Gözat

Delete 'MatlabScripts/e_SingleUnitDecoding.m'

David Ottenheimer 6 yıl önce
ebeveyn
işleme
2819537caa
1 değiştirilmiş dosya ile 0 ekleme ve 97 silme
  1. 0 97
      MatlabScripts/e_SingleUnitDecoding.m

+ 0 - 97
MatlabScripts/e_SingleUnitDecoding.m

@@ -1,97 +0,0 @@
-%decodes trial identity from spiking across bins for each individual neuron
-clear all;
-load ('R_2R.mat');
-load ('RAW.mat');
-
-folds = 5; %number of times cross-validated:
-shuffs = 1; %number of shuffled models created
-
-%load parameters
-BinDura=R_2R.Param.BinDura;
-bins=R_2R.Param.bins;
-binint=R_2R.Param.binint;
-binstart=R_2R.Param.binstart;
-
-
-
-%setup variables
-UnitDec=[];
-NN = 0;
-
-for i=1:length(RAW) %loops through sessions
-    if strcmp('NA',RAW(i).Type(1:2)) | strcmp('VP',RAW(i).Type(1:2)) %check if it's a suc vs mal session
-        %events being compared
-        RD1=strcmp('RD1', RAW(i).Einfo(:,2));
-        RD2=strcmp('RD2', RAW(i).Einfo(:,2));
-        for j= 1:size(RAW(i).Nrast,1) %Number of neurons per session
-            NN=NN+1; %neuron counter
-            for l=1:bins
-
-                LowHz=zeros(1,1);
-                DecodeSpikes=NaN(1,1);
-                DecodeRs=NaN(1,1);
-
-                [PSR1,N1]=MakePSR04(RAW(i).Nrast(j),RAW(i).Erast{RD1},[(BinDura(1)+(binstart - binint)+l*binint) (BinDura(2)+(binstart - binint)+l*binint)],{2});% makes trial by trial rasters. PSR1 is a cell(neurons, trials)
-                for m=1:length(PSR1)
-                    DecodeSpikes(m,1)=sum(PSR1{1,m}>(binstart));
-                    DecodeRs(m,1)=1;
-                end
-
-                %get all the spikes from reward 1p2 trials
-                [PSR2,N2]=MakePSR04(RAW(i).Nrast(j),RAW(i).Erast{RD2},[(BinDura(1)+(binstart - binint)+l*binint) (BinDura(2)+(binstart - binint)+l*binint)],{2});% makes trial by trial rasters. PSR1 is a cell(neurons, trials)
-                for n=1:length(PSR2)
-                    DecodeSpikes(n+m,1)=sum(PSR2{1,n}>(binstart));
-                    DecodeRs(n+m,1)=2;
-                end
-
-                if sum(DecodeSpikes(1:N1,1))<7 || sum(DecodeSpikes((1+N1):(N1+N2),1))<7 %prevents errors with LDA on conditions with no variance
-                    LowHz(1,1)=1;
-                end
-
-
-                %if one neuron or more has too few spikes, so LDA has error because not
-                %enough variance, this removes those neurons from the analysis
-                if sum(LowHz)==0
-
-                    %creating models
-                    CVacc = NaN(folds,1);
-                    CVaccSh = NaN(folds,1);
-                    %normal model
-                    for r = 1:folds
-
-                        Partitions = cvpartition(DecodeRs,'KFold',folds);
-                        LDAModel = fitcdiscr(DecodeSpikes(Partitions.training(r),:),DecodeRs(Partitions.training(r)));
-                        prediction = predict(LDAModel,DecodeSpikes(Partitions.test(r),:));
-                        actual = DecodeRs(Partitions.test(r));
-                        correct = prediction - actual;
-                        CVacc(r) = sum(correct==0) / length(correct);
-
-                    end
-
-                    %shuffled model
-                    for q=1:shuffs
-                        DecodeRsSh=DecodeRs(randperm(length(DecodeRs)));
-                        PartitionsSh = cvpartition(DecodeRsSh,'KFold',folds);
-                        for s = 1:folds
-                            LDAModelSh = fitcdiscr(DecodeSpikes(PartitionsSh.training(s),:),DecodeRsSh(PartitionsSh.training(s)));
-                            predictionSh = predict(LDAModelSh,DecodeSpikes(PartitionsSh.test(s),:));
-                            actualSh = DecodeRsSh(PartitionsSh.test(s));
-                            correctSh = predictionSh - actualSh;
-                            CVaccSh(s) = sum(correctSh==0) / length(correctSh);
-                        end
-                        AccShuff(q,1) = nanmean(CVaccSh);
-                    end
-                    UnitDec.True(NN,l) = nanmean(CVacc);
-                    UnitDec.Shuff(NN,l) = nanmean(AccShuff);
-                else 
-                    UnitDec.True(NN,l) = NaN;
-                    UnitDec.Shuff(NN,l) = NaN;
-                end
-            end
-
-            fprintf('Neuron ID # %d\n',NN);
-        end %neurons: FOR j= 1:size(RAW(i).Nrast,1)
-    end %checking if the right session type
-end %sessions: FOR i=1:length(RAW)
-
-save('UnitDec_2R.mat','UnitDec');