import numpy as np h5f = h5py.File(raw_ephys_file_name, "r") metas = [ 'aibs_cre_line', 'aibs_dendrite_type', 'intracellular_ephys/Electrode 1/location' ] for m in metas: d = h5f.get('/general/%s' % m) print("%s = \t%s" % (m, d.value)) info[m.split('/')[-1]] = str(d.value) h5f.close() from allensdk.core.nwb_data_set import NwbDataSet data_set = NwbDataSet(raw_ephys_file_name) sweep_numbers = data_set.get_experiment_sweep_numbers() #sweep_numbers = [33,45] sweep_numbers.sort() print("All sweeps for %s: %s" % (dataset_id, sweep_numbers)) subthreshs = {} spikings = {} spike_count = {} chosen = {} stimuli = {} for sweep_number in sweep_numbers:
def extract_info_from_nwb_file(dataset_id, raw_ephys_file_name): info = {} import h5py import numpy as np h5f = h5py.File(raw_ephys_file_name, "r") metas = [ 'aibs_cre_line', 'aibs_dendrite_type', 'intracellular_ephys/Electrode 1/location' ] for m in metas: d = h5f.get('/general/%s' % m) print("%s = \t%s" % (m, d.value)) info[m.split('/')[-1]] = str(d.value) h5f.close() from allensdk.core.nwb_data_set import NwbDataSet data_set = NwbDataSet(raw_ephys_file_name) sweep_numbers = data_set.get_experiment_sweep_numbers() if test: sweep_numbers = [33, 45] sweep_numbers.sort() info[DH.DATASET] = dataset_id info[DH.COMMENT] = 'Data analysed on %s' % (time.ctime()) info[DH.PYELECTRO_VERSION] = pyel_ver info[DH.ALLENSDK_VERSION] = allensdk_ver info[DH.SWEEPS] = {} for sweep_number in sweep_numbers: sweep_data = data_set.get_sweep(sweep_number) if data_set.get_sweep_metadata( sweep_number)['aibs_stimulus_name'] == "Long Square": sweep_info = {} sweep_info[DH.METADATA] = data_set.get_sweep_metadata(sweep_number) info[DH.SWEEPS]['%i' % sweep_number] = sweep_info sweep_info[DH.SWEEP] = sweep_number # start/stop indices that exclude the experimental test pulse (if applicable) index_range = sweep_data['index_range'] # stimulus is a numpy array in amps stimulus = sweep_data['stimulus'][index_range[0]:index_range[-1]] # response is a numpy array in volts response = sweep_data['response'][ index_range[0]:index_range[-1]] * 1000 # sampling rate is in Hz sampling_rate = sweep_data['sampling_rate'] # define some time points in seconds (i.e., convert to absolute time) time_pts = np.arange(0, len(stimulus) / sampling_rate, 1. / sampling_rate) * 1000 comment = 'Sweep: %i in %i; %sms -> %sms; %sA -> %sA; %smV -> %smV' % ( sweep_number, dataset_id, time_pts[0], time_pts[-1], np.amin(stimulus), np.amax(stimulus), np.amin(response), np.amax(response)) print(comment) sweep_info[DH.COMMENT] = comment analysis = utils.simple_network_analysis( {sweep_number: response}, time_pts, extra_targets=[ '%s:value_280' % sweep_number, '%s:average_1000_1200' % sweep_number, '%s:average_100_200' % sweep_number ], end_analysis=1500, plot=plot, show_plot_already=False, verbose=True) sweep_info[DH.ICLAMP_ANALYSIS] = analysis analysis_file_name = '%s_analysis.json' % (dataset_id) analysis_file = open(analysis_file_name, 'w') pretty = pp.pformat(info) pretty = pretty.replace('\'', '"') pretty = pretty.replace('u"', '"') analysis_file.write(pretty) analysis_file.close() print('Written info to %s' % analysis_file_name)
def extract_info_from_nwb_file(dataset_id, raw_ephys_file_name): info = {} import h5py import numpy as np h5f = h5py.File(raw_ephys_file_name, "r") metas = ['aibs_cre_line','aibs_dendrite_type','intracellular_ephys/Electrode 1/location'] for m in metas: d = h5f.get('/general/%s'%m) print("%s = \t%s"%(m,d.value)) info[m.split('/')[-1]]=str(d.value) h5f.close() from allensdk.core.nwb_data_set import NwbDataSet data_set = NwbDataSet(raw_ephys_file_name) sweep_numbers = data_set.get_experiment_sweep_numbers() if test: sweep_numbers = [33,45] sweep_numbers.sort() info[DH.DATASET] = dataset_id info[DH.COMMENT] = 'Data analysed on %s'%(time.ctime()) info[DH.PYELECTRO_VERSION] = pyel_ver info[DH.ALLENSDK_VERSION] = allensdk_ver info[DH.SWEEPS] = {} for sweep_number in sweep_numbers: sweep_data = data_set.get_sweep(sweep_number) if data_set.get_sweep_metadata(sweep_number)['aibs_stimulus_name'] == "Long Square": sweep_info = {} sweep_info[DH.METADATA] = data_set.get_sweep_metadata(sweep_number) info[DH.SWEEPS]['%i'%sweep_number] = sweep_info sweep_info[DH.SWEEP] = sweep_number # start/stop indices that exclude the experimental test pulse (if applicable) index_range = sweep_data['index_range'] # stimulus is a numpy array in amps stimulus = sweep_data['stimulus'][index_range[0]:index_range[-1]] # response is a numpy array in volts response = sweep_data['response'][index_range[0]:index_range[-1]]*1000 # sampling rate is in Hz sampling_rate = sweep_data['sampling_rate'] # define some time points in seconds (i.e., convert to absolute time) time_pts = np.arange(0,len(stimulus)/sampling_rate,1./sampling_rate)*1000 comment = 'Sweep: %i in %i; %sms -> %sms; %sA -> %sA; %smV -> %smV'%(sweep_number, dataset_id, time_pts[0], time_pts[-1], np.amin(stimulus), np.amax(stimulus), np.amin(response), np.amax(response)) print(comment) sweep_info[DH.COMMENT] = comment analysis = utils.simple_network_analysis({sweep_number:response}, time_pts, extra_targets = ['%s:value_280'%sweep_number, '%s:average_1000_1200'%sweep_number, '%s:average_100_200'%sweep_number], end_analysis=1500, plot=plot, show_plot_already=False, verbose=True) sweep_info[DH.ICLAMP_ANALYSIS] = analysis analysis_file_name = '%s_analysis.json'%(dataset_id) analysis_file = open(analysis_file_name, 'w') pretty = pp.pformat(info) pretty = pretty.replace('\'', '"') pretty = pretty.replace('u"', '"') analysis_file.write(pretty) analysis_file.close() print('Written info to %s'%analysis_file_name)
import h5py import numpy as np h5f = h5py.File(raw_ephys_file_name, "r") metas = ['aibs_cre_line','aibs_dendrite_type','intracellular_ephys/Electrode 1/location'] for m in metas: d = h5f.get('/general/%s'%m) print("%s = \t%s"%(m,d.value)) info[m.split('/')[-1]]=str(d.value) h5f.close() from allensdk.core.nwb_data_set import NwbDataSet data_set = NwbDataSet(raw_ephys_file_name) sweep_numbers = data_set.get_experiment_sweep_numbers() #sweep_numbers = [33,45] sweep_numbers.sort() print("All sweeps for %s: %s"%(dataset_id, sweep_numbers)) subthreshs = {} spikings = {} spike_count = {} chosen = {} stimuli = {} for sweep_number in sweep_numbers: