Rallpack3 is producing slightly different results

Moderator: wwlytton

Post Reply
dilawar
Posts: 13
Joined: Mon May 26, 2014 9:12 am
Location: NCBS Bangalore

Rallpack3 is producing slightly different results

Post by dilawar »

Hi,

I am running Rallpacks benchmark (http://www.ncbi.nlm.nih.gov/pubmed/1281353) with Neuron. The reference benchmark came with NEURON and GENSIS scripts. I modified the NEURON script for NEURON7.x.

The reference contains a cable with 1000 compartments. Each compartment having HH-type Na and K channels. A pulse of 0.1nA is applied to one end and membrane potential is recorded at both ends. This is how the result looks like in benchmark.

Image

When I simulate it using NEURON-7.3 on Linux/i686. I get the following difference. The latest NEURON generates slightly faster action potential.

Image
Image

I was not expecting to see any difference. I am not sure why this is happening. Has anything changed in H-Solve? The MOOSE simulator is producing results comparable to reference.

Since I had to modify the original script, I am posting the script I used to simulate it.

Code: Select all

dia = 1.0
len = 1.0
incompts = 1000
entire_len = incompts * len
runtime = 250.0

create cable
access cable
nseg = incompts

/*
** Initialization routines
*/

cable {nseg=incompts L=entire_len diam=dia insert hh}
	

proc geometry() {
	L = entire_len
	diam = 1
	Ra = 100.0
}

proc membrane() {
	insert hh

	ena = 50
	ek = -77
	el = -65
	gnabar = .12
	gkbar = .036
	gl = 1 / 40000

	cm = 1
}

/*
** Simulation and output of data
*/

proc run() { local io
	geometry()
	membrane()
	v = -65.0
        t=0
	
	m = m_hh
	h = h_hh
	n = n_hh

	dt = 0.05
	io = 0
	wopen("cable.out")
	fstim(1) fstim(0, 0, 0, 251, .100)
		fprint("%g %g %g\n", t, v(0.0005), v(0.9995))
	while (t < runtime) {
	    fadvance()
		fprint("%g %g %g\n", t, v(0.0005), v(0.9995))
	}
	wopen()
}

run()
hines
Site Admin
Posts: 1688
Joined: Wed May 18, 2005 3:32 pm

Re: Rallpack3 is producing slightly different results

Post by hines »

I did not find executable code at the link.
I do notice you use

Code: Select all

   gl = 1 / 40000
however the name of the corresponding variable in the hh mechanism is gl_hh . That matters since the default value is 0.0003 S/cm2.
It also might matter that the default el_hh is -54.3 mV.
However it is unclear to me what versions of NEURON you compared.
dilawar
Posts: 13
Joined: Mon May 26, 2014 9:12 am
Location: NCBS Bangalore

Re: Rallpack3 is producing slightly different results

Post by dilawar »

The benchmarks are available here http://genesis-sim.org/node/127. After extraction, go to 'reports/rallpack3/neuron' folder. I am also not sure which NEURON was used in these benchmarks. However, changing gl to gl_hh fixed the issue. Also I added finitialize() before run().

I would be cool if NEURON can emit warnings.
hines
Site Admin
Posts: 1688
Joined: Wed May 18, 2005 3:32 pm

Re: Rallpack3 is producing slightly different results

Post by hines »

Yes. Unfortunately creating new names is a common operation when writing programs. However when you type directly to the interpreter you get a somtimes useful hint...
oc>gl = 1/40000
first instance of gl
oc>
Post Reply