Duration-tuned neurons from the inferior colliculus of vertebrates (Aubie et al. 2012)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144511
These models reproduce the responses of duration-tuned neurons in the auditory midbrain of the big brown bat, the rat, the mouse and the frog (Aubie et al. 2012). They are written in the Python interface to NEURON and a subset of the figures from Aubie et al. (2012) are pre-set in run.py (raw data is generated and a separate graphing program must be used to visualize the results).
Reference:
1 . Aubie B, Sayegh R, Faure PA (2012) Duration tuning across vertebrates. J Neurosci 32:6373-90 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Inferior Colliculus;
Cell Type(s):
Channel(s): I Sodium; I Potassium;
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON; Python;
Model Concept(s): Coincidence Detection; Simplified Models; Sensory processing; Duration Selectivity; Audition;
Implementer(s): Aubie, Brandon [aubiebn at mcmaster.ca];
Search NeuronDB for information about:  GabaA; AMPA; NMDA; I Sodium; I Potassium; Gaba; Glutamate;
import simulations as sims
import neuron
import network
import sys
import netshow as ns


###############################################################
# Uncomment the netdef, modify and base_filename lines for the
# simulation you wish to run (and add #'s to all others)
###############################################################

# Default Model (Figure 3)
netdef = network.DTN_CoincidenceSimple
modify = sims.C_DEFAULT
base_filename = "c_default"

# BAT (Figure 9)
#netdef = network.DTN_CoincidenceSimple
#modify = sims.C_BAT_JUN2
#base_filename = "c_bat"

# RAT (Figure 10)
# netdef = network.DTN_CoincidenceSimpleEarly
# modify = sims.C_RAT
# base_filename = "c_rat"

# MOUSE (Figure 11)
# netdef = network.DTN_CoincidenceSimple
# modify = sims.C_MOUSE_SP
# base_filename = "c_mouse"

# FROG (Figure 12)
# netdef = network.DTN_CoincidenceSimple
# modify = sims.C_ANURANS
# base_filename = "c_anurans"

# Look in simulations.py for additional simulations available
# such as C_ONSET to test latencies, C_AMPA to test AMPA conductances,
# C_NMDA to test NMDA conductances, etc.

###############################################################

# Setup the simulation options
# Define Paramters
ShowMean = False
ShowVoltage = False
ShowSpikes = False
ShowConductance = False

SaveFSL = True
SaveMean = True
SaveSpikes = False

SaveVoltage = False
SaveConductance = False
SaveCurrent = False

#tosave = [["IC","soma"],["MSO_ON","soma"],["MSO_OFF","soma"]]
#tosave = [["IC","soma"],["DNLL","soma"]]
tosave = [["IC","soma"]]






#####
# EVERY BELOW HERE SHOULD NOT NEED TO BE MODIFIED

[repeats,sim_time,stims,param] = modify(None,None,None,True)
total = len(stims)*len(param)*repeats

# Setup and run simulations in parallel
pc = neuron.h.ParallelContext()
numProcs = int(pc.nhost())
if pc.id() == 0:
    print "Running "+str(total)+ " simulations via "+str(numProcs)+" processes..."
ret = []
pc.runworker()
for i in range(numProcs):
    pc.submit(sims.run,netdef,tosave,modify,numProcs,i,stims,param,repeats,sim_time,SaveSpikes or ShowSpikes or ShowMean or SaveMean or SaveFSL,ShowVoltage or SaveVoltage,SaveConductance or ShowConductance,SaveCurrent)
while pc.working():
    ret.append(pc.pyret())
pc.done()
print "Simulation complete.  Post processing."

# Combine all of the results together
savedparams = []
savedcells = []
for i in range(numProcs):
    for r in ret:
        if r[0] == i:
            savedparams += r[1]
            savedcells += r[2]
class Network:
    def __init__(self):
        savedparams = []
        savedcells = []
net = Network()
net.savedparams = savedparams
net.savedcells = savedcells


# Plot the mean number of spikes
if ShowMean:
    ns.plot_mean_spikes(net, "IC-soma")
    ns.show()

if SaveMean:
    ns.save_mean_spikes(net, "IC-soma", param, base_filename+"_mean.dat")
#    ns.save_mean_spikes(net, "DNLL-soma", param, base_filename+"_DNLL_mean.dat")

if SaveSpikes:
    for a in param:
        ns.save_spikes(net, "IC-soma", a, base_filename+"_spikes_"+ns.list_to_string(a)+".dat", repeats)

if SaveFSL:
    ns.save_fsl(net, "IC-soma", param, base_filename+"_fsl.dat", repeats)

if SaveVoltage:
    for d in stims:
        for a in param:
            key = [a,d]
            ns.save_voltage(net, ["IC-soma", "MSO_ON-soma", "MSO_OFF-soma"], key, base_filename+"_voltage_s_"+str(d)+"_a_"+str(a)+".dat")

if SaveConductance:
    for d in stims:
        for a in param:
            key = [a,d]
            ns.save_conductance(net, "IC-soma", ["AMPA","NMDA","GABAa"], key, base_filename+"_conductance_s_"+str(d)+"_a_"+str(a)+".dat")

if SaveCurrent:
    for d in stims:
        for a in param:
            key = [a,d]
            ns.save_current(net, "IC-soma", ["AMPA","NMDA","GABAa"], key, base_filename+"_current_s_"+str(d)+"_a_"+str(a)+".dat")




# Plot the voltage traces
if ShowVoltage:
    count = 0
    for d in stims:
        count += 1
        ns.subplot(len(stims),1,count)
        for a in param:
            key = [a,d]
            ns.plot_voltage(net, "IC-soma", key)
    ns.legend()
    ns.show()

# Plot the condutance
if ShowConductance:
    count = 0
    for d in stims:
        count += 1
        ns.subplot(len(stims),1,count)
        for a in param:
            key = [a,d]
            ns.plot_conductance(net, "IC-soma", "GABAa", key)
    ns.legend()
    ns.show()



neuron.h.quit()


Loading data, please wait...