Striatal Spiny Projection Neuron (SPN) plasticity rule (Jedrzejewska-Szmek et al 2016)

 Download zip file 
Help downloading and running models
Accession:189153

Reference:
1 . Jedrzejewska-Szmek J, Damodaran S, Dorman DB, Blackwell KT (2017) Calcium dynamics predict direction of synaptic plasticity in striatal spiny projection neurons. Eur J Neurosci 45:1044-1056 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Dendrite;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s): AMPA; NMDA; GabaA;
Gene(s):
Transmitter(s): Glutamate;
Simulation Environment: GENESIS;
Model Concept(s): Calcium dynamics; Synaptic Plasticity;
Implementer(s): Jedrzejewska-Szmek, Joanna ; Damodaran, Sriraman ; Dorman, Daniel B ; Blackwell, Avrama [avrama at gmu.edu];
Search NeuronDB for information about:  GabaA; AMPA; NMDA; Glutamate;
import glob
import numpy as np

fname_bases = ['Fino_UI_Pre_tertdend1_1_randseed_5757538_high_res_no_gaba_Stim_tertdend1_1_AP_1_ISI',
               'No_L_Fino_UI_Pre_tertdend1_1_randseed_5757538_high_res_no_gaba_Stim_tertdend1_1_AP_1_ISI',
               'No_NMDA_Fino_UI_Pre_tertdend1_1_randseed_5757538_high_res_no_gaba_Stim_tertdend1_1_AP_1_ISI',
               'P_and_K_UI_Pre_tertdend1_1_randseed_5757538_high_res_no_gaba_Stim_tertdend1_1_AP_3_ISI',
               'No_L_P_and_K_UI_Pre_tertdend1_1_randseed_5757538_high_res_no_gaba_Stim_tertdend1_1_AP_3_ISI',
               'No_NMDA_P_and_K_UI_Pre_tertdend1_1_randseed_5757538_high_res_no_gaba_Stim_tertdend1_1_AP_3_ISI'
]

th_lo = 0.2e-3
th_hi = 0.46e-3
def duration(data,dt):
   
    how_long_hi = 0
    how_long_lo = 0
    how_longhi = []
    how_longlo = []
    for i, ca in enumerate(data):
        if ca > th_hi:
            how_long_hi += dt
            if how_long_lo > 0:
                how_longlo.append(how_long_lo)
                how_long_lo = 0
        elif ca <=th_hi and ca > th_lo:
            how_long_lo += dt
            if how_long_hi > 0:
                how_longhi.append(how_long_hi)
                how_long_hi = 0
        else:
            if how_long_hi > 0:
                how_longhi.append(how_long_hi)
                how_long_hi = 0
            if how_long_lo > 0:
                how_longlo.append(how_long_lo)
                how_long_lo = 0
    print how_longhi, how_longlo
    if how_longhi == []:
        m_how_longhi = 0
    else:
        m_how_longhi = max(how_longhi)
        
    if how_longlo == []:
        m_how_longlo = 0
    else:
        m_how_longlo = max(how_longlo)
    return m_how_longhi, m_how_longlo



        
def get_fnames(fname_base):
    lista = glob.glob(fname_base+'*')
    result = []
    for l in lista:
        if l.endswith('spine_plasticity_spine_1_head_Ca1.txt'):
            result.append(l)

    return result
def find_isi(fname):
    return float(fname.split('ISI_')[-1].split('_')[0])
if __name__ == '__main__':
    for fname_base in fname_bases:
        fnames = get_fnames(fname_base)
        fnames.sort()
        res = np.zeros((len(fnames),5))
        for i,fname in enumerate(fnames):
            print fname
            res[i,0] = find_isi(fname)
            f = open(fname)
            header = f.readline().split()
            data = np.loadtxt(f)
            which = [j for j,x in enumerate(header) if 'weight' in x][0]
            which2 = [j for j,x in enumerate(header) if 'Ca' in x][0]
            dt = data[1,0]-data[0,0]
            long_hi,long_lo = duration(data[:,which2],dt)
            res[i,1] = data[-1,which]
            res[i,2] =  data[:,which2].max()
            res[i,3] = long_hi
            res[i,4] = long_lo
        #print res
        print fname_base+'s.txt'
        np.savetxt(fname_base+'s.txt',res,comments='',header='ISI weight')

Loading data, please wait...