Multiscale simulation of the striatal medium spiny neuron (Mattioni & Le Novere 2013)

 Download zip file   Auto-launch 
Help downloading and running models
"… We present a new event-driven algorithm to synchronize different neuronal models, which decreases computational time and avoids superfluous synchronizations. The algorithm is implemented in the TimeScales framework. We demonstrate its use by simulating a new multiscale model of the Medium Spiny Neuron of the Neostriatum. The model comprises over a thousand dendritic spines, where the electrical model interacts with the respective instances of a biochemical model. Our results show that a multiscale model is able to exhibit changes of synaptic plasticity as a result of the interaction between electrical and biochemical signaling. …"
1 . Mattioni M, Le Novère N (2013) Integration of biochemical and electrical signaling-multiscale model of the medium spiny neuron of the striatum. PLoS One 8:e66811 [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;
Cell Type(s): Neostriatum medium spiny direct pathway GABA cell;
Channel(s): I Na,p; I Na,t; I T low threshold; I A; I K,Ca; I CAN; I Calcium; I A, slow; I Krp; I R; I Q;
Gap Junctions:
Gene(s): Kv4.2 KCND2; Kv1.2 KCNA2; Cav1.3 CACNA1D; Cav1.2 CACNA1C; Kv2.1 KCNB1;
Simulation Environment: NEURON; Python;
Model Concept(s): Synaptic Plasticity; Signaling pathways; Calcium dynamics; Multiscale;
Implementer(s): Mattioni, Michele [mattioni at];
Search NeuronDB for information about:  Neostriatum medium spiny direct pathway GABA cell; I Na,p; I Na,t; I T low threshold; I A; I K,Ca; I CAN; I Calcium; I A, slow; I Krp; I R; I Q;
# Author Michele Mattioni   
# Tue Oct  6 08:01:52 BST 2009

class Stimul(object):
    """Store the inputs we are going to deliver to the different synapses"""
    def __init__(self, time, number, interval, chan_type, noise=0):
        Initialize the stimul class
        time: first time the input is deployed, in seconds
        number: numbers of repetition of the pulses
        interval: Interval between the pulses. In seconds
        chan_type: the type (AMPA or NMDA)
        self.time = time * 1e3 
        self.number = number
        self.chan_type = chan_type
        self.noise = noise
        self.interval = interval * 1e3
#        self.spine = None #Used for logging
    def get_stims_time(self):
        Calculate the list of all the stims time.
        Return the list of all the stimul applied in this stimuli.
        stims_time = []
        for i in range(self.number):
            if not stims_time: 
                stims_time.append(self.time + self.interval)
            else: #List contains at least one el. Adding from there.
                stims_time.append(stims_time[-1] + self.interval)
        return stims_time
    def to_log(self):
        s = "spine %s, time %s [ms], number %s\n" %(self.spine, self.time, self.number)
        return s