Back to the main page.

Bug 2025 - 'infinite' forward model not working properly

Reported 2013-03-04 12:13:00 +0100
Modified 2013-04-23 12:06:32 +0200
Product: FieldTrip
Component: forward
Version: unspecified
Hardware: PC
Operating System: Linux
Importance: P3 normal
Assigned to: Robert Oostenveld
Depends on:
See also:

Hamid - 2013-03-04 12:13:31 +0100

It seems to me the 'vol' calculated by the ft_prepare_head_model have some problems in the case of 'infinite' method. 1) The first minor error is that ft_plot_vol does not support this vol. I know there is nothing to show here, but ft_plot_vol should inform user rather than giving error. 2) In using ft_prepare_leadfield, I get an error because vol.sens is void. I think the function should use sens saved in cfg.grad, or ft_prepare_head_model should return vol.sens. 3) The calculated grid using ft_prepare_ leadfield all the points are marked as 'inside' and there is no 'outside' points. It is clear that lead-fields are independent from the brain volume, but same as 'singleshell' and 'localspheres' we should only calculate the lead-fields for inside of the brain volume not a cube. 4) I think this case should be checked further and there might be other errors, as I don't get sensible results at the end. Assuming an 'infinite' volume conductor gives a simple forward solution and which is independent from head registration and movement resulting in a more robust solution and, therefore I think it is an important variation.

Robert Oostenveld - 2013-03-04 16:32:37 +0100

I started making a test script, first fomr the simple stuff: >> test_bug2025 Reference to non-existent field 'sens'. Error in ft_datatype_headmodel (line 118) vol.sens = ft_datatype_sens(vol.sens); Error in ft_plot_vol (line 46) vol = ft_datatype_headmodel(vol); Error in test_bug2025 (line 12) ft_plot_vol(vol); Line 118 should relate to type=interpolate, not infinite. I also change ft_plot_vol, it now gives a warning. roboos@mentat001> svn commit Sending plotting/ft_plot_vol.m Sending utilities/ft_datatype_headmodel.m Transmitting file data .. Committed revision 7568. roboos@mentat001> svn add test/test_bug2025.m A test/test_bug2025.m roboos@mentat001> svn commit Adding test/test_bug2025.m Transmitting file data . Committed revision 7570.

Robert Oostenveld - 2013-03-04 16:39:28 +0100

(In reply to comment #0) 1 and 2 are now fixed. Regarding 3: this model is for an infinite volume conduction model. For MEG it models a magnetic dipole in a vacuum, and it can be used to model a head-localizer coil (whose field is not affected by the presence of a head). For EEG it models a current dipole in an infinite homogenous conducting medium, i.e. an "electric eel in an ocean". So regardless of where the source is, it is inside the infinite volume conduction model. There is no brain or head involved here. Regarding 4: I think that your expectations are inconsistent with what the method is (supposed to be) delivering. I don't see a reason for any concerns as to the implementation. Documentation might be up for improvement.

Hamid - 2013-03-04 17:24:19 +0100

Created attachment 432 comparing singleshell and infinite

Robert Oostenveld - 2013-03-06 10:24:43 +0100

(In reply to comment #3) why do you compare an magnetic dipole model (infinite) with an electric dipole model (singleshell)? They are physically not equivalent. And in the brain you cannot place magnetic dipoles easily. Stimulating on a DBS electrode pair also causes an electric dipole. You'd have to implant a ferromagnetic piece of material, or a current loop (like a localizer coil).

Hamid - 2013-03-06 10:46:02 +0100

(In reply to comment #4) Thanks for your reply, I just wanted to localise phantom data and I think 'infinite model' better suits.

Robert Oostenveld - 2013-03-06 10:53:05 +0100

(In reply to comment #5) Depends on the phantom whether it is a magnetic or electric dipole phantom. It won't be both. I suggest you visually compare the lead fields for a single dipole, that will show a.o. that the patterns are rotated 90 degrees.

Hamid - 2013-03-06 12:51:11 +0100

(In reply to comment #6) The patterns are at the right place, but there are few mm errors. The error can reduce possibly by a better forward model?

Robert Oostenveld - 2013-03-06 14:11:57 +0100

(In reply to comment #7) > The error can reduce possibly by a better forward model? yes, or a better coregistration. A better forward model here refers to using the appropriate model for the generator (most likely not a magnetic dipole, although those phantoms also exist). If it is an electric dipole, then you'll have to model the geometry. In case of a sphere (most often used for electric dipole phantoms), please use the singlesphere model. An probably you are better off with a dipole fit than a beamformer scan. In case of a beamformer, use a very fine mesh (1 mm) otherwise you might miss the peak. And of course use the appropriate contrast, as without contrast the beamformer is depth biassed. I am closing this bug, as there seems to be nothing wrong with FT code.

Hamid - 2013-03-06 14:28:28 +0100

(In reply to comment #8) Thanks for help,

Hamid - 2013-03-06 14:36:44 +0100

(In reply to comment #8) I was thinking of single sphere, but the phantom is a half sphere and not homogeneous such that I cannot model inside (I even don't have the conductivity and diameter of the plastic shell). I also doubt ELEKTA ltd. has modelled this phantom for forward solution. So assuming 'infinite' model seems straightforward. Please close this bug.

Robert Oostenveld - 2013-03-07 12:38:09 +0100

I recall that the Elekta "dry phantom" produces magnetic fields that are consistent with those of a dipole in a homogenous conducting sphere. It has a smart way of wiring the currents that makes this possible. Please look it up in the Elekta documentation or ask on the neuromag list.

Hamid - 2013-03-07 12:39:28 +0100

(In reply to comment #11) Great, I will

Robert Oostenveld - 2013-04-23 12:06:02 +0200

closed various bugs

Robert Oostenveld - 2013-04-23 12:06:32 +0200

closed various bugs