예제 #1
0
 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])
예제 #2
0
 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()
예제 #7
0
 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
예제 #8
0
    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
        }
예제 #9
0
 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])
예제 #10
0
 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]
예제 #11
0
 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!")
예제 #13
0
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])
예제 #14
0
'''
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")
예제 #15
0
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]