{load_file("nrngui.hoc")} // Standard definitions - NEURON library file
{load_file("setupfiles/defaultvar.hoc")} // Contains the proc definition for default_var proc
{default_var("NumData",100)} // for paired recording, use these synapse weights
strdef cmdstr
objref f2
f2 = new File()
sprint(cmdstr, "datasets/cellnumbers_%g.dat", NumData)
f2.ropen(cmdstr) // Open the celltype
numCellTypes = f2.scanvar // Scan the first line, which contains a number giving the
// # cell types, including stimulating (artificial) cells (still?)
objref celltypestring[numCellTypes], techstring[numCellTypes], cellType[numCellTypes], cell
double cellnumvar[numCellTypes], cellLayerflag[numCellTypes], cellArtflag[numCellTypes]
begintemplate CellCategoryInfo
public cellType_string, technicalType, setCellTypeParams
strdef cellType_string, technicalType
proc setCellTypeParams(){
cellType_string = $s1 // Name of the cell type
technicalType = $s2
}
endtemplate CellCategoryInfo
for i=0, numCellTypes-1 {
celltypestring[i]= new String()
techstring[i] = new String()
f2.scanstr(celltypestring[i].s) // Scan in the cell name
f2.scanstr(techstring[i].s)
cellnumvar[i]=f2.scanvar // Scan in the initial (before sclerosis) number of each cell type
cellLayerflag[i]=f2.scanvar // Scan the layer flag (hilar=2, granular=1, molecular=0), where hilar cells
cellArtflag[i]=f2.scanvar // Scan the layer flag (hilar=2, granular=1, molecular=0), where hilar cells
cellType[i] = new CellCategoryInfo(i) // Make one object for each cell type to store cell type info
cellType[i].setCellTypeParams(celltypestring[i].s, techstring[i].s)
}
DegreeStim=1
strdef cmdstr, tempFileStr
for i = 0, numCellTypes-1 {
if (cellArtflag[i]==0) {
sprint(tempFileStr,"./cells/class_%s.hoc", cellType[i].technicalType) // Concatenate the
load_file(tempFileStr) // Load the file with the template that defines the class
sprint(cmdstr, "cell = new %s(i,i)", cellType[i].technicalType)
{execute1(cmdstr)}
}
}
f2.close
quit()