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

 Download zip file   Auto-launch 
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]
Citations  Citation Browser
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;
/***********************************************************************
 * setupGenerators.hoc
 * Generic instructions to set up the generators in a multiple run
 * fitter. Needs to have a list of the data files used as the existing
 * data to be matched to already specified in a Lists called gener.
 * 
 **********************************************************************/

// List of strings holding the stimulus amplitudes
objref stimAmpList
stimAmpList = new List()
objref numFFsInGen
numFFsInGen = new Vector()

// Load generator information according to generators.dat file, format:
//	Name				stimAmp
//	name1				stimAmp1
//	...					...
//	nameN				stimAmpN

objref gendat_file
gendat_file = new File()
if (CELL==2) {
	gendat_file.ropen( "setup/generators_y.dat" )
} else if (CELL==3) {
	gendat_file.ropen( "setup/generators_a.dat" )
}
strdef dummy
for i = 1,3 {
	gendat_file.scanstr( dummy )
}
while ( !gendat_file.eof() ) {
	gendat_file.scanstr( dummy )
	sprint(xstr,"%s/%s_%s",cellname,cellname,dummy)
	gener.append( new String( xstr ) )
	gendat_file.scanstr( dummy )
	stimAmpList.append( new String( dummy ) )
	numFFsInGen.append( gendat_file.scanvar() )
}
gendat_file.close()

// Ready fitness function file for input:
objref fitfunc_file
fitfunc_file = new File()
if (CELL==2) {
	fitfunc_file.ropen( "setup/fitnessfunctions_y.dat" )
} else if (CELL==3) {
	fitfunc_file.ropen( "setup/fitnessfunctions_a.dat" )
}
for i=1,9 {
	fitfunc_file.scanstr( dummy )
}
// Load fitness function information into the generators, in generatorMouldNew
gen = 0
while ( gen < gener.count() ) {
	xopen( "setup/generatorMoulds/generatorMouldNew.hoc" )
	gen = gen + 1
}

/*************************
 * Done making generators.
 ************************/

/**
 * Make file holding names of generator files - for use in analysis
 * Format:
 * gener.count() x 	{ Paths to files used in generators
 * 					{ Tstart
 * 					{ Tend
 * 					{ spikeWinStart
 * 					{ spikeWinEnd	
 * traceToUseForFirstSpikes
 * 
 * Need to find a flexible way of setting this up such that appropriate
 * analysis can be run given which fitness functions are present in 
 * each generator.
 * Also need some logic to figure out which one to use for firstSpikes.
 */

//initialise the gener file:
objref gener_file
gener_file = new File()
sprint( xstr, "%soutput/geners.dat", PARENTDIR )
gener_file.wopen( xstr )
for i = 0 , gener.count()-1 {
	gener_file.printf( "%s.dat\n" , gener.o(i).s )
}
gener_file.printf( "%s: %d\n" , "Tend" , 2015 )
gener_file.printf( "%s: %d\n" , "spikeWinStart" , -10 )//fitParams1.x[0] )
gener_file.printf( "%s: %d\n" , "spikeWinEnd" , 70 )//fitParams2.x[0] )
gener_file.printf( "%s: %d\n" , "spikeZoomStart" , -2 )
gener_file.printf( "%s: %d\n" , "spikeZoomEnd" , 3 )
gener_file.printf( "%s: %d\n" , "termCritLevel" , 100 )
traceToUseForFirstSpikes = 2
gener_file.printf( "%s: %d\n" , "traceToUseForFirstSpikes" , \
				   traceToUseForFirstSpikes )
gener_file.close()

// function to return all error values from all generators
obfunc get_error_values() { local i , j		localobj errorVec

	errorVec = new Vector()
	for i = 0 , gener.count()-1 {
		for j = 0 , MRF.p.pf.generatorlist.object(i).gen.fitnesslist.count()-1 {
			errorVec.append( \
			MRF.p.pf.generatorlist.object(i).gen.fitnesslist.object(j).error )
		}
	}
	return errorVec
}