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')
# load in packages import sys import os # Handle command line arguments ## load cell if sys.argv[-1] == 'Hay': from getCells import HayCell pt_cell = HayCell() elif sys.argv[-1] == 'Neymotin': from getCells import NeymotinCell pt_cell = NeymotinCell() elif sys.argv[-1] == 'AckerAntic': from getCells import AckerAnticCell pt_cell = AckerAnticCell() elif sys.argv[-1] == 'Kole': from getCells import KoleCell pt_cell = KoleCell() else: from getCells import AllenCell try: pt_cell = AllenCell(sys.argv[-1]) except: print('Error: invalid cell type') ## create output directories out_path = '/home/craig_kelley_downstate_edu/L5PYR_Resonance/' + sys.argv[ -1] + '/' try: os.mkdir(out_path + 'impedance_measures') except:
def chirpForMulti(invar): sec_num, loc, filename = invar from getCells import AckerAnticCell pt_cell = AckerAnticCell() seg = pt_cell.apical[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)) 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)