InterpolateData - Meg Wiki

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment
Finzd thee wrang lelters ino eacuh wosrd

location: InterpolateData

Interpolate MEG data to standard sensor array

This Matlab script will interpolate data to a standard sensor array

Maxfilter options:

maxfilter -f %s -o %s -trans %s -v -frame head -origin 0 0 45 -force -ctc /neuro/databases/ctc/ct_sparse.fif -cal /neuro/databases/sss/sss_cal.dat

Note: Run the script in Matlab R2006b rather than R2009a! The script might crash if running in R2009a.


% For files specified in cell array "files{}", apply maxfilter with -trans
% option in order to interpolate data to sensor array specified in "trans_file"
% originall file names will be appended by "_t", or by whatever is specified in "t_ext"
% for each transed file, a log-file with maxfilter output will be created ("*.log")
% OH, March 2009
% you can pre-specify a list of files here
fiff_files = {'/fullpath/file4subj1.fif', ...
         '/fullpath/file4subj2.fif', ...
         '/fullpath/file4subj3.fif'};
% Fiff-file with standard sensor geometry to which the others will be interpolated
trans_file = '/fullpath/fiff4trans.fif';
t_ext = '_t';   % suffix for filenames of transed files
if ~exist(trans_file, 'file'),
    fprintf(1, 'Cannot proceed without trans_file %s\n', trans_file);
    return;
end;
trans_data = fiff_read_evoked( trans_file );     % read fiff-file with standard sensor geometry
nr_files = length(fiff_files);
for ff = 1:nr_files,     % for each input file, apply maxfilter -trans, then reinsert digitiser points
    in_file = fiff_files{ff};
    [thispath,thisfile,thisext,thisversn] = fileparts(in_file);
    out_file = fullfile(thispath, [thisfile t_ext thisext]);
    log_file = fullfile(thispath, [thisfile t_ext '.log']);
    % maxfilter -trans...
    eval(sprintf('!/neuro/bin/util/maxfilter -f %s -o %s -trans %s -v -frame head -origin 0 0 45 -force -ctc /neuro/databases/ctc/ct_sparse.fif -cal /neuro/databases/sss/sss_cal.dat | tee %s', in_file, out_file, trans_file, log_file));

    % reinsert digitiser points...
    data = fiff_read_evoked( out_file );        % read invidual data file with data interpolated to standard sensor geometry
    data.info.dig = trans_data.info.dig;        % insert digitised points from standard geometry to interpolated data set
    fiff_write_evoked( out_file, data );    % write interpolated data back to fiff-file
end;