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

 Download zip file   Auto-launch 
Help downloading and running models
Library of compartmentalized models used to investigate dendritic integration in striatal projection neurons under neuromodulation.
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]
Citations  Citation Browser
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:
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]; 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;
# Minimal example on how to use the model libraries used in:
#   Lindroos & Hellgren Kotaleski 2020

from   neuron           import h
import MSN_builder          as build
import pickle
import matplotlib.pyplot    as plt

# Load model mechanisms
import neuron               as nrn


# specs
specs = {'dspn': {
                    'N': 71,
                    'lib': 'Libraries/D1_71bestFit_updRheob.pkl',
                    'par': 'params_dMSN.json',
                    'morph': 'Morphologies/WT-dMSN_P270-20_1.02_SGA1-m24.swc'},
         'ispn': {
                    'N': 34,
                    'lib': 'Libraries/D2_34bestFit_updRheob.pkl',
                    'par': 'params_iMSN.json',
                    'morph': 'Morphologies/WT-iMSN_P270-09_1.01_SGA2-m1.swc'}

# chose cell type ('ispn' or 'dspn') and model id(s) to simulate
cell_type         = 'dspn'    # 'dspn'/'ispn'
model_iterator    = range(5)  # range(specs[cell_type]['N']) gives all models

# open library (channel distributions etc)   
with open(specs[cell_type]['lib'], 'rb') as f:
    model_sets = pickle.load(f, encoding="latin1")

# simulate model(s)
OUT = {}
for cell_index in model_iterator: 
    # initiate cell
    cell = build.MSN(  params=specs[cell_type]['par'],
                       variables=model_sets[cell_index]['variables']   )
    # set current injection
    rheobase        =   model_sets[cell_index]['rheobase']
    Istim           =   h.IClamp(0.5, sec=cell.soma)
    Istim.delay     =   100
    Istim.dur       =   1000
    Istim.amp       =   (rheobase) *1e-3
    # record vectors
    tm  = h.Vector()
    vm  = h.Vector()
    # run simulation
    # run simulation
    while h.t < 1000:
    OUT[cell_index] = {'tm':tm.to_python(), 'vm':vm.to_python, 'rheo':rheobase}

# plot
for cell_index in OUT:       
    plt.plot(OUT[cell_index]['tm'], OUT[cell_index]['vm'], \
        label='mdl:{} rhb:{:.0f}'.format(cell_index,OUT[cell_index]['rheo']))