1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- function saveNEVTetrodes(NEVFullFilename)
- % saveNEVTetrodes
- %
- % Opens saves a new NEV file and splits it into smaller NEV files
- % containing only the tetrodes according to the associated CCF file. The
- % CCF file should have the same name as the data file.
- %
- % NEVFullFilename: The full path to the NEV to be opened.
- % DEFAULT: If the filename is not provided, the user will
- % be prompted to select a file.
- %
- % Use saveNEVTetrodes(NEVFullFilename)
- %
- % Example: saveNEVTetrodes('c:\datafolder\datafile.nev');
- %
- % The function will open datafile.nev and datafile.ccf and based on the
- % tetrode information saved in datafile.ccf, it will split datafile.nev
- % into smaller chunks that will only contain channels associated to that
- % particular tetrode.
- %
- % Kian Torab
- % ktorab@blackrockmicro.com
- % Blackrock Microsystems
- % Version 1.0.0.0
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Version History
- %
- % 1.0.0.0:
- % - Initial release.
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Opening the file
- if ~exist('NEVFullFilename', 'var')
- [dataFilename dataFolder] = getFile('*.nev');
- NEVFullFilename = [dataFolder dataFilename];
- elseif exist(NEVFullFilename, 'file') ~= 2
- disp('The NEV file name does not exist.');
- return;
- else
- [filepath filename fileext] = fileparts(NEVFullFilename);
- dataFolder = [filepath '/'];
- dataFilename = [filename fileext];
- end
-
- %% Openning the associated CCF file
- ccfFullFilename = [dataFolder dataFilename(1:end-3) 'ccf'];
- if exist(ccfFullFilename, 'file') ~= 2 % for 2.x file type
- ccfFullFilename = [dataFolder dataFilename(1:end-8) '.ccf'];
- if exist(ccfFullFilename, 'file') ~= 2 % for TOC file type
- disp('Cannot find the associated CCF file.');
- disp('This function requires the CCF file used during the recording.');
- disp('The CCF must have the same name as the original recorded file.');
- return;
- end
- end
- ccf = openCCF(ccfFullFilename);
- % Calculating the number of NTrode groups in the file
- if isfield(ccf, 'NTrodeInfo')
- if isfield(ccf.NTrodeInfo, 'NTrodeMembers')
- numberOfNTrodeGroups = size(ccf.NTrodeInfo.NTrodeMembers,2);
- else
- disp('This data file does not contain any tetrodes.');
- return;
- end
- else
- disp('There is an error in the CCF file.');
- return;
- end
- % Splitting the data file according to the information saved in the
- % associated CCF file.
- for idx = 1:numberOfNTrodeGroups
- fprintf('Saving tetrode %d containing channels %s.\n', idx, num2str(ccf.NTrodeInfo.NTrodeMembers{idx}));
- saveNEVSubSpikes(ccf.NTrodeInfo.NTrodeMembers{idx}, NEVFullFilename, 'tet');
- end
|