<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>InterpolateData</title><revhistory><revision><revnumber>13</revnumber><date>2013-03-08 10:02:44</date><authorinitials>localhost</authorinitials><revremark>converted to 1.6 markup</revremark></revision><revision><revnumber>12</revnumber><date>2011-06-28 12:43:59</date><authorinitials>pc0339.mrc-cbu.cam.ac.uk</authorinitials></revision><revision><revnumber>11</revnumber><date>2011-06-28 12:43:37</date><authorinitials>pc0339.mrc-cbu.cam.ac.uk</authorinitials></revision><revision><revnumber>10</revnumber><date>2011-06-28 12:43:08</date><authorinitials>pc0339.mrc-cbu.cam.ac.uk</authorinitials></revision><revision><revnumber>9</revnumber><date>2010-09-09 10:08:03</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>8</revnumber><date>2009-04-03 16:59:49</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>7</revnumber><date>2009-04-03 16:59:11</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>6</revnumber><date>2009-04-03 16:58:57</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>5</revnumber><date>2009-03-16 19:57:27</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>4</revnumber><date>2009-03-16 19:05:28</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>3</revnumber><date>2009-03-16 19:01:46</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>2</revnumber><date>2009-03-16 19:01:26</date><authorinitials>YaaraErez</authorinitials></revision><revision><revnumber>1</revnumber><date>2009-03-16 19:01:00</date><authorinitials>YaaraErez</authorinitials></revision></revhistory></articleinfo><section><title>Interpolate MEG data to standard sensor array</title><para>This Matlab script will interpolate data to a standard sensor array </para><para>Maxfilter options: </para><para>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 </para><para><emphasis role="strong">Note: Run the script in Matlab R2006b rather than R2009a! The script might crash if running in R2009a.  </emphasis> </para><!--rule (<hr>) is not applicable to DocBook--><screen><![CDATA[% 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));
]]><![CDATA[
    % 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;]]></screen></section></article>