diff --git a/matlab/+SSF/drawKymosCondition.m b/matlab/+SSF/drawKymosCondition.m
index 5b330d04ac011fd0bd3677eae289084dfdac2f16..f54fcf3643af6e26589bf332a2ffa682735c45c0 100644
--- a/matlab/+SSF/drawKymosCondition.m
+++ b/matlab/+SSF/drawKymosCondition.m
@@ -27,9 +27,8 @@ end
 xClasses = unique(classList);
 
 nKeep = 0;
-clipRange = [2.5,97.5];
-% clipRange = [0.5,99.5];
-clipLimits = SSF.getClipLimits(flist,targetChannels,clipRange,nKeep);
+
+clipLimits = SSF.getClipLimits(flist,targetChannels,nKeep);
 
 xyim = []; % one per flist
 xticks = [];
@@ -40,7 +39,7 @@ for cc = 1:length(xClasses)
     clf;imCC = {};
     for ff = 1:length(flistCC)        
         fname = fullfile(flistCC(ff).folder,flistCC(ff).name);
-        imq = SSF.draw_ssf_kymo(fname,targetChannels,clipLimits,nKeep);         
+        imq = SSF.draw_ssf_kymo(fname,targetChannels,clipLimits{ff},nKeep);         
         szim(ff,:) = size(imq);
         imq(:,1) = 0; imq(:,end) = 0;
         imq(1:2,:) = 0; imq(end-1:end,:) = 0;
@@ -79,6 +78,14 @@ for cc = 1:length(xClasses)
         plot([x,x+szim(ff,2)],[y,y],'-k');
         plot([x,x+szim(ff,2)],[y+szim(ff,1),y+szim(ff,1)],'-k');
         plot([x,x],[y,y+szim(ff,1)],'-k')
+
+        tPulseOn = regexp(flistCC(ff).name,'(\d)hNoPulse','tokens');
+        tPulseOn = str2double(tPulseOn{1}{1});
+        tPulseOff = regexp(flistCC(ff).name,'(\d)hPulse','tokens');
+        tPulseOff = tPulseOn + str2double(tPulseOff{1}{1});
+
+        plot([x+12*tPulseOn,x+12*tPulseOn], [y,y+szim(ff,1)], ':r')
+        plot([x+12*tPulseOff,x+12*tPulseOff], [y,y+szim(ff,1)], ':k')
         % don't draw to your right...
 %         plot([x+szim(ff,2),x+szim(ff,2)],[y,y+szim(ff,1)],'-k')
         text(x,y,ccLabels{ff},'Interpreter','none','FontSize',6,'BackgroundColor',[0.9,0.5,0.7,0.5],...
@@ -117,8 +124,10 @@ for cc = 1:length(xClasses)
     fx = strfind(flist(ff).name,'.LEVER');
     fx = fx(1)-1;    
 %     title(xClasses{cc},'Interpreter','none');
-    tick_labels = round(linspace(clipLimits(1),clipLimits(2),5),2,'significant');
-    cb = colorbar('Ticks',[1,64,128,192,255],'TickLabels',tick_labels);
+    c1 = clipLimits{1};
+    tick_targets = [1,64,128,192,254];
+    tick_labels = round(c1(tick_targets),2,'significant');
+    cb = colorbar('Ticks',tick_targets,'TickLabels',tick_labels);
     cb.Label.String = cbLabel;
     if 1 == cc
         exportgraphics(gcf,outfile);
diff --git a/matlab/+SSF/draw_ssf_kymo.m b/matlab/+SSF/draw_ssf_kymo.m
index 55e5f5633498207d30177978757f84e541b4323c..ae1ed3faaf9736b6188fb587f3d6539d1bb8a83e 100644
--- a/matlab/+SSF/draw_ssf_kymo.m
+++ b/matlab/+SSF/draw_ssf_kymo.m
@@ -1,5 +1,9 @@
+% nKeep : 0 -- return whole kymo. 1 return +. -1 return -.
+function imq = draw_ssf_kymo(strKymoFile, targetChannels, clipLimits, nKeep)
 
-function imq = draw_ssf_kymo(strKymoFile, targetChannels, clipLimits,nKeep)
+if ~exist('nKeep','var')
+    nKeep = 0;
+end
 
 imKymo = SSF.loadImage(strKymoFile,targetChannels);
 if nKeep>0
diff --git a/matlab/+SSF/draw_ssf_ncd.m b/matlab/+SSF/draw_ssf_ncd.m
index 1e9869b0ae7dd680a78c50f06ef92e19da8193fa..91e362ab3c6d359d186ff25439723c323b6a5b9d 100644
--- a/matlab/+SSF/draw_ssf_ncd.m
+++ b/matlab/+SSF/draw_ssf_ncd.m
@@ -51,6 +51,6 @@ if ~isempty(idxWT)
     classUnique{idxWT} = 'WILD TYPE';
 end
 legend(hx(find(hx)),classUnique(find(hx)),'interpreter','none');
-tstr = ['CSF^6_{Erk} = ' mat2str([csf_mean, csf_std],2)]; 
+tstr = ['CSF^6_{Erk} = ' jsonencode(round([csf_mean,csf_std],2,'significant'))]; 
 title(tstr)
 
diff --git a/matlab/+SSF/getClipLimits.m b/matlab/+SSF/getClipLimits.m
index dc177d9e883cf69810d583fda0942c05e73d2faf..c3d93db28f4b9fd2de248cffb944b7124b238f61 100644
--- a/matlab/+SSF/getClipLimits.m
+++ b/matlab/+SSF/getClipLimits.m
@@ -1,10 +1,7 @@
 % map [-1,1] kymographs to color space [0,255]
 % 
-function clipLimits = getClipLimits(flist,targetChannelNumbers,clipRange,nKeep,tClip)
+function clipLimits = getClipLimits(flist,targetChannelNumbers,nKeep,tClip)
 
-if ~exist('clipRange','var')
-    clipRange= [2.5,97.5];
-end
 if ~exist('nKeep','var')
     nKeep = 0;
 end
@@ -28,25 +25,14 @@ parfor ff=1:length(flist)
         end
         px = im_ff(find(im_ff));
         kymoPixels{ff} = px;
-
-%         clipLimits{ff} = [mean(px)-std(px),mean(px)+std(px)]; %prctile(kp{c},[0.5,99.5]);
-        clipLimits{ff} = prctile(px,100.*[1/255:1/255:1-1/255]);
     end    
 end 
 
-% kymoPixels = vertcat(kymoPixels{:});
-% clipLimits = prctile(kymoPixels,100.*[1/255:1/255:1-1/255]);
-
-% clipLimits = []; 
-% for c = 1:size(kymoPixels,2)
-%     % anything other than [0,1] gets set to the corresponding percentile
-%     idx = find(clipRange);
-%     if ~isempty(idx)
-%         px = kymoPixels{:,c};
-%         clipLimits(c,idx) = [mean(px)-std(px),mean(px)+std(px)]; %[prctile(px,clipRange(idx))];
-%     end   
-%     clipLimits(c,find(clipRange==0)) = 0;
-% end
-% 
-% 
-%  4;
\ No newline at end of file
+kymoPixels = vertcat(kymoPixels{:});
+cl = [mean(kymoPixels)-std(kymoPixels), mean(kymoPixels)+std(kymoPixels)];
+q1 = length(find(kymoPixels<cl(1)))./length(kymoPixels);
+q2 = 1 - length(find(kymoPixels>cl(2)))./length(kymoPixels);
+pxTarget = linspace(q1,q2,254);
+clipLimits = quantile(kymoPixels,pxTarget);
+clipLimits = repmat({clipLimits},length(flist),1);
+4;
diff --git a/matlab/+SSF/go_ssf_ncd.m b/matlab/+SSF/go_ssf_ncd.m
index e19aaf493800faf5a62c201cc9b2995adc248fe3..db4ad479a60237e9b7570dff9c6a1d6849d486c6 100644
--- a/matlab/+SSF/go_ssf_ncd.m
+++ b/matlab/+SSF/go_ssf_ncd.m
@@ -4,18 +4,13 @@
 % AKT_CHANNEL = 2;
 % H2B_CHANNEL = 3;
 % targetChannels = [ERK_CHANNEL,AKT_CHANNEL];
-function d=go_ssf_ncd(kROOT,targetChannels,clipRange, nKeep, tClip)
+function d=go_ssf_ncd(kROOT,targetChannels, clipLimits, nKeep, tClip)
 
 tStart = tic();
 
 if ~exist('nKeep','var')
     nKeep = 0;
 end
-
-if ~exist('clipRange','var')
-    clipRange = [2.5,97.5];
-end
-
 if ~exist('tClip','var')
     tClip = [];
 end
@@ -29,10 +24,8 @@ kymoPixels = {};
  
 p = ljsStartParallel();
 % 
-if iscell(clipRange)
-    clipLimits = clipRange;
-else
-    clipLimits = SSF.getClipLimits(flist,targetChannels,clipRange,nKeep,tClip);
+if ~exist('clipLimits','var')
+    clipLimits = SSF.getClipLimits(flist,targetChannels,nKeep,tClip);
 end
 %
 cmdList = NCD.dParallelCommandList(ones(length(flist)),p.NumWorkers);