open-ephys / analysis-tools

Archived code for reading data saved by the Open Ephys GUI
59 stars 176 forks source link

Import continuous data recorded by neuropixels #89

Open obsee opened 3 years ago

obsee commented 3 years ago

Hi. I'm using open-ephys GUI and neuropixels. I recorded 50 min of LFP and SPK.

  1. 'Continuous.dat' file of the LFP is around 3G. I have 48G RAM on my computer. According to the advice of using memmapfile, I tried to use it. But still, I have trouble with importing LFP data to Matlab. The error message indicates 'out of memory.' I can't figure out how to map memory in Matlab. Could you help me out?
  2. Without slitting recording time, Is it possible to select a certain set of electrodes out of 384 total electrodes? I've been trying to select a certain set of electrodes using Recording Node, but it doesn't help.

Thanks for your help in advance.

jsiegle commented 3 years ago

Using load_open_ephys_binary.m, the following code should create a memory map of the .dat file, rather than loading it into memory (the 2 indicates the index of the recorded file, which is likely 1 for the AP band, and 2 for the LFP band):

D = load_open_ephys_binary(<path_to_oebin_file>, 'continuous', 2, 'mmap')

Then, you can select a range of electrodes or samples with the following line:

D.Data.Data(1).mapped(startChannel:endChannel, startSample:endSample)

Let me know if that works, and if not we can keep trying to troubleshoot!

obsee commented 3 years ago

It's working!!! I missed '' for the mmap. It is quite embarrassing. Thanks.

jsiegle commented 3 years ago

Glad it worked! Just keep in mind that the memory-mapped values are 16-bit integers, and must be multiplied by 0.195 in order to convert to the true sample values in microvolts. This will automatically change the data type to "double" (which takes up 4x more memory), so you should only do this on a small subset of the data at a time.

macayladonegan commented 3 years ago

I'm trying to load the 'continuous.dat' file, but I can't locate the structure.oebin file-what could have gone wrong/can I just import a standard oebin file for these recordings?

jsiegle commented 3 years ago

I'm not sure what might have gone wrong in this case. But this file shouldn't change between experiments, so you can just re-use one from a previous recording.

macayladonegan commented 3 years ago

I actually can't find one from any of the recordings I've done- can you think of another work around?

jsiegle commented 3 years ago

Have you been using the NPX extractor or recording directly to the Binary format?

Either way, let me know how many probes are in your experiment, and I can send you an .oebin file that will work.

macayladonegan commented 3 years ago

NPX extractor, just 1. thank you!

jsiegle commented 3 years ago

Ok, try this one!

structure.oebin.zip

macayladonegan commented 3 years ago

hmm ok now I'm getting this error: Error using load_open_ephys_binary (line 74) Data folder not found

And it looks like the script is looking for a file called Neuropix-PXI-100.1 which I also don't have in my output from NPX extractor, did I do something wrong during the extraction?

jsiegle commented 3 years ago

If the folder names are different, just replace the folder_name entries in the .oebin file to match with the names of your actual data directories. The first one is the AP Band, the second one is the LFP Band