Forward computations of the EEG/MEG leadfields

FieldTrip has a consistent set of low-level functions for forward computations of the EEG potential or MEG field. The spatial distribution of a known source in a volume conductor is called a leadfield.

The forward module comprises a complete toolbox of high-quality forward methods, i.e. it contains all functions to set up the volume conduction models of the head and to compute the leadfields. Using the high-level FieldTrip functions and the inverse module, these can be used for reconstructing the sources given real experimental MEG and EEG data.

The objective of supplying these low-level functions as a seperate module/toolbox are to

  1. facilitate the reuse of these functions in other open-source projects (e.g. EEGLAB, SPM)
  2. facilitate the implementation and support for new inverse methods, esp. for external users/contributors
  3. facilitate the implementation of advanced features

The low-level functions for source estimation/reconstruction are contained in the forward and inverse toolboxes, which are released together with FieldTrip. If you are interested in using them seperately from the FieldTrip main functions, you can also download them separately here. For reference: in the past the forward and inverse modules were combined in a single “forwinv” toolbox.

Please note that if you are an end-user interested in analyzing experimental EEG/MEG data, you will probably want to use the high-level FieldTrip functions. The functions such as ft_preprocessing, ft_timelockanalysis and ft_sourceanalysis provide a user-friendly interface that take care of all relevant analysis steps and the data bookkeeping.

Module layout

The forward module contains functions with a user interface that will be easily understood by experimenced programmers and methods developers and can be considered medium-level functions. They have a clear and consistent programming interface (API) which hides the specific details particular volume conduction models and that allows software developers to write forward methods without having to worry about integrating it with the inverse methods worry about data handling. The low-level functions on which the functions in the forward module depend are located in a private subdirectory which is not accessible from the MATLAB command line.

The forward module is complemented by an inverse module that contains the implementation of various high-quality inverse source estimation algorithms, such as dipole fitting, beamforming and linear estimation using the minimum-norm approach.

Instead of implementing all forward methods completely from scratch, the FieldTrip forward module makes use of some high quality implementations that have been provided by the original method developers. Some of these contributions consist of MATLAB code, some contain MEX files and some are implemented using an external command-line executable that is called from the command-line. All of these external implementations are fully wrapped in the FieldTrip forward module and do not require specific expertise on behalf of the end-user.

forward EEG and MEG leadfield computations with FIeldTrip

Supported methods for forward computations of the potential or field

The following forward methods are implemented for computing the electric potential (EEG):

  • single sphere
  • multiple concentric spheres with up to 4 shells
  • boundary element model (BEM)
  • leadfield interpolation using a precomputed grid
  • all forward models supported by the Neuromag meg-calc toolbox

The following forward methods are implemented for computing the magnetic field (MEG):

  • single sphere (Cuffin and Cohen, 1977)
  • multiple spheres with one sphere per channel (Huang et al, 1999)
  • realistic single-shell model based on leadfield expansion (Nolte, 2003)
  • leadfield interpolation using a precomputed grid

Definition of the high-level function-calls (user interface)

Normally, end-users of the FieldTrip toolbox would use the functions in the main FieldTrip directory and not be calling the functions that are part of the forward module directly . The high-level FieldTrip functions characterize themself by having a cfg argument as the first input, doing data handling, conversions of objects and try to support backward-compatibility with older end-user analysis scripts.

Some high-level functions that are of relevance for forward modeling are:

These are explained in more detail in the appropriate tutorials.

Definition of the low-level function-calls (API)

Volume conduction models of the head are represented as a MATLAB structure, which content depends on the model details. In the subsequent documentation the volume conduction model structure is referred to as vol. The electrodes in case of EEG, or magnetometers or gradiometers in case of MEG, are described as a MATLAB structure. In teh subsequent documentation this is referred to as elec for electrodes, grad for magmetometers and/or gradiometers, or sens to represent either electrodes or gradiometers.

Using the FieldTrip fileio module one can read in volume conduction models and the definition of the sensor array (electrodes or gradiometers) from file by using the ft_read_vol and/or ft_read_sens functions:

[vol]  = ft_read_vol(filename)
[sens] = ft_read_sens(filename)

This assumes that the volume conduction model was created in external software (e.g. CTF, Neuromag, or ASA) and that the sensor description is stored in an external acquisition-specific file format.

Alternative to reading the volume conduction model from an external file, you can of course also generate a volume conduction model based on a geometrical description of the head. For example, you can fit a single or multiple spheres to a set of points that describes the head surface. FieldTrip provides a separate function for the constructing of a head model for each of the EEG/MEG computational forward methods:

[vol] = ft_headmodel_asa(filename, ...)
[vol] = ft_headmodel_bem_cp(geom, ...)
[vol] = ft_headmodel_concentricspheres(geom, ...)
[vol] = ft_headmodel_dipoli(geom, ...)
[vol] = ft_headmodel_halfspace(location, orientation, ...)
[vol] = ft_headmodel_infinite(...)
[vol] = ft_headmodel_localspheres(geom, grad, ...)
[vol] = ft_headmodel_openmeeg(geom, ...)
[vol] = ft_headmodel_singleshell(geom, sens, ...)
[vol] = ft_headmodel_singlesphere(pnt, ...)

Most of these functions take a geometrical description of the head, skull and/or brain surface as input. These geometrical descriptions of the shape of the head can for example be derived from an anatomical MRI, from a CT scan, or from a Polhemus measurement of the outside of the scalp. In most cases the geometrical model consists of a Nx3 matrix with surface points, which is sometimes accompanied with a description of the triangles that form the surface. The processing of the anatomical data such as MRIs to construct a geometrical model is not part of the forward module and is described elsewhere specifically for MEG and EEG.

Detailed information for each of the functions that creates a head model can be found in the respective reference documentation: ft_headmodel_asa, ft_headmodel_bemcp, ft_headmodel_concentricspheres, ft_headmodel_dipoli, ft_headmodel_halfspace, ft_headmodel_infinite, ft_headmodel_localspheres, ft_headmodel_openmeeg, ft_headmodel_singleshell, ft_headmodel_singlesphere.

If desired the volume conduction model and the sensor array can be spatially transformed using a 4×4 homogenous transformation matrix. E.g. the electrodes can be translated and rotated to align them with head coordinate system, or they can be translated and rotated to switch to another coordinate system.

[vol]  = ft_transform_vol(transform, vol)
[sens] = ft_transform_sens(transform, sens)

The reason for using the ft_transform_sens and ft_transform_vol functions is that they allow you to transform any sensor type (EEG and/or MEG) and any volume conduction model without you having to manipulate the elements within the sens or vol structure.

Up to here the head model only depends on the geometrical description of the volume conductor and is independent of the data, with exception of the MEG localspheres model. The consequence is that the head model can be used for multiple experimental sessions, multiple electrode or gradiometer placements, or different selections of channels for a single session. The head model, i.e. the vol structure, can be saved to disk and re-used in an analysis on the next day.

Following the initial set-up of the head model, but prior to the actual forward computations, the ft_prepare_vol_sens function should be called to link the head model and the sensors and make a data dependent forward model (consisting of the vol and sens).

[vol, sens] = ft_prepare_vol_sens(vol, sens, ...)

The ft_prepare_vol_sens function does a variety of things, depending on the peculiarities of the sensors and head model. It can be used for channel selection, which sometimes involves both the sensors and volume conduction model (e.g. in case of a localspheres MEG model). It will project EEG electrodes (which are described as a Nx3 set of points) onto the scalp surface. It will provide an interpolation of the BEM potential (which is usually computed at the vertices) onto the electrodes. In general the ft_prepare_vol_sens function tries to carry out as many preparations as possible, so that subsequently the leadfields can be computed as efficiently as possible.

Finally the subsequent computation of the EEG potential or MEG field distribution is done with the ft_compute_leadfield function:

[lf] = ft_compute_leadfield(pos, sens, vol, ...)

Most functions have additional optional input arguments that are specified as key-value pairs.

Boundary element method (BEM) implementations

FieldTrip relies on external contributed software for the low-level computations of the BEM system matrix. The external software is included in the standard FieldTrip release in the external directory.

fieldtrip/external/openmeeg

The OpenMEEG software is developed within the Athena project-team at INRIA Sophia-Antipolis and was initiated in 2006 by the Odyssee Project Team (INRIA/ENPC/ENS Ulm). OpenMEEG solves forward problems related to Magneto- and Electro-encephalography (MEG and EEG) using the symmetric Boundary Element Method, providing excellent accuracy.

The MATLAB interface to the OpenMEEG implementation is kindly provided by Maureen Clerc, Alexandre Gramfort, and co-workers.

fieldtrip/external/bemcp

The bemcp implementation is kindly provided by Christophe Phillips, hence the “CP” in the name.

fieldtrip/external/dipoli

The dipoli implementation is kindly provided by Thom Oostendorp.

Finite element method (FEM) implementation

FieldTrip makes use of external contributed software for the low-level computations of the finite element method, which is included in the standard FieldTrip release in the external directory.

fieldtrip/external/simbio

The simbio implementation is kindly provided by Carsten Wolters and colleagues. More information can be found here.

Standard International Units

MATLAB allows the representation of any data in arrays, but does not have an explicit mechanism for dealing with the representation of physical properties of the numbers in those arrays. The FieldTrip data structures provide slightly more information on the units of the numbers represented in the arrays and considers:

  • the geometrical properties of the volume conduction model
  • the conductive properties of the volume conduction model
  • the geometrical properties of the sensor description
  • the geometrical properties of the source model
  • the units of the channel level values (e.g. T, uV or fT/cm)
  • the units of of dipole strength

The forward module functions are written such that they operate correctly if all input data to the functions is specified according to the International System of Units, i.e. in meter, Volt, Tesla, Ohm, Ampere, etc. The high-level FieldTrip code or any other code that calls the forward module functions (e.g. EEGLAB) is responsible for data handling and bookkeeping and for converting MATLAB arrays and structures that represent units into SI units prior to passing the arrays and structures to the forward code.

Related documentation

The literature references to the implemented methods are given here.

Frequently asked questions about forward and inverse modeling:

Example material for forward and inverse modeling:

Tutorial material for forward and inverse modeling:

Recent changes to the forward code

2014-09-11 13:02  jansch

	* [r9795] private/fixname.m: automatically synchronized identical files to revision 9794

2014-09-11 07:49  jansch

	* [r9789] private/fixname.m, private/getsubfield.m, private/issubfield.m,
	  private/setsubfield.m, private/warning_once.m: automatically synchronized identical files
	  to revision 9788

2014-07-08 10:13  roboos

	* [r9707] private/cornerpoints.m: automatically synchronized identical files to revision
	  9706

2014-07-06 09:18  roboos

	* [r9702] ft_inside_vol.m: enhancement - added test script for FEM tutorial, implemented
	  first version of inside/outside detection for sourcemodel in combination with FEM
	  headmodel. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=2632

2014-06-22 07:06  roboos

	* [r9664] private/find_mesh_edge.m, private/getsubfield.m, private/headsurface.m,
	  private/icosahedron.m, private/icosahedron2562.m, private/icosahedron42.m,
	  private/icosahedron642.m, private/ksphere.m, private/normals.m, private/rmsubfield.m,
	  private/setsubfield.m: automatically synchronized identical files to revision 9663

2014-06-17 12:16  roboos

	* [r9634] private/ft_headcoordinates.m: automatically synchronized identical files to
	  revision 9633

2014-06-16 10:55  vlalit

	* [r9630] private/scalingfactor.m: minor fix - make sure input cell arrays are columns

2014-05-15 09:59  vlalit

	* [r9538] ft_senslabel.m: automatically synchronized identical files to revision 9537

2014-05-14 15:46  roboos

	* [r9529] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  9528

2014-05-14 09:51  roboos

	* [r9523] private/ft_getopt.mexmaci64: automatically synchronized identical files to
	  revision 9522

2014-05-13 09:44  roboos

	* [r9513] ft_apply_montage.m: automatically synchronized identical files to revision 9512

2014-05-12 10:31  roboos

	* [r9500] ft_apply_montage.m: bugfix - swapped sel1 and sel2, see previous commit

2014-05-12 10:27  roboos

	* [r9498] ft_apply_montage.m: bugfix - copy the input chantype and chanunits over to the
	  montage. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=2570, 2571 and 2572. This should
	  avoid erorrs due to converting something to unknown.

2014-05-12 09:51  jorhor

	* [r9496] private/scalingfactor.m: bugfix #2571 - eval statements unfixed, unknown
	  introduced

2014-05-12 09:29  jorhor

	* [r9494] private/scalingfactor.m: bugfix #2571 - eval statements fixed

2014-05-12 08:03  roboos

	* [r9491] private/ft_getopt.mexa64: automatically synchronized identical files to revision
	  9490

2014-05-11 11:16  roboos

	* [r9486] ft_apply_montage.m: enhancement - update the scaling of channel units if possible.
	  See http://bugzilla.fcdonders.nl/show_bug.cgi?id=2570

2014-05-11 09:15  roboos

	* [r9484] ft_apply_montage.m: bugfix - fix chanunit/chantype when input data is a montage

2014-05-11 08:46  roboos

	* [r9483] private/scalingfactor.m: automatically synchronized identical files to revision
	  9482

2014-05-11 08:23  roboos

	* [r9480] ft_apply_montage.m: enhancement - improved handling of chantype and chanunit in
	  the application of the montage. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=2532

2014-05-01 16:00  roboos

	* [r9461] ft_senslabel.m, ft_senstype.m: bugfix - resolved an issue with the detection of
	  neuroscan data as ext1020 system. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=2549

2014-04-02 07:30  roboos

	* [r9333] private/ft_getopt.mexa64, private/solid_angle.mexa64: automatically synchronized
	  identical files to revision 9332

2014-03-26 16:53  roboos

	* [r9323] ft_senstype.m: bugfix - improved automatic selection of EEG channels in the
	  eeg1010 case, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=2463

2014-03-26 15:40  dieloz

	* [r9316] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  9315

2014-03-11 14:14  roboos

	* [r9282] private/fixname.m: automatically synchronized identical files to revision 9281

2014-03-07 08:22  jansch

	* [r9255] ft_compute_leadfield.m: enhancement - added explicit backprojection option in the
	  context of rank reduction. default is yes, but can be overruled to return the orthogonal
	  basis vectors

2014-02-24 08:17  roboos

	* [r9230] compat: restructuring - removed the compat directory (and content) from the
	  preproc, fileio and forward subdirectories. The ft_ prefixing has been done long time ago
	  and bugzilla item 1114 is working without problems.

2014-02-24 07:40  roboos

	* [r9227] compat/apply_montage.m, compat/compute_leadfield.m, compat/convert_units.m,
	  compat/estimate_units.m, compat/inside_vol.m, compat/prepare_vol_sens.m,
	  compat/senslabel.m, compat/senstype.m, compat/sourcedepth.m, compat/transform_headshape.m,
	  compat/transform_sens.m, compat/transform_vol.m, compat/voltype.m: enhancement - removed
	  the "Subversion does not use Log" statement from many m-files, see
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2207

2014-02-21 13:04  dieloz

	* [r9216] private/ft_datatype_headmodel.m: bug 1666 - update backward compatibility to
	  consider the field change from c to cond

2014-02-18 08:57  roboos

	* [r9208] private/ft_datatype_headmodel.m, private/ft_datatype_sens.m: enhancement - force
	  conversion of sens and vol to double precision, added test script, removed warning_once
	  (very slow) in the conversion, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=2474

2014-02-17 12:30  roboos

	* [r9207] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  9206

2014-02-04 09:54  roboos

	* [r9183] ft_compute_leadfield.m: documentation - improved the documentation for constrained
	  dipole fitting, clear the variable "pos" at the moment it is not needed any more

2014-01-29 12:57  jorhor

	* [r9144] private/warning_once.m: automatically synchronized identical files to revision
	  9143

2014-01-29 12:52  jorhor

	* [r9141] private/warning_once.m: automatically synchronized identical files to revision
	  9140

2014-01-21 17:41  sardal

	* [r9119] ft_leadfield_openmeeg.m: from Dan Wong: fixes error when dealing with systems
	  where Matlab doesnt recognize the path variable even when OPENMEEG_PATH was set

2014-01-21 09:01  sardal

	* [r9118] ft_leadfield_openmeeg.m: ldLibraryPath0 set to persistent

2014-01-21 08:57  sardal

	* [r9117] ft_compute_leadfield.m: updated function call ft_om_compute_lead ->
	  ft_leadfield_openmeeg

2014-01-08 16:17  roboos

	* [r9083] ft_senslabel.m, ft_senstype.m: bugfix - further improvements to neuromag306alt and
	  neuromag122alt, it should now completely be gone. See
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2418

2014-01-08 10:25  roboos

	* [r9080] ft_senslabel.m, ft_senstype.m: bugfix - do not use neuromag306alt anywhere, only
	  use neuromag306 to indicate the acquisition system type (senstype). I implemented this by
	  concatenating the channel names with andd without space in a 2x306 long list.

2013-12-23 11:43  jansch

	* [r9059] private/ft_headcoordinates.m: automatically synchronized identical files to
	  revision 9058

2013-12-17 13:43  roboos

	* [r9041] ft_headmodel_interpolate.m: ienhancement - speed up the reshuffling of the
	  leadfield matrix by avoiding ind2sub

2013-12-17 12:34  roboos

	* [r9038] ft_headmodel_interpolate.m: enhancement - added support for method=besa, i.e.
	  leadfield interpolation based on BESA FEM forward solution. Moved test script to
	  fieldtrip/test. Do not return fiducials, only electrodes. See
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2336

2013-12-11 09:03  eelspa

	* [r9014] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  9013

2013-12-11 09:02  eelspa

	* [r9013] ft_apply_montage.m, ft_convert_units.m: enhancement(2332): sens structures can now
	  contain .chanposorg, .chanoriorg, and .labelorg fields, which are recognized by
	  ft_megplanar to enable planar gradient computation after e.g. ft_componentanalysis -->
	  ft_rejectcomponent. Note that .chanpos will still (correctly) reflect the ill-defined
	  positions by containing all NaNs.

2013-12-10 14:31  roboos

	* [r9009] ft_senslabel.m, ft_senstype.m: bugfix - resolved bug in senstype detection for
	  neuromag306alt, also fixed neuromag122alt and yokogawa9. Made test script that goes over
	  almost all options. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=2418

2013-12-10 08:24  jansch

	* [r9001] private/ft_warp_apply.m: automatically synchronized identical files to revision
	  9000

2013-12-09 13:23  roboos

	* [r8997] ft_compute_leadfield.m, ft_headmodel_interpolate.m, ft_prepare_vol_sens.m,
	  private/leadfield_interpolate.m: enhancement and bugfix - updated the
	  leadfield_interpolate code and test script, see
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=1317

2013-12-09 10:19  eelspa

	* [r8989] ft_apply_montage.m: now properly restoring enhancement

2013-12-09 09:28  eelspa

	* [r8986] ft_apply_montage.m: restoring performance enhancement (see bug 1886)

2013-12-06 11:48  roboos

	* [r8983] private/ft_hastoolbox.m: automatically synchronized identical files to revision
	  8982

2013-12-05 10:51  roboos

	* [r8973] ft_import_surf.m: restructuring - all reading is now part of ft_read_headshape,
	  see http://bugzilla.fcdonders.nl/show_bug.cgi?id=2396

2013-12-05 10:48  roboos

	* [r8972] ft_iso2surf.m: restructuring - all functionality is now in ft_prepare_mesh, see
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2397

2013-12-05 08:41  roboos

	* [r8964] private/ft_datatype_headmodel.m: automatically synchronized identical files to
	  revision 8963

2013-12-05 08:41  roboos

	* [r8963] ft_compute_leadfield.m, ft_headmodel_concentricspheres.m,
	  ft_headmodel_singlesphere.m, private/eeg_leadfield1.m, private/eeg_leadfield4.m,
	  private/eeg_leadfield4_prepare.m: restructuring - use vol.cond instead of vol.c for teh
	  conductivity, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=1756#c21

2013-12-05 07:48  roboos

	* [r8962] private/ama2vol.m, private/loadama.m: restructuring - search-and-replaced dhk by
	  tri, this should make the code more internally consistent. See
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2292

2013-12-05 07:43  roboos

	* [r8961] private/find_mesh_edge.m, private/find_triangle_neighbours.m,
	  private/icosahedron.m, private/icosahedron162.m, private/icosahedron2562.m,
	  private/icosahedron42.m, private/icosahedron642.m, private/normals.m: automatically
	  synchronized identical files to revision 8960

2013-12-02 10:01  roboos

	* [r8933] ft_senstype.m: automatically synchronized identical files to revision 8932

2013-12-02 08:10  roboos

	* [r8928] ft_prepare_vol_sens.m: enhancement - reverted part of the change in commit 8922
	  and 8925. Rather than recomputing the channel positions for MEG, I keep the selected
	  channel positions. That is much cheaper and less error-prone than recomputing them. They
	  are still recomputed for EEG. See also http://bugzilla.fcdonders.nl/show_bug.cgi?id=2399

2013-11-29 20:14  roboos

	* [r8925] ft_apply_montage.m, ft_prepare_vol_sens.m: bugfix - the channel position was not
	  added correctly back to the sensor array, see
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2399

2013-11-29 14:53  jansch

	* [r8923] ft_apply_montage.m: bugfix - (2235) also keep the order of chanunit/chantype
	  consistent

2013-11-29 13:42  roboos

	* [r8922] ft_prepare_vol_sens.m: enhancement - only keep the fields in localspheres that are
	  really needed, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=2377#c32

2013-11-29 13:23  roboos

	* [r8921] ft_prepare_vol_sens.m: bugfix - do not use size(chanpos) to determine teh number
	  of channels, use length(label) instead

2013-11-29 13:20  roboos

	* [r8920] private/channelposition.m: automatically synchronized identical files to revision
	  8919

2013-11-29 13:20  roboos

	* [r8919] ft_prepare_vol_sens.m: enhancement - improved handling of EEG channel positions,
	  ensure that channel position and orientation cannot be messed up in ft_prepare_vol_sens

2013-11-29 12:46  roboos

	* [r8918] ft_headmodel_fns.m: bugfix - use the electorde positions, not the channel
	  positions

2013-11-29 11:50  roboos

	* [r8916] private/ft_hastoolbox.m: automatically synchronized identical files to revision
	  8915

2013-11-29 11:03  roboos

	* [r8913] private/ft_hastoolbox.m: automatically synchronized identical files to revision
	  8912

2013-11-28 23:46  vlalit

	* [r8908] ft_prepare_vol_sens.m: enhancement - related to
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2377

2013-11-26 21:59  roboos

	* [r8863] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  8862

2013-11-26 20:39  roboos

	* [r8861] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  8860

2013-11-25 15:40  eelspa

	* [r8845] private/match_str.m: automatically synchronized identical files to revision 8844

2013-11-22 12:33  roboos

	* [r8836] ft_convert_units.m: bugfix - resolved issue with inconsistent units for the
	  beamformer_extended tutorial, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=2387. I
	  also added two point-in-time copies of the relevant tutorials as test scripts for future
	  reference

2013-11-20 22:28  roboos

	* [r8826] ft_senslabel.m: bugfix and enhancement - improved the handling of all EEG channels
	  in the electrode definition in case the chantype is not yet specified. Updated the test
	  script with a case with unknown EEG channel labels. There was also an obscure error in
	  ft_senslabel that I fixed. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=2377

2013-11-20 22:00  roboos

	* [r8825] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  8824

2013-11-20 22:00  roboos

	* [r8824] ft_apply_montage.m, ft_senstype.m: enhancement - improved support for handling of
	  electrode sensor definition for upcoming ft_datatype_sens, see also
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2377

2013-11-20 20:19  roboos

	* [r8823] ft_headmodel_infinite.m: bugfix - switch failed on empty input, detected by
	  regression of test_headmodel_infinite

2013-11-19 14:23  roboos

	* [r8817] ft_headmodel_concentricspheres.m, ft_headmodel_fns.m, ft_headmodel_infinite.m,
	  ft_headmodel_localspheres.m, ft_headmodel_singlesphere.m: enhancement - do not allow the
	  user to specify the units for the ft_headmodel_xxx functions, the geometry should be used
	  to determine the units consistently

2013-11-19 12:20  roboos

	* [r8814] private/current_dipole.m, private/magnetic_dipole.m: bugfix - fixed regression
	  error revealed by test_neuromag_units in magnetic_dipole due to a change in variable names
	  in http://code.google.com/p/fieldtrip/source/detail?r=8809

2013-11-19 12:13  roboos

	* [r8812] ft_senslabel.m: bugfix - resolved regression error in test_bug1871 due to changes
	  in ft_senslabel, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=1871#c9

2013-11-18 13:32  roboos

	* [r8811] ft_compute_leadfield.m, ft_prepare_vol_sens.m, private/current_dipole.m:
	  enhancement - added forward solution for MEG due to a current dipole in a homogenous
	  infinite medium

2013-11-18 13:30  roboos

	* [r8810] ft_headmodel_bemcp.m: enhancement - removed unused option from code

2013-11-18 13:30  roboos

	* [r8809] private/magnetic_dipole.m: bugfix - the value of mu0 was off by 4*pi

2013-11-18 13:28  roboos

	* [r8807] ft_convert_units.m: enhancement - better deal with volume conduction model with
	  multiple boundaries, remove unit from vol.bnd.unit and put it at the top level

2013-11-18 11:41  roboos

	* [r8803] ft_senslabel.m: bugfix - fixed regression error in test_bug1288 due to change in
	  planarchannelse/ft_senslabel

2013-11-18 09:40  roboos

	* [r8796] ft_senslabel.m: restructuring - removed the planarchannelset function, moved
	  functionality into ft_senslabel. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=1919

2013-11-15 19:59  roboos

	* [r8793] private/channelposition.m: automatically synchronized identical files to revision
	  8792

2013-11-15 19:56  roboos

	* [r8791] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  8790

2013-11-15 19:56  roboos

	* [r8790] ft_prepare_vol_sens.m, private/channelposition.m: bugfix - resolved regression
	  error due to typo and due to confusion in meg+ref channels, now it always works for all
	  channels

2013-11-15 10:42  roboos

	* [r8786] private/channelposition.m: bugfix - fixed problem in channelposition for elec with
	  tra, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=2377

2013-11-15 10:28  roboos

	* [r8785] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  8784

2013-11-14 13:39  roboos

	* [r8780] ft_compute_leadfield.m: bugfix - divide with dipoleunit scaling rather than
	  multiply, see http://bugzilla.fcdonders.nl/show_bug.cgi?id=2377

2013-11-14 10:34  roboos

	* [r8777] ft_prepare_vol_sens.m: enhancement - recompute channel positions after projecting
	  electrodes to the volume conductor surface, see
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2376

2013-11-14 09:04  roboos

	* [r8776] COPYING, README, ft_import_surf.m, ft_iso2surf.m, ft_leadfield_openmeeg.m,
	  private/eeg_infinite_monopole.m, private/ft_datatype_headmodel.m, private/lmoutrn.m,
	  private/mesh2edge.m, private/pinvNx2.m, private/plinprojn.m, private/ptriprojn.m,
	  private/rmsubfield.m, private/setsubfield.m, private/surface_nesting.m: enhancement -
	  cleaned up the svn properties according to
	  http://fieldtrip.fcdonders.nl/development/svn#keeping_the_svn_repository_tidy, see also
	  http://bugzilla.fcdonders.nl/show_bug.cgi?id=2261#c7

2013-11-11 13:14  roboos

	* [r8757] ft_average_sens.m, private/ft_headcoordinates.m, private/headcoordinates.m:
	  restructuring - renamed headcoordinates into ft_headcoordinates, in the next commit I'll
	  also move it from private to utilities

2013-11-11 12:53  roboos

	* [r8755] private/ft_warp_apply.m: automatically synchronized identical files to revision
	  8754

2013-11-11 12:45  roboos

	* [r8753] ft_headmodel_fns.m, private/cornerpoints.m, private/ft_warp_apply.m,
	  private/leadfield_fns.m, private/leadfield_interpolate.m, private/warp_apply.m:
	  restructuring - renamed warp_apply into ft_warp_apply (idem for warp_optim and
	  warp_error), updated all calls to these functions, made compatibility wrappers in
	  utilities/compat. See http://bugzilla.fcdonders.nl/show_bug.cgi?id=316

2013-11-11 12:02  roboos

	* [r8752] private/ft_datatype_sens.m: automatically synchronized identical files to revision
	  8751

2013-11-08 20:16  roboos

	* [r8746] ft_inside_vol.m: bugfix - also detect openmeeg for inside detection using vol.bnd

2013-11-08 09:57  roboos

	* [r8743] private/find_mesh_edge.m, private/find_triangle_neighbours.m,
	  private/icosahedron.m, private/icosahedron162.m, private/icosahedron2562.m,
	  private/icosahedron42.m, private/icosahedron642.m, private/ksphere.m,
	  private/projecttri.m, private/retriangulate.m: bugfix - copied some files over from
	  private to forward/private, which was needed because ft_inside_vol now uses the headshape
	  function, and ft_inside_vol is being called from ft_prepare_sourcemodel. This change (and
	  hence this bug of missing dependencies) was introduced by me in revision 8739.

2013-11-08 08:17  roboos

	* [r8740] private/project_elec.m: automatically synchronized identical files to revision
	  8739
development/forward.txt · Last modified: 2014/10/08 09:03 by robert

You are here: startdevelopmentforward
This DokuWiki features an Anymorphic Webdesign theme, customised by Eelke Spaak and Stephen Whitmarsh.
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0