ModelDB is moving. Check out our new site at https://modeldb.science. The corresponding page is https://modeldb.science/184497.

Rhesus Monkey Young and Aged L3 PFC Pyramidal Neurons (Rumbell et al. 2016)

 Download zip file 
Help downloading and running models
Accession:184497
A stereotypical pyramidal neuron morphology with ion channel parameter combinations that reproduce firing patterns of one young and one aged rhesus monkey L3 PFC pyramidal neurons. Parameters were found through an automated optimization method.
Reference:
1 . Rumbell TH, Draguljic D, Yadav A, Hof PR, Luebke JI, Weaver CM (2016) Automated evolutionary optimization of ion channel conductances and kinetics in models of young and aged rhesus monkey pyramidal neurons. J Comput Neurosci 41:65-90 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s): Neocortex L2/3 pyramidal GLU cell;
Channel(s): I Na,p; I Na,t; I A; I K; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium; I_AHP; I Cl, leak;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Ion Channel Kinetics; Parameter Fitting; Detailed Neuronal Models; Aging/Alzheimer`s;
Implementer(s):
Search NeuronDB for information about:  Neocortex L2/3 pyramidal GLU cell; I Na,p; I Na,t; I A; I K; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium; I_AHP; I Cl, leak;
//CONTROLS:
RUN=0
MULOBJ=0
NSDE_COMB_FFS=0
RUNLHS=0
VTRACES=0
IVFI=0	// 0=not running IV/FI protocol; 1=runIV ; 2=runFI;
SA=0
RT=0
NORMFFS=0
SAVEVOLT=0
CVODE=0
NEVOLVER=0
MODEL=1 // 0=destexhe; 1=traub; 2=coskren/full morph (correct folder only)
MRFflag=5 // 0=3act2s; 1=4pass2s; 2=1pass02s; 3=9pass200ms; 4=4act2s; 5=usedatfiles
CELL=2 // 1=May3IR2h; 2=Dec15IR2e; 3=Jun24IR2i
strdef PARENTDIR
PARENTDIR=getcwd()

// initialise the parallelContext()
objref pc
pc = new ParallelContext()

load_file("nrngui.hoc")

// load multiple run fitter
load_file("optmz/mulfit.hoc")

// load neuron model / template
if (MODEL==1) {
	load_file("model/pyr3.hoc")
} else if (MODEL==2) {
	load_file("model/main_CoskrenYadav_basic.hoc")
	//load_file("model/coskrenCell.hoc")
}

load_file("setup/setupMRF.hoc")

// set up the GA (has to be after MRF setup)

// if this is the LHS run...
if ( RUNLHS == 1 ) {
	// set up for LHS ( has to be after MRF setup )
	load_file( "setup/lhs_setup.hoc" )
} else {
	// set up the DE (has to be after MRF setup)
	load_file("setup/de_setup.hoc")
}

// set parameters...
set_conds()
set_kins()
//use unset_active line if we're doing subthreshold optimisation...
pyr3_.unset_active()

// variable step control:
// traub model requires DASPK method:
// note: doesn't seem to work with calculating shape errors, so set 0
if (CVODE) {
	objref cvode
	cvode = new CVode()
	cvode.active(1)
	cvode.use_daspk(1)
}

/*****************************************
 * Custom initialisation proc, if anything 
 * needs doing to this MRF to get a steady 
 * state at t==0
 ****************************************/

proc init() { local dtsav, temp
	//inittime=startsw()
	finitialize(v_init)
	// travel into the past, take large steps forward with implicit 
	// Euler to establish steady voltage, then return to the present
	t  = -2000
	dtsav = dt
	//dt = dtsav*100
	dt = dtsav
	// if cvode is on, turn it off to do large fixed step
	temp = cvode.active()
	if (temp!=0) { cvode.active(0) }
	while (t<0) {
		fadvance()
	}
	// restore cvode if necessary
	if (temp!=0) { cvode.active() }
	dt = dtsav
	t = 0
	tstop=2015
	if (cvode.active()) {
		cvode.re_init()
	} else {
		fcurrent()
	}
	frecord_init()
}

INITDUR = 500 // change this according to what you discover in step 2 above
V0 = -70 // the initial v you want at the current injection site
if ( CELL == 2 ) {
	V0 = -70
} else if ( CELL == 3 ) {
	V0 = -68.5
}

load_file("custominit.hoc")

if ( RUN ) {
	runtime = startsw()
	if ( pc.nhost > 1 ) {
		{ pc.runworker() }
	}
	if ( RUNLHS ) {
		LHS()
	} else if ( MULOBJ ) {
		NSDE()
	} else {
		DE()
	}
	printf( "run time = %g\n" , startsw() - runtime)
	if ( pc.nhost > 1 ) {
		{ pc.done() }
	}
	if ( SAVEVOLT ) {
		//save voltage traces for the final population
		save_voltages()
	} else {
		vt_file.close()
	}
	quit()
} else if ( VTRACES ) {
	LOAD_GENERATION = 1
	init_pop()
	save_voltages()
	quit()
} else if ( IVFI ) {
	LOAD_GENERATION = 1
	init_pop()
	if ( IVFI == 1 ) {
		save_iv()
	} else if (IVFI == 2 ) {
		save_fi()
	}
	quit()
} else if ( SA ) {
	if ( pc.nhost > 1 ) {
		{ pc.runworker() }
	}
	LOAD_GENERATION = 1
	init_pop()
	sensitivity_analysis()
	quit()
} else if ( RT ) {
	if ( pc.nhost > 1 ) {
		{ pc.runworker() }
	}
	random_testing()
	quit()
} else if ( NEVOLVER ) {
	if ( pc.nhost > 1 ) {
		{ pc.runworker() }
	}
	load_file( "setup/nevolver.hoc" )
	load_params_from_nevolver()
	evaluate_once()
	save_fitness_values_for_nevolver()
	quit()
}

Loading data, please wait...