def init_backend(self, attrs=None, cell_name='alice', current_src_name='hannah', DTC=None): backend = 'GLIF' super(GLIFBackend, self).init_backend() self.model._backend.use_memory_cache = False self.current_src_name = current_src_name self.cell_name = cell_name self.vM = None self.allen_id = None self.attrs = attrs self.nc = None self.temp_attrs = None if self.allen_id == None: try: self.nc = pickle.load(open(str('allen_id.p'), 'rb')) except: self.allen_id = 566302806 glif_api = GlifApi() self.nc = glif_api.get_neuron_configs([self.allen_id ])[self.allen_id] pickle.dump(copy.copy(self.nc), open(str('allen_id.p'), 'wb')) else: try: self.nc = pickle.load(open(str('allen_id.p'), 'rb')) except: glif_api = GlifApi() self.allen_id = allen_id self.glif = glif_api.get_neuronal_models_by_id([allen_id])[0] self.nc = glif_api.get_neuron_configs([self.allen_id ])[self.allen_id] pickle.dump(self.nc, open(str('allen_id.p'), 'wb')) self.glif = GlifNeuron.from_dict(self.nc) if type(attrs) is not type(None): self.set_attrs(**attrs) self.sim_attrs = attrs if type(DTC) is not type(None): if type(DTC.attrs) is not type(None): self.set_attrs(**DTC.attrs) if hasattr(DTC, 'current_src_name'): self._current_src_name = DTC.current_src_name if hasattr(DTC, 'cell_name'): self.cell_name = DTC.cell_name
def __init__(self, allen_id=None): self = self if allen_id == None: self.allen_id = 566302806 glif_api = GlifApi() self.nc = glif_api.get_neuron_configs([self.allen_id ])[self.allen_id] self.glif = GlifNeuron.from_dict(self.nc) self.metad = glif_api.get_neuronal_models_by_id([self.allen_id])[0] else: glif_api = GlifApi() self.allen_id = allen_id self.glif = glif_api.get_neuronal_models_by_id([allen_id])[0] self.nc = glif_api.get_neuron_configs([allen_id])[allen_id] self.glif = GlifNeuron.from_dict(self.nc) self.metad = glif_api.get_neuronal_models_by_id([self.allen_id])[0]
def generate_train_from_model_id(model_id, stimulus_amplitude=1e-8, duration=1e6, noise_exponent=0): glif_api = GlifApi() neuron_config = glif_api.get_neuron_configs([model_id]) neuron = GlifNeuron.from_dict(neuron_config[model_id]) stimulus = stimulus_amplitude * colorednoise(exponent=noise_exponent, size=int(duration)) neuron.dt = 5e-6 output = neuron.run(stimulus) spike_times = output['interpolated_spike_times'] return spike_times
def __init__(self): self = self import allensdk.core.json_utilities as json_utilities from allensdk.model.glif.glif_neuron import GlifNeuron try: from allensdk.api.queries.glif_api import GlifApi from allensdk.core.cell_types_cache import CellTypesCache import allensdk.core.json_utilities as json_utilities import sciunit except: import os os.system('pip install allensdk') from allensdk.api.queries.glif_api import GlifApi from allensdk.core.cell_types_cache import CellTypesCache import allensdk.core.json_utilities as json_utilities os.system('pip install git+https://github.com/scidash/sciunit@dev') neuronal_model_id = 566302806 glif_api = GlifApi() nc = glif_api.get_neuron_configs([neuronal_model_id])[neuronal_model_id] self.nm = GlifNeuron.from_dict(nc)
LIF_R_ASC = 'LIF-R-ASC' LIF_R_ASC_A = 'LIF-R-ASC-A' model_id2name = { 395310469: LIF, 395310479: LIF_R, 395310475: LIF_ASC, 471355161: LIF_R_ASC, 395310498: LIF_R_ASC_A } glif_api = GlifApi() for cell_result in glif_api.get_neuronal_models(cell_ids): #[325464516] cell_id = cell_result['id'] for curr_model in cell_result['neuronal_models']: if model_id2name[ curr_model['neuronal_model_template_id']] != options.model: continue model_id = curr_model['id'] neuron_config = glif_api.get_neuron_configs([model_id])[model_id] for stim in options.stimulus.split(','): simulate = stimulus[stim] output = simulate(cell_id, options.model, neuron_config) plt.figure('Cell ' + str(cell_id) + ' ' + options.model + ' ' + stim) plotter.plt_comparison_neurons(np.array(output['I']) * 1.0e12, output['times'], output['voltages'], output['spike_times'], show=False) plt.show()
import time import numpy as np from allensdk.api.queries.glif_api import GlifApi from allensdk.core.cell_types_cache import CellTypesCache import allensdk.core.json_utilities as json_utilities neuronal_model_id = 566302806 # download model metadata glif_api = GlifApi() nm = glif_api.get_neuronal_models_by_id([neuronal_model_id])[0] # download the model configuration file nc = glif_api.get_neuron_configs([neuronal_model_id])[neuronal_model_id] neuron_config = glif_api.get_neuron_configs([neuronal_model_id]) json_utilities.write('neuron_config.json', neuron_config) # download information about the cell ctc = CellTypesCache() ctc.get_ephys_data(nm['specimen_id'], file_name='stimulus.nwb') ctc.get_ephys_sweeps(nm['specimen_id'], file_name='ephys_sweeps.json') import allensdk.core.json_utilities as json_utilities from allensdk.model.glif.glif_neuron import GlifNeuron # initialize the neuron neuron_config = json_utilities.read('neuron_config.json')['566302806'] neuron = GlifNeuron.from_dict(neuron_config) # make a short square pulse. stimulus units should be in Amps. stimulus = [0.0] * 100 + [10e-9] * 100 + [0.0] * 100
#=============================================================================== # example 1 #=============================================================================== from allensdk.api.queries.glif_api import GlifApi from allensdk.core.cell_types_cache import CellTypesCache import allensdk.core.json_utilities as json_utilities neuronal_model_id = 566302806 # download model metadata glif_api = GlifApi() nm = glif_api.get_neuronal_models_by_id([neuronal_model_id])[0] # download the model configuration file nc = glif_api.get_neuron_configs([neuronal_model_id])[neuronal_model_id] neuron_config = glif_api.get_neuron_configs([neuronal_model_id]) json_utilities.write('neuron_config.json', neuron_config) # download information about the cell ctc = CellTypesCache() ctc.get_ephys_data(nm['specimen_id'], file_name='stimulus.nwb') ctc.get_ephys_sweeps(nm['specimen_id'], file_name='ephys_sweeps.json') #=============================================================================== # example 2 #=============================================================================== import allensdk.core.json_utilities as json_utilities from allensdk.model.glif.glif_neuron import GlifNeuron