strdef base base = "BOTH_85" // Modify the name to include conductance type and RMP v_init = -85 // choose an RMP (typically -55 to -85, in 5 mV steps) AMPAmax=0.0005 // choose an AMPA conductance (typically 0 or 500 pS) NMDAmax=0.001 // choose an NMDA conductance (typically 0 or 1 nS) dt = 0.01 steps_per_ms = 100 tstop = 200 create soma create dend create spine_head[1000] create spine_neck[1000] create iseg[40] create axon // v_init = -85 // resting membrane potential celsius=37 // nominal temperature of simulation Ri=100 // internal resistivity in ohm-cm Cm=1.0 // specific membrane capacitance in uF/cm^2 Rm=15000 // specific membrane resistivity in ohm/cm^2 //edited on August 2, 2020 to remove all "insert" conductances [na, k] everywhere soma { nseg = 3 diam = 10 L = 20 connect iseg[0](0), 0 } for i = 0, 39 { iseg[i] { nseg = 1 diam = 2 - (1.5*(i/40)) L = 1 if (i<39) connect iseg[i+1](0), 1 if (i==39) connect axon(0),1 } } axon { nseg = 201 L = 2000 diam = .5 } dend { nseg = 1001 diam(0:1) = 5:1 L = 1000 connect soma(1), 0 } access soma distance() for i = 0, 999 { //Adding spines for every micron g = (i+1)/1000 dend connect spine_neck[i](0), g spine_neck[i] connect spine_head[i](0),1 spine_neck[i] {nseg=1 L=1 diam=0.0504573} spine_head[i] {nseg=1 L=0.5 diam=0.5} } forall { insert pas g_pas = 1/Rm cm = Cm Ra = Ri e_pas = v_init } access soma objref somavec, dendvec, Acondvec, Ncondvec, savsoma, savdend, savAcond, savNcond, somamatrix, dendmatrix, Acondmatrix, Ncondmatrix somavec = new Vector() dendvec = new Vector() Acondvec = new Vector() Ncondvec = new Vector() savsoma = new File() savdend = new File() savAcond = new File() savNcond = new File() somamatrix = new Matrix(2000,101) dendmatrix = new Matrix(2000,101) Acondmatrix = new Matrix(2000,101) Ncondmatrix = new Matrix(2000,101) strdef fName sprint(fName, "Soma_%s.dat", base) savsoma.wopen(fName) sprint(fName, "Dend_%s.dat", base) savdend.wopen(fName) sprint(fName, "AMPAcond_%s.dat", base) savAcond.wopen(fName) sprint(fName, "NMDAcond_%s.dat", base) savNcond.wopen(fName) objref AMPA, NMDA for i = 0,100 { if (i==0) { q = 1 } else { q = ((i*10)-1) } spine_head[q] AMPA = new syn_g(1) spine_head[q] NMDA = new nmda(1) AMPA.onset = 2 AMPA.gmax = AMPAmax NMDA.onset = 2 NMDA.gmax = NMDAmax p = q/999 somavec.record(&soma.v(0.5),0.1) dendvec.record(&dend.v(p),0.1) Acondvec.record(&A.g, 0.1) Ncondvec.record(&NMDA.g, 0.1) init() while (t