Library of biophysically detailed striatal projection neurons (Lindroos and Hellgren Kotaleski 2020)

 Download zip file 
Help downloading and running models
Accession:266775
Library of compartmentalized models used to investigate dendritic integration in striatal projection neurons under neuromodulation.
Reference:
1 . Lindroos R, Hellgren Kotaleski J (2020) Predicting complex spikes in striatal projection neurons of the direct pathway following neuromodulation by acetylcholine and dopamine. Eur J Neurosci [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Synapse;
Brain Region(s)/Organism: Striatum; Hippocampus; Basal ganglia;
Cell Type(s): Neostriatum medium spiny direct pathway GABA cell; Neostriatum medium spiny indirect pathway GABA cell; Striatal projection neuron;
Channel(s): I M; I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): Acetylcholine; Dopamine;
Simulation Environment: NEURON; Python;
Model Concept(s): Active Dendrites; Detailed Neuronal Models; Neuromodulation; Synaptic Plasticity; Activity Patterns; Soma-dendrite cross-talk;
Implementer(s): Lindroos, Robert [robert.lindroos at ki.se]; Filipovic, Marko;
Search NeuronDB for information about:  Neostriatum medium spiny direct pathway GABA cell; Neostriatum medium spiny indirect pathway GABA cell; I M; I Potassium; Acetylcholine; Dopamine;
/
lib
mechanisms
single
bk.mod *
cadyn.mod *
cal12.mod
cal13.mod
caldyn.mod *
can.mod
car.mod
cav32.mod
cav33.mod
gaba.mod
glutamate.mod
Im.mod *
kaf.mod
kas.mod
kdr.mod *
kir.mod
naf.mod
sk.mod
vecevent.mod *
                            
:  Vector stream of events

NEURON {
	THREADSAFE
	ARTIFICIAL_CELL VecStim
	POINTER ptr
}

ASSIGNED {
	index
	etime (ms)
	ptr
}


INITIAL {
	index = 0
	element()
	if (index > 0) {
		net_send(etime - t, 1)
	}
}

NET_RECEIVE (w) {
	if (flag == 1) {
		net_event(t)
		element()
		if (index > 0) {
			net_send(etime - t, 1)
		}
	}
}

DESTRUCTOR {
VERBATIM
	void* vv = (void*)(_p_ptr);  
        if (vv) {
		hoc_obj_unref(*vector_pobj(vv));
	}
ENDVERBATIM
}

PROCEDURE element() {
VERBATIM	
  { void* vv; int i, size; double* px;
	i = (int)index;
	if (i >= 0) {
		vv = (void*)(_p_ptr);
		if (vv) {
			size = vector_capacity(vv);
			px = vector_vec(vv);
			if (i < size) {
				etime = px[i];
				index += 1.;
			}else{
				index = -1.;
			}
		}else{
			index = -1.;
		}
	}
  }
ENDVERBATIM
}

PROCEDURE play() {
VERBATIM
	void** pv;
	void* ptmp = NULL;
	if (ifarg(1)) {
		ptmp = vector_arg(1);
		hoc_obj_ref(*vector_pobj(ptmp));
	}
	pv = (void**)(&_p_ptr);
	if (*pv) {
		hoc_obj_unref(*vector_pobj(*pv));
	}
	*pv = ptmp;
ENDVERBATIM
}

Loading data, please wait...