[Mne_analysis] MNE Matlab fiff_write_coord_trans function help

Martin Luessi mluessi at nmr.mgh.harvard.edu
Fri Oct 26 17:11:41 EDT 2012
Search archives:

Kambiz,

What Dan meant is to read the fif file, change the transform, and write 
the file back. I'm not very familiar with the matlab toolbox, but in 
mne-python you could do it as follows:

--------------------------------------
import mne

raw = mne.fiff.Raw('raw.fif')
raw.info['dev_head_t']['trans'] = my_matrix
raw.save('raw_mytrans.fif')
--------------------------------------

where "my_matrix" is a 4x4 numpy array with your transform.

I hope this helps.

Best,

Martin


On 10/26/12 16:38, Kambiz Tavabi wrote:
> Hi Dan,
>
> Thanks for pointing me mne_ex_read_write_raw. It seems to work for the
> most part, i.e., writing a new raw file minus the MISC channels. There
> is the option to change the data at Line 98 "add your own miracle here".
> But alas a miracle I cannot conjure. In all my attempts I cannot manage
> to change the desired recording information (info.dev_head_t), this
> information is always copied from the original input file argument. So
> I'm forced to ask, have you actually managed to change the recording
> information using mne_ex_read_write_raw? or is that even possible?
>
> Kambiz
>
>
> On 10/25/2012 6:39 AM, dgw wrote:
>> Hi Kambiz,
>>
>>  From your description of approach "a" it seems like you should start a
>> bit closer to the beginning. i.e. read the raw fiff file change the
>> device to head transformation matrix and write it out again. You
>> shouldn't need to deal with those other functions. I would use
>> mne_ex_read_write_raw as a guide. I am not sure of what you tried to
>> do exactly, but the above approach is simpler. It sounds as though you
>> were trying to simply overwrite directly into an already written file,
>> which I do not believe is supported in the MATLAB toolbox (or if it
>> is, it may be more complicated to use than simply reading in the file
>> and writing it out again). You need to read in the whole file and
>> write it back out.
>>
>> D
>>
>> On Wed, Oct 24, 2012 at 6:38 PM, Kambiz Tavabi <ktavabi at uw.edu> wrote:
>>> Greetings all,
>>> I accidently sent this email to mne_support at nmr, if you're getting this
>>> again, I am sorry for the duplicate.
>>> I am trying to define a new device-to-head transformation matrix and
>>> either
>>> (a) over write the transformation matrix in a existing raw fif file
>>> or (b)
>>> write a new 'dummy' fif file. I get the impression option (a) is more
>>> feasible, using some of the MNE Matlab functions.
>>> To that end I tried using the function fiff_write_coord_trans to
>>> overwrite a
>>> coordinate transfomation structure to a raw fif file. The device-to-head
>>> transformation matrix output from fiff_read_meas_info is of type double
>>> precision, once I make the desired changes to that matrix and pass
>>> the new
>>> coordinate transfomation structure to fiff_write_coord I get an error at
>>> line 53:
>>>
>>> ln51-count = fwrite(fid,int32(FIFF_COORD_TRANS),'int32');
>>> ln52-if count ~= 1
>>> ln53-   error(me,'write failed');
>>> ln54-end
>>>
>>> I suspect the problem is due to mismatch between 'int32' and 'double'
>>> precision types. But I get the same error if I convert the
>>> transformation
>>> matrix to int32, not to mention the values are now quite different as
>>> compared to the original double precision matrix output by
>>> fiff_read_meas_info.  Anyone know what's going on here? or know of a
>>> fix or
>>> workaround?
>>>
>>> Thanks in advance
>>> Kambiz
>>>
>>> _______________________________________________
>>> Mne_analysis mailing list
>>> Mne_analysis at nmr.mgh.harvard.edu
>>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>>>
>>>
>>> The information in this e-mail is intended only for the person to
>>> whom it is
>>> addressed. If you believe this e-mail was sent to you in error and the
>>> e-mail
>>> contains patient information, please contact the Partners Compliance
>>> HelpLine at
>>> http://www.partners.org/complianceline . If the e-mail was sent to
>>> you in
>>> error
>>> but does not contain patient information, please contact the sender and
>>> properly
>>> dispose of the e-mail.
>>>
>
>
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>





More information about the Mne_analysis mailing list