function [TQ_response] = RunNeuronTQAnalysis(data_behavior,events,plxdata,filename)

  plot_onset = -1;
  plot_offset = 1;
  bin = 60;   %bin = 60 msec for stat analysis
  slide = 1;  %sliding procedure shift = 1-msec
  
  %TRIAL TYPES-----------------------------------------

   TQ_dir1 = find(12 = events.torque.TP_nb & events.torque.TP_nb = 1);
   TQ_dir2 = find(24 = events.torque.TP_nb & events.torque.TP_nb = 13);
    
  %--------------  NEURONAL DATA  ---------------------------
  timestamps = plxdata.sig001a.ts .1000;  % Neural activity
  [sdf_TQ1_trials] = sdf_neurons(timestamps,events.torque.occur(TQ_dir1),plot_onset,plot_offset);
  [sdf_TQ2_trials] = sdf_neurons(timestamps,events.torque.occur(TQ_dir2),plot_onset,plot_offset);
  
  tscale = [plot_onset0.001plot_offset];
  maxy = nanmax([nanmax(sdf_TQ1_trials.mean_sdf) nanmax(sdf_TQ2_trials.mean_sdf)]) + 5;
 
  %------------------Plotting-------------------------------------
  clear cue_evt
  cue_evt = shuffle(events.torque.occur(TQ_dir1))';
  [s_TQ1,mean_TQ1,thr_TQ1] = make_psth_figure(timestamps,cue_evt,filename,-0.5,0.5,maxy,1,'TQ1');
  
  clear cue_evt
  cue_evt = shuffle(events.torque.occur(TQ_dir2))';
  [s_TQ2,mean_TQ2,thr_TQ2] = make_psth_figure(timestamps,cue_evt,filename,-0.5,0.5,maxy,2,'TQ2');
  
  close
  
  %----------------------------------------------
   flag = 3;
   if ~isequal(0, s_TQ1.sgn) && isequal(0, s_TQ2.sgn) && s_TQ1.on_ind1300 
       
       response = s_TQ1;
       response.sdf =  sdf_TQ1_trials.mean_sdf;
       response.mean = mean_TQ1;
       response.thr = thr_TQ1;
       flag = 1;
   elseif ~isequal(0, s_TQ2.sgn) && isequal(0, s_TQ1.sgn) && s_TQ1.on_ind1300
       
        response = s_TQ2;
        response.sdf =  sdf_TQ2_trials.mean_sdf;
        response.mean = mean_TQ2;
        response.thr = thr_TQ2;
        flag = 2;
   elseif ~isequal(0, s_TQ1.sgn) && ~isequal(0, s_TQ2.sgn) 
       
            if s_TQ1.on_ind  s_TQ2.on_ind 
                if s_TQ1.on_ind1300
                    response = s_TQ1;
                    response.sdf =  sdf_TQ1_trials.mean_sdf;
                    response.mean = mean_TQ1;
                    response.thr = thr_TQ1;
                    flag = 1;
                else
                    response.sgn = [];
                    response.sdf =  sdf_TQ1_trials.mean_sdf;
                    response.mean = mean_TQ1;
                    response.thr = thr_TQ1;
                    flag = 3;
                end
                
            elseif s_TQ1.on_ind  s_TQ2.on_ind
                if s_TQ2.on_ind1300  
                
                    response = s_TQ2;
                     response.sdf =  sdf_TQ2_trials.mean_sdf;
                     response.mean = mean_TQ2;
                      response.thr = thr_TQ2;
                      flag = 2;
                else
                    response.sgn = [];
                    response.sdf =  sdf_TQ1_trials.mean_sdf;
                    response.mean = mean_TQ1;
                    response.thr = thr_TQ1;
                    flag = 3;
                end
            else
                    response.sgn = [];
                    response.sdf =  sdf_TQ1_trials.mean_sdf;
                    response.mean = mean_TQ1;
                    response.thr = thr_TQ1;
                    flag = 3;
            end
            
            if ~isempty(response.sgn) 
             if response.on_ind1300 
                    response.sgn = [];
                    response.sdf =  sdf_TQ1_trials.mean_sdf;
                    response.mean = mean_TQ1;
                    response.thr = thr_TQ1;
                    flag = 3;
             end
            end
   else
                    response.sgn = [];
                    response.sdf =  sdf_TQ1_trials.mean_sdf;
                    response.mean = mean_TQ1;
                    response.thr = thr_TQ1;
                    flag = 3;
   end
   
  %------- ROC analysis ------------------------
  
  if flag == 1  flag ==3
        [m n] = size(sdf_TQ1_trials.delta);
        Wind_on = [1sliden-bin];
        Wind_off = [binsliden-1];
  
        for k = 1length(Wind_on)
            delta_TQ(,k) = sum(sdf_TQ1_trials.delta(,Wind_on(k)Wind_off(k)),2);
                        
            delta_ctl = shuffle(sdf_TQ2_trials.delta,1);
            delta_ctl = shuffle(delta_ctl,2);
            delta_ctl = shuffle(delta_ctl);
            
            delta_shuffle(,k) = sum(delta_ctl(,Wind_on(k)Wind_off(k)),2);
        end

        for k = 1length(delta_TQ)
      
            val = [delta_shuffle(,k); delta_TQ(,k)];
            val2 = [ones(length(delta_shuffle(,k)),1); zeros(length(delta_TQ(,k)),1)];
            val = [val val2];
     
            if sum(val(,1))3
                    AUC_ROC(k)=colAUC(val(,1),val(,2), 'algorithm', 'Wilcoxon', 'plot', false, 'abs', false);  
            else
                    AUC_ROC(k) = NaN;
            end
     
            clear val val2 
        end

  elseif flag == 2
        
          [m n] = size(sdf_TQ2_trials.delta);
          Wind_on = [1sliden-bin];
          Wind_off = [binsliden-1];
  
        for k = 1length(Wind_on)
            delta_TQ(,k) = sum(sdf_TQ2_trials.delta(,Wind_on(k)Wind_off(k)),2);
                        
            delta_ctl = shuffle(sdf_TQ1_trials.delta,1);
            delta_ctl = shuffle(delta_ctl,2);
            delta_ctl = shuffle(delta_ctl);
            
            delta_shuffle(,k) = sum(delta_ctl(,Wind_on(k)Wind_off(k)),2);
        end
        for k = 1length(delta_TQ)
      
            val = [delta_shuffle(,k); delta_TQ(,k)];
            val2 = [ones(length(delta_shuffle(,k)),1); zeros(length(delta_TQ(,k)),1)];
            val = [val val2];
     
            if sum(val(,1))3
                    AUC_ROC(k)=colAUC(val(,1),val(,2), 'algorithm', 'Wilcoxon', 'plot', false, 'abs', false);  
            else
                    AUC_ROC(k) = NaN;
            end
     
            clear val val2 
        end
  end
  
 Xbinned = [plot_onset0.001plot_onset+((length(AUC_ROC)-1)1000)];
 Xbinned = Xbinned + (bin2)1000;
        
  response.AUC = AUC_ROC; 
  response.timebin = Xbinned;
  TQ_response = response;
  clear response s_TQ1 s_TQ2 sdf_TQ1_trials sdf_TQ2_trials AUC_ROC delta_TQ delta_shuffle delta_ctl
end