EZcompositePlot.m 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. %EZcompositePlot
  2. global Exp
  3. global ghandles
  4. if (Exp(expN).cTraceN>1 && length(Exp(expN).ll)<=(Exp(expN).cTraceIndx((Exp(expN).cTraceN)))) ||...
  5. isempty(Exp(expN).ll)
  6. return;
  7. end
  8. Exp(expN).CompositPlot=1;
  9. if expN==1, OLaxes=ghandles.OLaxes1; end
  10. if expN==2, OLaxes=ghandles.OLaxes2; end
  11. if expN==3, OLaxes=ghandles.OLaxes3; end
  12. cTraceN=mod(Exp(expN).cTraceN,10);
  13. %cTraceN=Exp(expN).cTraceN;
  14. if cTraceN==1, colour='b';
  15. elseif cTraceN==2, colour='g';
  16. elseif cTraceN==3, colour='r';
  17. elseif cTraceN==4, colour='c';
  18. elseif cTraceN==5, colour='m';
  19. elseif cTraceN==6, colour='b';
  20. elseif cTraceN==7, colour='g';
  21. elseif cTraceN==8, colour='r';
  22. elseif cTraceN==9, colour='c';
  23. elseif cTraceN==0, colour='m';
  24. end
  25. AddCplot=1; %Test need for user question dialog boxS
  26. if AddCplot==1,
  27. cTraceN=Exp(expN).cTraceN
  28. cTraceIndx=Exp(expN).cTraceIndx(cTraceN)
  29. cTstart=cTraceIndx;
  30. cTend=length(Exp(expN).ll);
  31. jj=0; ii=0; RFcmpTraces=0; maxRFcmpLStd=0; maxRFcmpKStd=0; maxRFcmprStd=0;
  32. for ic=cTstart:cTend
  33. if strcmp(get(Exp(expN).hOL(ic),'visible'), 'on')
  34. jj=jj+1;
  35. mlstL(jj)=Exp(expN).ll(ic); mlstR(jj)=Exp(expN).rr(ic); mlstK(jj)=Exp(expN).kk(ic);
  36. LBcheck=char(Exp(expN).hOLname(ic))
  37. if isequal(LBcheck(4:6),'cmp'),
  38. if Exp(expN).lstd(ic)> maxRFcmpLStd
  39. maxRFcmpLStd=Exp(expN).lstd(ic);
  40. ii=ii+1;
  41. lstds(ii)=Exp(expN).lstd(ic);
  42. RFcmpTraces(ii)=ic;
  43. end
  44. if Exp(expN).kstd(ic)> maxRFcmpKStd
  45. maxRFcmpKStd=Exp(expN).kstd(ic);
  46. end
  47. if Exp(expN).rstd(ic)> maxRFcmprStd
  48. maxRFcmprStd=Exp(expN).rstd(ic);
  49. end
  50. end
  51. end
  52. end
  53. end
  54. maxLstd=max(std(mlstL), maxRFcmpLStd);
  55. maxKstd=max(std(mlstK), maxRFcmpKStd);
  56. maxrstd=max(std(mlstR), maxRFcmprStd);
  57. Exp(expN).cLmean(cTraceN)=mean(mlstL); Exp(expN).cLstd(cTraceN)=maxLstd;
  58. Exp(expN).cRmean(cTraceN)=mean(mlstR); Exp(expN).cKstd(cTraceN)=maxKstd; %std(mlstR);
  59. Exp(expN).cKmean(cTraceN)=mean(mlstK); Exp(expN).cRstd(cTraceN)=maxrstd; %std(mlstK);
  60. % Mean calculation plot
  61. l=Exp(expN).cLmean(cTraceN);
  62. r=Exp(expN).cRmean(cTraceN);
  63. K=Exp(expN).cKmean(cTraceN);
  64. lslow=l + Exp(expN).cLstd(cTraceN); lfast=l - Exp(expN).cLstd(cTraceN);
  65. rl=r - Exp(expN).cRstd(cTraceN); ru=r + Exp(expN).cRstd(cTraceN);
  66. Kl=K - Exp(expN).cKstd(cTraceN); Ku=K + Exp(expN).cKstd(cTraceN);
  67. clear g;
  68. t=1:200;
  69. g=K ./ (1 + exp(-r.* (t - l )));
  70. gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
  71. gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
  72. if K==0||r==0||l==0
  73. g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;
  74. end
  75. Exp(expN).hCmean(cTraceN)=plot(OLaxes,t,g);hold on; % plot the composit mean of traces
  76. Exp(expN).hBound1(cTraceN)=plot(OLaxes,t,gSlow,'y');
  77. Exp(expN).hBound2(cTraceN)=plot(OLaxes,t,gFast,'y');
  78. %c1=c1-((cTraceN-1)*0.2); c2=c2+((cTraceN-1)*0.2); c3=c3+((cTraceN-1)*0.2);
  79. set(Exp(expN).hCmean(cTraceN),'color',colour) %[c1 c2 c3]) %Set latest trace red
  80. set(Exp(expN).hCmean(cTraceN),'linewidth',3)
  81. Lstr=num2str(Exp(expN).cLmean(cTraceN)); Lsstr=num2str(Exp(expN).cLstd(cTraceN));
  82. Rstr=num2str(Exp(expN).cRmean(cTraceN)); Rsstr=num2str(Exp(expN).cRstd(cTraceN));
  83. Kstr=num2str(Exp(expN).cKmean(cTraceN)); Ksstr=num2str(Exp(expN).cKstd(cTraceN));
  84. try
  85. cPlotLB=strcat('Composite', num2str(cTraceN),'->','L=',Lstr(1:4),';','Ls=',Lsstr(1:4),';',...
  86. 'r=',Rstr(1:4),';','rs=',Rsstr(2:6),';','K=',Kstr(1:4),';','Ks=',Ksstr(1:4))
  87. catch
  88. try
  89. cPlotLB=strcat('Composite', num2str(cTraceN),'->','L=',Lstr(1:4),';','r=',Rstr(1:4),';','K=',Kstr(1:4),'-SingleSource');
  90. catch
  91. end
  92. end
  93. Exp(expN).cName(cTraceN)={cPlotLB};
  94. if expN==1, set(ghandles.OLay1,'string', cPlotLB); end
  95. if expN==2, set(ghandles.OLay2,'string', cPlotLB); end
  96. if expN==3, set(ghandles.OLay3,'string', cPlotLB); end
  97. % Hide source traces leaving only the Composite traces and STD traces
  98. for i=1:length(Exp(expN).hOL)
  99. set(Exp(expN).hOL(i),'Visible','off')
  100. try set(Exp(expN).hOLb(i),'Visible','off')
  101. catch
  102. msg='No raw data RFcmp'
  103. end
  104. end
  105. % Increment the CompositeTrace count and update the correlated reference OLAY cTraceIndx
  106. Exp(expN).cTraceN=(Exp(expN).cTraceN) + 1 ;
  107. Exp(expN).cTraceIndx(Exp(expN).cTraceN)=length(Exp(expN).hOL(:))+1;
  108. %cPlotLB=strcat('Composite', num2str(cTraceN),'L=',num2str(Exp(expN).cLmean(cTraceN)),'Ls=',num2str(Exp(expN).cLstd(cTraceN))) %,'-',(Exp(expN).hOLname(cTraceIndx)))
  109. %Exp(expN).cName(cTraceN)={cPlotLB};