def __init__(self, recording_file, *, experiment_id=0, recording_id=0): assert HAVE_OE, "To use the OpenEphys extractor, install pyopenephys: \n\n pip install pyopenephys\n\n" SortingExtractor.__init__(self) self._recording_file = recording_file self._recording = pyopenephys.File( recording_file).experiments[experiment_id].recordings[recording_id] self._spiketrains = self._recording.spiketrains self._unit_ids = list( [np.unique(st.clusters)[0] for st in self._spiketrains])
def __init__(self, folder_path, *, experiment_id=0, recording_id=0, dtype='float'): assert HAVE_OE, "To use the OpenEphys extractor, install pyopenephys: \n\n pip install pyopenephys\n\n" assert dtype == 'int16' or 'float' in dtype, "'dtype' can be int16 (memory map) or 'float' (load into memory)" RecordingExtractor.__init__(self) self._recording_file = folder_path self._recording = pyopenephys.File(folder_path).experiments[experiment_id].recordings[recording_id] self._dtype = dtype self._kwargs = {'folder_path': str(Path(folder_path).absolute()), 'experiment_id': experiment_id, 'recording_id': recording_id, 'dtype': dtype}
def __init__(self, folder_path, experiment_id=0, recording_id=0, dtype='float'): assert HAVE_OE, self.installation_mesg assert dtype == 'int16' or 'float' in dtype, "'dtype' can be int16 (memory map) or 'float' (load into memory)" RecordingExtractor.__init__(self) self._recording_file = folder_path self._fileobj = pyopenephys.File(folder_path) self._recording = self._fileobj.experiments[experiment_id].recordings[recording_id] self._analogsignals = self._recording.analog_signals[0] self._dtype = dtype self._kwargs = {'folder_path': str(Path(folder_path).absolute()), 'experiment_id': experiment_id, 'recording_id': recording_id, 'dtype': dtype}
def __init__(self, folder_path, *, experiment_id=0, recording_id=0): assert HAVE_OE, self.installation_mesg SortingExtractor.__init__(self) self._recording_file = folder_path self._recording = pyopenephys.File(folder_path).experiments[experiment_id].recordings[recording_id] self._spiketrains = self._recording.spiketrains self._unit_ids = list([np.unique(st.clusters)[0] for st in self._spiketrains]) self._sampling_frequency = float(self._recording.sample_rate.rescale('Hz').magnitude) self._kwargs = {'folder_path': str(Path(folder_path).absolute()), 'experiment_id': experiment_id, 'recording_id': recording_id}
def __init__(self, file_path, *, experiment_id=0, recording_id=0): assert HAVE_OE, "To use the OpenEphys extractor, install pyopenephys: \n\n pip install pyopenephys\n\n" SortingExtractor.__init__(self) self._recording_file = file_path self._recording = pyopenephys.File( file_path).experiments[experiment_id].recordings[recording_id] self._spiketrains = self._recording.spiketrains self._unit_ids = list( [np.unique(st.clusters)[0] for st in self._spiketrains]) self._sampling_frequency = float( self._recording.sample_rate.rescale('Hz').magnitude)
def __init__(self, experiment_dir): self.sess_dir = pathlib.Path(experiment_dir) openephys_file = pyopenephys.File(self.sess_dir.parent) # this is on the Record Node level # extract the "recordings" for this session self.experiment = next(experiment for experiment in openephys_file.experiments if pathlib.Path(experiment.absolute_foldername) == self.sess_dir) self.recording_time = self.experiment.datetime # extract probe data self.probes = self.load_probe_data()
def __init__(self, recording_file, *, experiment_id=0, recording_id=0, dtype='float'): assert HAVE_OE, "To use the OpenEphys extractor, install pyopenephys: \n\n pip install pyopenephys\n\n" assert dtype == 'int16' or 'float' in dtype, "'dtype' can be int16 (memory map) or 'float' (load into memory)" RecordingExtractor.__init__(self) self._recording_file = recording_file self._recording = pyopenephys.File( recording_file).experiments[experiment_id].recordings[recording_id] self._dtype = dtype
def __init__(self, folder_path, experiment_id=0, recording_id=0): assert self.installed, self.installation_mesg RecordingExtractor.__init__(self) self._recording_file = folder_path self._fileobj = pyopenephys.File(folder_path) self._recording = self._fileobj.experiments[experiment_id].recordings[ recording_id] self._set_analogsignal(self._recording.analog_signals[0]) self._kwargs = { 'folder_path': str(Path(folder_path).absolute()), 'experiment_id': experiment_id, 'recording_id': recording_id }
def __init__(self, recording_file, *, experiment_id=0, recording_id=0): try: import pyopenephys except ModuleNotFoundError: raise ModuleNotFoundError( "To use the OpenEphys extractor, install pyopenephys: \n\n" "pip install pyopenephys\n\n") SortingExtractor.__init__(self) self._recording_file = recording_file self._recording = pyopenephys.File( recording_file).experiments[experiment_id].recordings[recording_id] self._spiketrains = self._recording.spiketrains self._unit_ids = list( [np.unique(st.clusters)[0] for st in self._spiketrains])
def __init__(self, recording_file, *, probefile=None, experiment_id=0, recording_id=0): try: import pyopenephys except ModuleNotFoundError: raise ModuleNotFoundError( "To use the OpenEphys extractor, install pyopenephys: \n\n" "pip install pyopenephys\n\n") RecordingExtractor.__init__(self) self._recording_file = recording_file self._recording = pyopenephys.File( recording_file, probefile).experiments[experiment_id].recordings[recording_id]
def __init__(self, recording_file, *, experiment_id=0, recording_id=0, dtype='float'): try: import pyopenephys except ModuleNotFoundError: raise ModuleNotFoundError( "To use the OpenEphys extractor, install pyopenephys: \n\n" "pip install pyopenephys\n\n") assert dtype == 'int16' or 'float' in dtype, "'dtype' can be int16 (memory map) or 'float' (load into memory)" RecordingExtractor.__init__(self) self._recording_file = recording_file self._recording = pyopenephys.File( recording_file).experiments[experiment_id].recordings[recording_id] self._dtype = dtype
def test_open_file(self, download, dataset_path, foldername): if download: print(f"Testing GIN {dataset_path}") self.dataset.get(dataset_path) else: print(f"Testing local {foldername}") if foldername.is_dir(): file = pyopenephys.File(foldername) print("Instantiated File object") experiments = file.experiments print(f"\nN experiments: {len(experiments)}") for e, exp in enumerate(experiments): print(f"\nExperiment {e}") recordings = exp.recordings print(f"N recordings: {len(recordings)}") for r, rec in enumerate(recordings): print( f"\nRecording {r} - duration {rec.duration} - acquisition {rec.experiment.acquisition_system}" ) analog = rec.analog_signals gains = [an.gains for an in analog] signal_shapes = [an.signal.shape for an in analog] for g, shape in zip(gains, signal_shapes): assert len(g) == shape[0] print( f"N analog signals: {len(analog)} - shapes: {signal_shapes}" ) events = rec.events print(f"N event signals: {len(events)}") spiketrains = rec.spiketrains print(f"N spiketrains: {len(spiketrains)}") # test clipping print(f"Test clipping") duration = rec.duration clip_times = 0.2 rec.clip_recording(clip_times) clip_times = [0.3, 0.8] rec.clip_recording(clip_times) else: print(f"{foldername} not found!")
import pyopenephys import matplotlib.pylab as plt import os import quantities as pq from exana import tracking as tr import neo oe_folder_uni = os.path.join(os.getcwd(), 'OE_Data/closed_loop/closed_loop_uniform_2018-02-09_23-05-54') # oe_folder_gauss = os.path.join(os.getcwd(), 'OE_Data/closed_loop/closed_loop_gaussi_2018-02-09_22-30-33') oe_folder_gauss = os.path.join(os.getcwd(), 'OE_Data/closed_loop/tests/closed_loop_gauss_2018-02-10_20-56-42') source='fpga' file_uni = pyopenephys.File(oe_folder_uni) exp1 = file_uni.experiments[0] rec1 = exp1.recordings[0] tracking_uni = rec1.tracking events_uni = rec1.events for ev in events_uni: if ev.processor == 'Rhythm_FPGA': ev_fpga_uni = ev.times[::2] else: ev_stim_uni = ev.times if source=='fpga': sptr_uni = neo.SpikeTrain(ev_fpga_uni, t_stop=ev_fpga_uni[-1]) else: sptr_uni = neo.SpikeTrain(ev_stim_uni, t_stop=ev_stim_uni[-1])
''' Below is the code I have written in order to read data in Binary format ''' from open_ephys.analysis import Session from Binary import DatLoad import pyopenephys directory = '2021-05-21_16-08-55' # for example session = Session(directory) file = pyopenephys.File( "2021-05-21_16-08-55/Record Node 111/experiment2/recording1/continuous/File_Reader-110.0" ) print("hello world")
import matplotlib.pylab as plt import os import quantities as pq import seaborn as sns from plotting_convention import * fs = 30 fs_tick = 22 fs_leg = 18 oe_folder = os.path.join( os.getcwd(), 'OE_Data/multiple_sources/multiple_sources_2018-01-12_16-48-23') data_folder = os.path.join(os.getcwd(), 'Python_Data') file = pyopenephys.File(oe_folder) exp1 = file.experiments[0] rec1 = exp1.recordings[0] tracking = rec1.tracking frequencies = np.linspace(30, 300, len(tracking)) nsamples = [len(tr.times) for tr in tracking] tracking = list(np.array(tracking)[np.argsort(nsamples)]) data_py = np.load(os.path.join(data_folder, 'multiple_sources_data_array.npy')) ts_py = np.load(os.path.join(data_folder, 'multiple_sources_timestamps.npy')) * pq.s ts_oe = [tr.times for tr in tracking] # ts_py = [t - t[0] for t in ts_py]