Neural Query System NQS Data-Mining From Within the NEURON Simulator (Lytton 2006)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:97874
NQS is a databasing program with a query command modeled loosely on the SQL select command. Please see the manual NQS.pdf for details of use. An NQS database must be populated with data to be used. This package includes MFP (model fingerprint) which provides an example of NQS use with the model provided in the modeldb folder (see readme for usage).
Reference:
1 . Lytton WW (2006) Neural Query System: Data-mining from within the NEURON simulator. Neuroinformatics 4:163-76 [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):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Methods;
Implementer(s): Lytton, William [bill.lytton at downstate.edu];
/
NQS_with_example
modeldb
readme.txt *
exp2i.mod *
h.mod *
kadist.mod *
kaprox.mod *
kdrca1.mod *
na3s.mod *
naxn.mod *
netstims.mod *
nmdanet.mod *
vecst.mod *
forfig5A.hoc *
n160.nrn *
orig_mosinit.hoc *
                            
load_file("nrngui.hoc")
cvode_active(1)

dist=14
rel=0.75

nsyn=5
weight=0.02

Rm = 28000
RmDend = Rm/2
RmSoma = Rm
RmAx = Rm

Cm    = 1
CmSoma= Cm
CmAx  = Cm
CmDend = Cm*2

RaAll= 150
RaSoma=150  
RaAx = 50

Vrest = -65
dt = 0.01
gna =  .03
AXONM = 2
gkdr = 0.005
celsius = 35.0  
KMULT =  0.022
KMULTP = 0.022
ghd=0.00005
nash=10

xopen("n160.nrn")             // geometry file

access soma[5]
distance()

tstop=20

objref g, b,c, stim, p, s[nsyn], rsyn[nsyn], nc[nsyn], rc, rd, rs
objref rsynmda[nsyn], ncnmda[nsyn]

b = new VBox()
b.intercept(1)
g = new Graph()
g.size(0,tstop,-70,-10)
g.family(1)
g.addvar("apical[dist].v(rel)",2,2,2*tstop,0,2)
g.xaxis(1)
xpanel(" ",1)
xbutton("current ", "runc()")
xbutton("AMPA", "runa()")
xbutton("AMPA+NMDA", "runm()")
xpanel()
b.intercept(0)
b.map("gasparini et al.", 100,100,250,500)

apical[dist] { 
print distance(rel)
stim= new IClamp(rel)
stim.amp=0
stim.dur=150
stim.del=1
	for i=0, nsyn-1 {
		s[i] = new NetStims(rel)
		s[i].interval=0
		s[i].number = 1
		s[i].start=1.e9
		s[i].noise=0
		rsynmda[i] = new nmdanet(rel)
		rsyn[i] = new Exp2Syn(rel)
		rsyn[i].e=0
		rsyn[i].tau1 = .5
		rsyn[i].tau2 = 1
		nc[i] = new NetCon(s[i],rsyn[i],0,0,4.2e-3)
                ncnmda[i] = new NetCon(s[i],rsynmda[i],0,0,1*0.0035)
	}
}

axon[1] {
                insert nax gbar_nax=gna * AXONM	sh_nax=3
                insert kdr gkdrbar_kdr=gkdr
                insert pas e_pas=Vrest g_pas = 1/RmAx Ra=RaAx cm=CmAx
                insert kap gkabar_kap = KMULTP*0.2
}

axon[0] {   
                insert nax  gbar_nax=gna * AXONM sh_nax=3
                insert kdr  gkdrbar_kdr=gkdr 
                insert pas e_pas=Vrest g_pas = 1/RmAx Ra=RaAx cm=CmAx
                insert kap gkabar_kap = KMULTP*0.2
}

for i=0,NumSoma-1 soma[i] {   
		insert hd ghdbar_hd=ghd	vhalfl_hd=-73
                insert nas  gbar_nas=gna sh_nas=nash ar_nas=1
                insert kdr gkdrbar_kdr=gkdr
                insert kap gkabar_kap = KMULTP
                insert pas e_pas=Vrest g_pas = 1/RmSoma Ra=RaSoma cm=CmSoma
}


for i=0,NumBasal-1 basal[i] {
                insert nas gbar_nas=gna sh_nas=nash ar_nas=1
                insert kdr gkdrbar_kdr=gkdr 
                insert kap gkabar_kap=KMULTP
                insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend
}
                
for i=0,NumApical-1 apical[i] {
              insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll  cm=CmDend
		insert hd ghdbar_hd=ghd
                insert nas sh_nas=nash ar_nas=1	gbar_nas=gna
                insert kdr gkdrbar_kdr=gkdr
		insert kap
		insert kad
		gkabar_kap=0
		gkabar_kad=0

              for (x){ xdist = distance(x)
                if (xdist>500) {xdist=500}
                ghdbar_hd(x) = ghd*(1+3*xdist/100)
                if (xdist > 100){
			if (xdist>300) {ndist=300} else {ndist=xdist}
			sh_nas=nash-8*(ndist-100)/200
			vhalfl_hd(x)=-73-8*(ndist-100)/200
                        gkabar_kad(x) = KMULT*(1+xdist/100)
			gkabar_kap(x)=0
                } else {
			vhalfl_hd(x)=-73
                        gkabar_kap(x) = KMULTP*(1+xdist/100)
			gkabar_kad(x)=0
                	}
              				}
				}


proc init() {
	t=0
        forall {
	v=Vrest
        if (ismembrane("nas") || ismembrane("nax") ) {ena=55}
        if (ismembrane("kdr") || ismembrane("kap") || ismembrane("kad")) {ek=-90}
        if (ismembrane("hd") ) {ehd_hd=-30 }
}
	finitialize(v)
        fcurrent()

        forall {
	for (x) {
		e_pas(x)=v(x)
		if (!ismembrane("hd")){e_pas(x)=e_pas(x)+(ina(x)+ik(x))/g_pas(x)}
		if (ismembrane("hd")) {e_pas(x)=e_pas(x)+(ina(x)+ik(x)+i_hd(x))/g_pas(x)}
}
		}

cvode.re_init()
cvode.event(tstop)
g.begin()
g.plot(t)

}

proc advance() {
	fadvance()
	g.plot(t)
	g.flush()
	doNotify()
}

proc runm() {
apical[dist] {
for i=0, nsyn-1 {
	rsyn[i] = new Exp2Syn(rel)
	rsyn[i].e=0
	rsyn[i].tau1 = .5
	rsyn[i].tau2 = 1
	nc[i] = new NetCon(s[i],rsyn[i],0,0,4.2e-3)
	ncnmda[i].weight = 1*0.015
	}
}
g.erase()
g.color(1)
g.label(0.5,0.8,"dt = .1")
	for i=0, nsyn-1 {s[i].start=1+i*.1}
run()

g.color(2)
g.label(0.5,0.75,"dt = 0.2")
	for i=0, nsyn-1 {s[i].start=1+i*0.2}
run()

g.color(3)
g.label(0.5,0.7,"dt = 0.5")
	for i=0, nsyn-1 {s[i].start=1+i*0.5}
run()

g.color(4)
g.label(0.5,0.65,"dt = 1")
	for i=0, nsyn-1 {s[i].start=1+i*1}
run()
}

proc runa() {
apical[dist] {
for i=0, nsyn-1 {
	rsyn[i] = new Exp2Syn(rel)
	rsyn[i].e=0
	rsyn[i].tau1 = .5
	rsyn[i].tau2 = 1
	nc[i] = new NetCon(s[i],rsyn[i],0,0,5.2e-3)
	ncnmda[i].weight = 0*0.015
	}
}
g.erase()
g.color(1)
g.label(0.5,0.8,"dt = .1")
	for i=0, nsyn-1 {s[i].start=1+i*.1}
run()

g.color(2)
g.label(0.5,0.75,"dt = 0.2")
	for i=0, nsyn-1 {s[i].start=1+i*0.2}
run()

g.color(3)
g.label(0.5,0.7,"dt = 0.5")
	for i=0, nsyn-1 {s[i].start=1+i*0.5}
run()

g.color(4)
g.label(0.5,0.65,"dt = 1")
	for i=0, nsyn-1 {s[i].start=1+i*1}
run()
}

proc runc() {
apical[dist] {
for i=0, nsyn-1 {
	rsyn[i] = new Exp2i(rel)
	rsyn[i].tau1 = .5
	rsyn[i].tau2 = 1
	nc[i] = new NetCon(s[i],rsyn[i],0,0,.24)
	ncnmda[i].weight = 0*0.015
	}
}
g.erase()
g.color(1)
g.label(0.5,0.8,"dt = .1")
	for i=0, nsyn-1 {s[i].start=1+i*.1}
run()

g.color(2)
g.label(0.5,0.75,"dt = 0.2")
	for i=0, nsyn-1 {s[i].start=1+i*0.2}
run()

g.color(3)
g.label(0.5,0.7,"dt = 0.5")
	for i=0, nsyn-1 {s[i].start=1+i*0.5}
run()

g.color(4)
g.label(0.5,0.65,"dt = 1")
	for i=0, nsyn-1 {s[i].start=1+i*1}
run()
}