Advertisement
Guest User

Untitled

a guest
May 30th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. window.plotIV = function(protocolName, e){
  2.  
  3. e.preventDefault();
  4. // figure out if we have any protocol and organize into a map
  5. var experiments = Project.getExperiments();
  6. var protocolExperimentsMap = {};
  7. for(var i=0; i<experiments.length; i++){
  8. if(experiments[i].getName().startsWith('[P]')){
  9. // parse protocol pattern
  10. var experimentName = experiments[i].getName();
  11. var protocolName = experimentName.substring(experimentName.lastIndexOf("[P] ")+4,experimentName.lastIndexOf(" - "));
  12. if(protocolExperimentsMap[protocolName] == undefined){
  13. protocolExperimentsMap[protocolName] = [experiments[i]];
  14. } else {
  15. protocolExperimentsMap[protocolName].push(experiments[i]);
  16. }
  17. }
  18. }
  19.  
  20. // look for experiments with that name
  21. experiments = protocolExperimentsMap[protocolName];
  22. var membranePotentials = GEPPETTO.ModelFactory.getAllPotentialInstancesEndingWith('.v');
  23. var plotController = GEPPETTO.WidgetFactory.getController(GEPPETTO.Widgets.PLOT);
  24. var plotWidget = null;
  25. if(experiments.length > 0 && membranePotentials.length>0){
  26. plotWidget = G.addWidget(0).setName(protocolName + ' / IV Curve').setSize(300, 500);
  27. }
  28.  
  29. var if_results = {};
  30. var iv_results = {};
  31.  
  32. for(var i=0; i<experiments.length; i++){
  33. // loop and plot all membrane potentials
  34. if(experiments[i].getStatus() == 'COMPLETED'){
  35. for(var j=0; j<membranePotentials.length; j++){
  36. plotController.plotStateVariable(
  37. Project.getId(),
  38. experiments[i].getId(),
  39. membranePotentials[j],
  40. plotWidget
  41. );
  42. }
  43. }
  44. }
  45.  
  46.  
  47.  
  48. for i in range(number_cells):
  49. t = np.array(results['t'])*1000
  50. v = np.array(results["%s[%i]/v"%(pop.id, i)])*1000
  51.  
  52. if plot_voltage_traces:
  53. times_results.append(t)
  54. volts_results.append(v)
  55. volts_labels.append("%s nA"%stims[i])
  56.  
  57. var min = Math.min.apply(null, arr),
  58. max = Math.max.apply(null, arr);
  59.  
  60. mm = max_min(v, t, delta=0, peak_threshold=spike_threshold_mV)
  61. spike_times = mm['maxima_times']
  62. var freq = 0;
  63. var count = 0;
  64. if (spike_times.length > 2){
  65. count = 0
  66. }
  67.  
  68. for (var i =0;i<spike_times.length;i++){
  69. if(spike_times[i]>=(pre_zero_pulse + analysis_delay) && (spike_times[i]< (pre_zero_pulse + analysis_duration+analysis_delay)){
  70. count+=1;
  71. freq = 1000 * count/float(analysis_duration);
  72. }
  73. }
  74.  
  75.  
  76. var mean_freq = mean_spike_frequency(spike_times);
  77. #print("--- %s nA, spike times: %s, mean_spike_frequency: %f, freq (%fms -> %fms): %f"%(stims[i],spike_times, mean_freq, analysis_delay, analysis_duration+analysis_delay, freq))
  78. if_results[stims[i]] = freq
  79.  
  80. if freq == 0:
  81. if post_zero_pulse==0:
  82. iv_results[stims[i]] = v[-1]
  83. else:
  84. v_end = None
  85. for j in range(len(t)):
  86. if v_end==None and t[j]>=end_stim:
  87. v_end = v[j]
  88. iv_results[stims[i]] = v_end
  89. };
  90.  
  91. window.plotFI = function(protocolName, e){
  92.  
  93. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement