Multiple runs in NEURON result in different results
Posted: Fri Jan 25, 2013 4:36 pm
Hi, Ted,
I want to study parameter variation of my NEURON model and hope it can run automatically for multiple times (each time with new values of certain parameters) and save the data in different directories for later analysis. The problem now I have is that even with identical parameters (nothing change in the code), the data I got from two different runs are different. What I did is simple:
proc run() {
running_ = 1
stdinit()
continuerun(tstop)
}
proc multi_run() {
for mi = 1, 2 {
// set_parameter( ) // New parameter will set in this function
run( )
save_data(mi)
}
}
multi_run()
I also run the simulation twice using the "Init & Run" button in the NEURON Control Menu, and the results I got from these two runs are still different: same as using the multi_run() function I wrote. When I compared the voltages I recorded from these two runs, some neurons have the identical voltages, some don't. Here is an example for a neuron with different voltage:
1st run:
-70
-69.9829
-69.8064
-69.5509
-69.2699
-68.9842
-68.7011
-68.4232
-68.1517
-67.8904
-67.6496
-67.4391
-67.2598
-67.1078
-66.978
2nd run:
-70
-69.9829
-69.8064
-69.5509
-69.2694
-68.9393
-68.5515
-68.1485
-67.7518
-67.3786
-67.0432
-66.7491
-66.4922
-66.2665
-66.0666
That is quite surprising to me since it means the "Init & Run" button in the Control Menu could produce different results when pressed for multiple times, even if nothing in the code change. I am also very confused about this since the run() should initialize all the variables back to the same initial conditions. Please advise and thank you very much.
Best,
Guoshi
I want to study parameter variation of my NEURON model and hope it can run automatically for multiple times (each time with new values of certain parameters) and save the data in different directories for later analysis. The problem now I have is that even with identical parameters (nothing change in the code), the data I got from two different runs are different. What I did is simple:
proc run() {
running_ = 1
stdinit()
continuerun(tstop)
}
proc multi_run() {
for mi = 1, 2 {
// set_parameter( ) // New parameter will set in this function
run( )
save_data(mi)
}
}
multi_run()
I also run the simulation twice using the "Init & Run" button in the NEURON Control Menu, and the results I got from these two runs are still different: same as using the multi_run() function I wrote. When I compared the voltages I recorded from these two runs, some neurons have the identical voltages, some don't. Here is an example for a neuron with different voltage:
1st run:
-70
-69.9829
-69.8064
-69.5509
-69.2699
-68.9842
-68.7011
-68.4232
-68.1517
-67.8904
-67.6496
-67.4391
-67.2598
-67.1078
-66.978
2nd run:
-70
-69.9829
-69.8064
-69.5509
-69.2694
-68.9393
-68.5515
-68.1485
-67.7518
-67.3786
-67.0432
-66.7491
-66.4922
-66.2665
-66.0666
That is quite surprising to me since it means the "Init & Run" button in the Control Menu could produce different results when pressed for multiple times, even if nothing in the code change. I am also very confused about this since the run() should initialize all the variables back to the same initial conditions. Please advise and thank you very much.
Best,
Guoshi