mne.channels.DigMontage¶
- class mne.channels.DigMontage(*, dig=None, ch_names=None)[source]¶
Montage for digitized electrode and headshape position data.
Warning
Montages are typically created using one of the helper functions in the
See Also
section below instead of instantiating this class directly.- Parameters
See also
Notes
New in version 0.9.0.
Methods
__add__
(other)Add two DigMontages.
__hash__
(/)Return hash(self).
add_estimated_fiducials
(subject[, ...])Estimate fiducials based on FreeSurfer
fsaverage
subject.add_mni_fiducials
([subjects_dir, verbose])Add fiducials to a montage in MNI space.
apply_trans
(trans[, verbose])Apply a transformation matrix to the montage.
copy
()Copy the DigMontage object.
Get all channel and fiducial positions.
plot
([scale_factor, show_names, kind, show, ...])Plot a montage.
remove_fiducials
([verbose])Remove the fiducial points from a montage.
rename_channels
(mapping[, allow_duplicates])Rename the channels.
save
(fname)Save digitization points to FIF.
- add_estimated_fiducials(subject, subjects_dir=None, verbose=None)[source]¶
Estimate fiducials based on FreeSurfer
fsaverage
subject.This takes a montage with the
mri
coordinate frame, corresponding to the FreeSurfer RAS (xyz in the volume) T1w image of the specific subject. It will callmne.coreg.get_mni_fiducials()
to estimate LPA, RPA and Nasion fiducial points.- Parameters
- subject
str
The FreeSurfer subject name.
- subjects_dir
str
|pathlib.Path
|None
The path to the directory containing the FreeSurfer subjects reconstructions. If
None
, defaults to theSUBJECTS_DIR
environment variable.- verbosebool |
str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- subject
- Returns
- instinstance of
DigMontage
The instance, modified in-place.
- instinstance of
Notes
Since MNE uses the FIF data structure, it relies on the
head
coordinate frame. Any coordinate frame can be transformed tohead
if the fiducials (i.e. LPA, RPA and Nasion) are defined. One can use this function to estimate those fiducials and then usemontage.get_native_head_t()
to get the head <-> MRI transform.Examples using
add_estimated_fiducials
:
- add_mni_fiducials(subjects_dir=None, verbose=None)[source]¶
Add fiducials to a montage in MNI space.
- Parameters
- subjects_dir
str
|pathlib.Path
|None
The path to the directory containing the FreeSurfer subjects reconstructions. If
None
, defaults to theSUBJECTS_DIR
environment variable.- verbosebool |
str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- subjects_dir
- Returns
- instinstance of
DigMontage
The instance, modified in-place.
- instinstance of
Notes
fsaverage
is in MNI space and so its fiducials can be added to a montage in “mni_tal”. MNI is an ACPC-aligned coordinate system (the posterior commissure is the origin) so since BIDS requires channel locations for ECoG, sEEG and DBS to be in ACPC space, this function can be used to allow those coordinate to be transformed to “head” space (origin between LPA and RPA).Examples using
add_mni_fiducials
:
- apply_trans(trans, verbose=None)[source]¶
Apply a transformation matrix to the montage.
- Parameters
- transinstance of
mne.transforms.Transform
The transformation matrix to be applied.
- verbosebool |
str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- transinstance of
Examples using
apply_trans
:
- copy()[source]¶
Copy the DigMontage object.
- Returns
- diginstance of
DigMontage
The copied DigMontage instance.
- diginstance of
- get_positions()[source]¶
Get all channel and fiducial positions.
- Returns
- positions
dict
A dictionary of the positions for channels (
ch_pos
), coordinate frame (coord_frame
), nasion (nasion
), left preauricular point (lpa
), right preauricular point (rpa
), Head Shape Polhemus (hsp
), and Head Position Indicator(hpi
). E.g.:{ 'ch_pos': {'EEG061': [0, 0, 0]}, 'nasion': [0, 0, 1], 'coord_frame': 'mni_tal', 'lpa': [0, 1, 0], 'rpa': [1, 0, 0], 'hsp': None, 'hpi': None }
- positions
Examples using
get_positions
:
- plot(scale_factor=20, show_names=True, kind='topomap', show=True, sphere=None, verbose=None)[source]¶
Plot a montage.
- Parameters
- scale_factor
float
Determines the size of the points.
- show_namesbool
Whether to show the channel names.
- kind
str
Whether to plot the montage as ‘3d’ or ‘topomap’ (default).
- showbool
Show figure if True.
- sphere
float
| array_like |str
|None
The sphere parameters to use for the cartoon head. Can be array-like of shape (4,) to give the X/Y/Z origin and radius in meters, or a single float to give the radius (origin assumed 0, 0, 0). Can also be a spherical ConductorModel, which will use the origin and radius. Can be “auto” to use a digitization-based fit. Can also be None (default) to use ‘auto’ when enough extra digitization points are available, and 0.095 otherwise. Currently the head radius does not affect plotting.
New in version 0.20.
- verbosebool |
str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- scale_factor
- Returns
- figinstance of
matplotlib.figure.Figure
The figure object.
- figinstance of
Examples using
plot
:
- remove_fiducials(verbose=None)[source]¶
Remove the fiducial points from a montage.
- Parameters
- verbosebool |
str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- verbosebool |
- Returns
- instinstance of
DigMontage
The instance, modified in-place.
- instinstance of
Notes
MNE will transform a montage to the internal “head” coordinate frame if the fiducials are present. Under most circumstances, this is ideal as it standardizes the coordinate frame for things like plotting. However, in some circumstances, such as saving a
raw
with intracranial data to BIDS format, the coordinate frame should not be changed by removing fiducials.
- rename_channels(mapping, allow_duplicates=False)[source]¶
Rename the channels.
- Parameters
- mapping
dict
|callable()
A dictionary mapping the old channel to a new channel name e.g. {‘EEG061’ : ‘EEG161’}. Can also be a callable function that takes and returns a string.
Changed in version 0.10.0: Support for a callable function.
- allow_duplicatesbool
If True (default False), allow duplicates, which will automatically be renamed with
-N
at the end.New in version 0.22.0.
- mapping
- Returns
- instinstance of
DigMontage
The instance. Operates in-place.
- instinstance of
Examples using
rename_channels
: