Пример #1
0
def chirpForMulti(invar):
    sec_num, loc, filename = invar
    from getCells import HayCell
    pt_cell = HayCell()
    seg = pt_cell.apic[sec_num](loc)
    from neuron import h
    for sec in h.allsec():
        try:
            sec.uninsert('SK_E2')
        except:
            pass
    from chirpUtils import applyChirp, getChirp
    amp = 0.0025
    f0, f1, t0, Fs, delay = 0.5, 20, 20, 1000, 5  # for looking at bimodal leading phase response in Hay cell
    I, t = getChirp(f0, f1, t0, amp, Fs, delay)
    print('running chirp on ' + str(seg))
    applyChirp(I,
               t,
               seg,
               pt_cell.soma[0](0.5),
               t0,
               delay,
               Fs,
               f1,
               out_file_name=filename)
Пример #2
0
def chirpForMulti(invar):
    model, sec_num, loc, filename = invar
    if model == 'kole':
        from getCells import KoleCell
        cell, _ = KoleCell()
        seg = cell.apic[sec_num](loc)
        soma_seg = cell.soma(0.5)
    if model == 'kolenoim':
        from getCells import KoleCell
        cell, _ = KoleCell()
        from neuron import h 
        for sec in h.allsec():
            try:
                sec.uninsert('Km')
            except:
                pass
        seg = cell.apic[sec_num](loc)
        soma_seg = cell.soma(0.5)
    elif model == 'neymotinkole':
        from getCells import NeymotinKoleCell
        cell = NeymotinKoleCell()
        seg = cell.apic[sec_num](loc)
        soma_seg = cell.soma(0.5)
    elif model == 'neymotinharnett':
        from getCells import NeymotinHarnettCell
        cell = NeymotinHarnettCell()
        seg = cell.apic[sec_num](loc)
        soma_seg = cell.soma(0.5)
    elif model == 'neymotinmigliore':
        from getCells import NeymotinMiglioreCell
        cell = NeymotinMiglioreCell()
        seg = cell.apic[sec_num](loc)
        soma_seg = cell.soma(0.5)
    elif model == 'hay':
        from getCells import HayCell
        cell, _ = HayCell()
        seg = cell.apic[sec_num](loc)
        soma_seg = cell.soma[0](0.5)
    elif model == 'ackerantic':
        from getCells import AckerAnticCell
        cell = AckerAnticCell()
        seg = cell.apical[sec_num](loc)
        soma_seg = cell.soma[0](0.5)
    elif model == 'haymig':
    	from getCells import HayCellMig
    	cell, _ = HayCellMig()
    	seg = cell.apic[sec_num](loc)
    	soma_seg = cell.soma[0](0.5)

    from chirpUtils import applyChirp, getChirp
    amp = 0.025
    f0, f1, t0, Fs, delay = 0.5, 10, 10, 1000, 5 # for looking at bimodal leading phase response in Hay cell
    I, t = getChirp(f0, f1, t0, amp, Fs, delay)
    print('running chirp on ' + str(seg))
    applyChirp(I, t, seg, soma_seg, t0, delay, Fs, f1, out_file_name=filename)
    
    print(str(sec) + ' ' + str(loc) + ': done')
Пример #3
0
def chirpForMulti(invar):
    model, sec_num, loc, filename = invar
    cell = HayCellSWC('../suter_shepherd/' + model)
    seg = cell.apic[sec_num](loc)
    soma_seg = cell.soma[0](0.5)
    from chirpUtils import applyChirp, getChirp
    amp = 0.025
    f0, f1, t0, Fs, delay = 0.5, 10, 10, 1000, 5  # for looking at bimodal leading phase response in Hay cell
    I, t = getChirp(f0, f1, t0, amp, Fs, delay)
    print('running chirp on ' + str(seg))
    applyChirp(I, t, seg, soma_seg, t0, delay, Fs, f1, out_file_name=filename)

    print(str(seg) + ': done')
Пример #4
0
def chirpForMulti(invar):
    sec_num, loc, filename = invar
    from getCells import M1Cell
    s = M1Cell()
    seg = s.net.cells[0].secs[sec_num]['hObj'](loc)
    soma_seg = s.net.cells[0].secs['soma']['hObj'](0.5)

    from chirpUtils import applyChirp, getChirp
    amp = 0.025
    f0, f1, t0, Fs, delay = 0.5, 10, 10, 1000, 5  # for looking at bimodal leading phase response in Hay cell
    I, t = getChirp(f0, f1, t0, amp, Fs, delay)
    print('running chirp on ' + str(seg))
    applyChirp(I, t, seg, soma_seg, t0, delay, Fs, f1, out_file_name=filename)

    print(str(seg) + ': done')
Пример #5
0
pt_cell = AllenCell(path='497233139')

## specify stimulated section and soma segment
secList = [
    pt_cell.apical[30], pt_cell.apical[20], pt_cell.apical[10],
    pt_cell.apical[5], pt_cell.basal[10]
]  #, pt_cell.apic[65]]
soma_seg = pt_cell.soma[0](0.5)

# define current stimulus
from chirpUtils import applyChirp
from chirpUtils import getChirp
amp = 0.0025
f0, f1, t0, Fs, delay = 0.5, 50, 50, 1000, 12  # original for all cells
# f0, f1, t0, Fs, delay = 0.5, 100, 100, 1000, 5 # for looking at bimodal leading phase response in Hay cell
I, t = getChirp(f0, f1, t0, amp, Fs, delay)

# define output variables

#main loop
for sec in secList:
    nseg = sec.nseg
    if nseg == 1:
        loc = 0.5
        applyChirp(
            I,
            t,
            sec(loc),
            soma_seg,
            t0,
            delay,
Пример #6
0
sec_num = 'apic_20' # indicates stimulated section
loc = 0.5 # indicates stimulated compartment (0-1)
seg = s.net.cells[0].secs[sec_num]['hObj'](loc)
soma_seg = s.net.cells[0].secs['soma']['hObj'](0.5)

## record voltages
from neuron import h, gui
soma_v = h.Vector().record(soma_seg._ref_v)
dend_v = h.Vector().record(seg._ref_v)
time = h.Vector().record(h._ref_t)

## parameters of the chirp stimulus
from chirpUtils import applyChirp, getChirp
amp = 0.025 # amplitude of chirp stim
f0, f1, t0, Fs, delay = 0.5, 20, 20, 1000, 5 # initial and final frequencies, duration, sampling freq, delay
I, t = getChirp(f0, f1, t0, amp, Fs, delay) # defines current clamp

## run simulation
print('Running chirp on ' + str(seg))
out = applyChirp(I, t, seg, soma_seg, t0, delay, Fs, f1)

## plotting 
from matplotlib import pyplot as plt 
### traces
trace_fig = plt.figure(figsize=(8,10))
plt.subplot(3,1,1)
plt.plot(t,I)
plt.title('Chirp Sitmulation', fontsize=14)
plt.ylabel('Current (mA)', fontsize=14)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
def chirpForMulti(invar):
    sec_num, loc, filename = invar
    from getCells import AllenCell
    pt_cell = AllenCell('./497232419')
    seg = pt_cell.apical[sec_num](loc)
    from neuron import h
    for sec in h.allsec():
        try:
            sec.uninsert('SK')
        except:
            pass
    from chirpUtils import applyChirp, getChirp
    amp = 0.0025
    f0, f1, t0, Fs, delay = 0.5, 20, 20, 1000, 5
    I, t = getChirp(f0, f1, t0, amp, Fs, delay)
    print('running chirp on ' + str(seg))
    # applyChirp(I, t, seg, pt_cell.soma[0](0.5), t0, delay, Fs, f1, out_file_name=filename)
    out = applyChirp(I, t, seg, pt_cell.soma[0](0.5), t0, delay, Fs, f1)
    ZinResAmp = []
    ZinResFreq = []
    ZcResAmp = []
    ZcResFreq = []
    dist = []
    QfactorIn = []
    QfactorTrans = []
    fVarIn = []
    fVarTrans = []
    ZinPeakPhaseFreq = []
    ZinLeadPhaseBW = []
    ZinLeadPhaseMinFreq = []
    ZinSynchFreq = []
    ZinLeadPhaseBool = []
    ZcPeakPhaseFreq = []
    ZcLeadPhaseBW = []
    ZcLeadPhaseMinFreq = []
    ZcSynchFreq = []
    ZcLeadPhaseBool = []
    ZinResAmp.append(out['ZinResAmp'])
    ZinResFreq.append(out['ZinResFreq'])
    ZcResAmp.append(out['ZcResAmp'])
    ZcResFreq.append(out['ZcResFreq'])
    dist.append(out['dist'])
    QfactorIn.append(out['QfactorIn'])
    QfactorTrans.append(out['QfactorTrans'])
    fVarIn.append(out['fVarIn'])
    fVarTrans.append(out['fVarTrans'])

    freqs = out['Freq'][np.argwhere(out['ZinPhase'] > 0)]
    if len(freqs) > 0:
        ZinPeakPhaseFreq.append(out['Freq'][np.argwhere(
            out['ZinPhase'] == np.max(out['ZinPhase']))])
        ZinLeadPhaseBW.append(freqs[-1] - freqs[0])
        ZinLeadPhaseMinFreq.append(freqs[0])
        ZinSynchFreq.append(freqs[-1])
        ZinLeadPhaseBool.append(out['ZinPhase'] > 0)
    else:
        ZinPeakPhaseFreq.append(nan)
        ZinLeadPhaseBW.append(0)
        ZinLeadPhaseMinFreq.append(nan)
        ZinSynchFreq.append(nan)
        ZinLeadPhaseBool.append(out['ZinPhase'] > 0)

    freqs = out['Freq'][np.argwhere(out['ZcPhase'] > 0)]
    if len(freqs) > 0:
        ZcPeakPhaseFreq.append(
            out['Freq'][np.argwhere(out['ZcPhase'] == np.max(out['ZcPhase']))])
        ZcLeadPhaseBW.append(freqs[-1] - freqs[0])
        ZcLeadPhaseMinFreq.append(freqs[0])
        ZcSynchFreq.append(freqs[-1])
        ZcLeadPhaseBool.append(out['ZcPhase'])
    else:
        ZcPeakPhaseFreq.append(nan)
        ZcLeadPhaseBW.append(0)
        ZcLeadPhaseMinFreq.append(nan)
        ZcSynchFreq.append(nan)
        ZcLeadPhaseBool.append(out['ZcPhase'])
    print(str(sec) + ' ' + str(loc) + ': done')

    output = {
        'ZinResAmp': ZinResAmp,
        'ZinResFreq': ZinResFreq,
        'ZcResAmp': ZcResAmp,
        'ZcResFreq': ZcResFreq,
        'dist': dist,
        'QfactorIn': QfactorIn,
        'QfactorTrans': QfactorTrans,
        'fVarIn': fVarIn,
        'fVarTrans': fVarTrans,
        'ZinPeakPhaseFreq': ZinPeakPhaseFreq,
        'ZinLeadPhaseBW': ZinLeadPhaseBW,
        'ZinLeadPhaseMinFreq': ZinLeadPhaseMinFreq,
        'ZinSynchFreq': ZinSynchFreq,
        'ZinLeadPhaseBool': ZinLeadPhaseBool,
        'ZcPeakPhaseFreq': ZcPeakPhaseFreq,
        'ZcLeadPhaseBW': ZcLeadPhaseBW,
        'ZcLeadPhaseMinFreq': ZcLeadPhaseMinFreq,
        'ZcSynchFreq': ZcSynchFreq,
        'ZcLeadPhaseBool': ZcLeadPhaseBool
    }

    savemat(filename + '.mat', output)
def chirpForMulti(invar):
    sec_num, loc, morph_file, filename = invar
    from getCells import HayCellSWC
    pt_cell = HayCellSWC(morphology_file=morph_file)
    seg = pt_cell.apic[sec_num](loc)
    from chirpUtils import applyChirp, getChirp
    amp = 0.0025
    f0, f1, t0, Fs, delay = 0.5, 30, 30, 1000, 5  # for looking at bimodal leading phase response in Hay cell
    I, t = getChirp(f0, f1, t0, amp, Fs, delay)
    print('running chirp on ' + str(seg))
    out = applyChirp(I, t, seg, pt_cell.soma[0](0.5), t0, delay, Fs, f1)
    ZinResAmp = []
    ZinResFreq = []
    ZcResAmp = []
    ZcResFreq = []
    dist = []
    QfactorIn = []
    QfactorTrans = []
    fVarIn = []
    fVarTrans = []
    ZinPeakPhaseFreq = []
    ZinLeadPhaseBW = []
    ZinLeadPhaseMinFreq = []
    ZinSynchFreq = []
    ZinLeadPhaseBool = []
    ZcPeakPhaseFreq = []
    ZcLeadPhaseBW = []
    ZcLeadPhaseMinFreq = []
    ZcSynchFreq = []
    ZcLeadPhaseBool = []
    ZinResAmp.append(out['ZinResAmp'])
    ZinResFreq.append(out['ZinResFreq'])
    ZcResAmp.append(out['ZcResAmp'])
    ZcResFreq.append(out['ZcResFreq'])
    dist.append(out['dist'])
    QfactorIn.append(out['QfactorIn'])
    QfactorTrans.append(out['QfactorTrans'])
    fVarIn.append(out['fVarIn'])
    fVarTrans.append(out['fVarTrans'])

    freqs = out['Freq'][np.argwhere(out['ZinPhase'] > 0)]
    if len(freqs) > 0:
        ZinSynchFreq.append(freqs[-1])
    else:
        ZinSynchFreq.append(nan)

    freqs = out['Freq'][np.argwhere(out['ZcPhase'] > 0)]
    if len(freqs) > 0:
        freqs = freqs[freqs < 10]
        ZcSynchFreq.append(freqs[-1])
    else:
        ZcSynchFreq.append(nan)
    print(str(sec) + ' ' + str(loc) + ': done')

    output = {
        'ZinResAmp': ZinResAmp,
        'ZinResFreq': ZinResFreq,
        'ZcResAmp': ZcResAmp,
        'ZcResFreq': ZcResFreq,
        'dist': dist,
        'QfactorIn': QfactorIn,
        'QfactorTrans': QfactorTrans,
        'fVarIn': fVarIn,
        'fVarTrans': fVarTrans,
        'ZinSynchFreq': ZinSynchFreq,
        'ZcSynchFreq': ZcSynchFreq
    }

    savemat(filename + '.mat', output)