initial commit
This commit is contained in:
3
mne/datasets/_fsaverage/__init__.py
Normal file
3
mne/datasets/_fsaverage/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# Authors: The MNE-Python contributors.
|
||||
# License: BSD-3-Clause
|
||||
# Copyright the MNE-Python contributors.
|
||||
103
mne/datasets/_fsaverage/base.py
Normal file
103
mne/datasets/_fsaverage/base.py
Normal file
@@ -0,0 +1,103 @@
|
||||
# Authors: The MNE-Python contributors.
|
||||
# License: BSD-3-Clause
|
||||
# Copyright the MNE-Python contributors.
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from ...utils import get_subjects_dir, set_config, verbose
|
||||
from ..utils import _get_path, _manifest_check_download
|
||||
|
||||
FSAVERAGE_MANIFEST_PATH = Path(__file__).parent
|
||||
|
||||
|
||||
@verbose
|
||||
def fetch_fsaverage(subjects_dir=None, *, verbose=None):
|
||||
"""Fetch and update fsaverage.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
subjects_dir : str | None
|
||||
The path to use as the subjects directory in the MNE-Python
|
||||
config file. None will use the existing config variable (i.e.,
|
||||
will not change anything), and if it does not exist, will use
|
||||
``~/mne_data/MNE-fsaverage-data``.
|
||||
%(verbose)s
|
||||
|
||||
Returns
|
||||
-------
|
||||
fs_dir : Path
|
||||
The fsaverage directory.
|
||||
(essentially ``subjects_dir / 'fsaverage'``).
|
||||
|
||||
.. versionchanged:: 1.8
|
||||
A :class:`pathlib.Path` object is returned instead of a string.
|
||||
|
||||
Notes
|
||||
-----
|
||||
This function is designed to provide
|
||||
|
||||
1. All modern (Freesurfer 6) fsaverage subject files
|
||||
2. All MNE fsaverage parcellations
|
||||
3. fsaverage head surface, fiducials, head<->MRI trans, 1- and 3-layer
|
||||
BEMs (and surfaces)
|
||||
|
||||
This function will compare the contents of ``subjects_dir/fsaverage``
|
||||
to the ones provided in the remote zip file. If any are missing,
|
||||
the zip file is downloaded and files are updated. No files will
|
||||
be overwritten.
|
||||
|
||||
.. versionadded:: 0.18
|
||||
"""
|
||||
# Code used to create the BEM (other files taken from MNE-sample-data):
|
||||
#
|
||||
# $ mne watershed_bem -s fsaverage -d $PWD --verbose info --copy
|
||||
# $ python
|
||||
# >>> bem = mne.make_bem_model('fsaverage', subjects_dir='.', verbose=True)
|
||||
# >>> mne.write_bem_surfaces(
|
||||
# ... 'fsaverage/bem/fsaverage-5120-5120-5120-bem.fif', bem)
|
||||
# >>> sol = mne.make_bem_solution(bem, verbose=True)
|
||||
# >>> mne.write_bem_solution(
|
||||
# ... 'fsaverage/bem/fsaverage-5120-5120-5120-bem-sol.fif', sol)
|
||||
# >>> import os
|
||||
# >>> import os.path as op
|
||||
# >>> names = sorted(op.join(r, f)
|
||||
# ... for r, d, files in os.walk('fsaverage')
|
||||
# ... for f in files)
|
||||
# with open('fsaverage.txt', 'w') as fid:
|
||||
# fid.write('\n'.join(names))
|
||||
#
|
||||
subjects_dir = _set_montage_coreg_path(subjects_dir)
|
||||
subjects_dir = subjects_dir.expanduser().absolute()
|
||||
fs_dir = subjects_dir / "fsaverage"
|
||||
fs_dir.mkdir(parents=True, exist_ok=True)
|
||||
_manifest_check_download(
|
||||
manifest_path=FSAVERAGE_MANIFEST_PATH / "root.txt",
|
||||
destination=subjects_dir,
|
||||
url="https://osf.io/3bxqt/download?version=2",
|
||||
hash_="5133fe92b7b8f03ae19219d5f46e4177",
|
||||
)
|
||||
_manifest_check_download(
|
||||
manifest_path=FSAVERAGE_MANIFEST_PATH / "bem.txt",
|
||||
destination=subjects_dir / "fsaverage",
|
||||
url="https://osf.io/7ve8g/download?version=4",
|
||||
hash_="b31509cdcf7908af6a83dc5ee8f49fb1",
|
||||
)
|
||||
return fs_dir
|
||||
|
||||
|
||||
def _get_create_subjects_dir(subjects_dir):
|
||||
subjects_dir = get_subjects_dir(subjects_dir, raise_error=False)
|
||||
if subjects_dir is None:
|
||||
subjects_dir = _get_path(None, "MNE_DATA", "montage coregistration")
|
||||
subjects_dir = subjects_dir / "MNE-fsaverage-data"
|
||||
subjects_dir.mkdir(parents=True, exist_ok=True)
|
||||
return subjects_dir
|
||||
|
||||
|
||||
def _set_montage_coreg_path(subjects_dir=None):
|
||||
"""Set a subject directory suitable for montage(-only) coregistration."""
|
||||
subjects_dir = _get_create_subjects_dir(subjects_dir)
|
||||
old_subjects_dir = get_subjects_dir(None, raise_error=False)
|
||||
if old_subjects_dir is None:
|
||||
set_config("SUBJECTS_DIR", subjects_dir)
|
||||
return subjects_dir
|
||||
12
mne/datasets/_fsaverage/bem.txt
Normal file
12
mne/datasets/_fsaverage/bem.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
bem/fsaverage-fiducials.fif
|
||||
bem/fsaverage-5120-5120-5120-bem.fif
|
||||
bem/fsaverage-head.fif
|
||||
bem/outer_skin.surf
|
||||
bem/brain.surf
|
||||
bem/fsaverage-trans.fif
|
||||
bem/fsaverage-ico-5-src.fif
|
||||
bem/fsaverage-vol-5-src.fif
|
||||
bem/outer_skull.surf
|
||||
bem/inner_skull.surf
|
||||
bem/fsaverage-5120-5120-5120-bem-sol.fif
|
||||
bem/fsaverage-inner_skull-bem.fif
|
||||
179
mne/datasets/_fsaverage/root.txt
Normal file
179
mne/datasets/_fsaverage/root.txt
Normal file
@@ -0,0 +1,179 @@
|
||||
fsaverage/bem/fsaverage-head-dense.fif
|
||||
fsaverage/bem/fsaverage-head-medium.fif
|
||||
fsaverage/bem/fsaverage-head.fif
|
||||
fsaverage/bem/fsaverage-ico-5-src.fif
|
||||
fsaverage/label/lh.BA1.label
|
||||
fsaverage/label/lh.BA2.label
|
||||
fsaverage/label/lh.BA3a.label
|
||||
fsaverage/label/lh.BA3b.label
|
||||
fsaverage/label/lh.BA44.label
|
||||
fsaverage/label/lh.BA45.label
|
||||
fsaverage/label/lh.BA4a.label
|
||||
fsaverage/label/lh.BA4p.label
|
||||
fsaverage/label/lh.BA6.label
|
||||
fsaverage/label/lh.HCPMMP1.annot
|
||||
fsaverage/label/lh.HCPMMP1_combined.annot
|
||||
fsaverage/label/lh.MT.label
|
||||
fsaverage/label/lh.Medial_wall.label
|
||||
fsaverage/label/lh.PALS_B12.labels.gii
|
||||
fsaverage/label/lh.PALS_B12_Brodmann.annot
|
||||
fsaverage/label/lh.PALS_B12_Lobes.annot
|
||||
fsaverage/label/lh.PALS_B12_OrbitoFrontal.annot
|
||||
fsaverage/label/lh.PALS_B12_Visuotopic.annot
|
||||
fsaverage/label/lh.V1.label
|
||||
fsaverage/label/lh.V2.label
|
||||
fsaverage/label/lh.Yeo2011_17Networks_N1000.annot
|
||||
fsaverage/label/lh.Yeo2011_7Networks_N1000.annot
|
||||
fsaverage/label/lh.aparc.a2005s.annot
|
||||
fsaverage/label/lh.aparc.a2009s.annot
|
||||
fsaverage/label/lh.aparc.annot
|
||||
fsaverage/label/lh.aparc.label
|
||||
fsaverage/label/lh.aparc_sub.annot
|
||||
fsaverage/label/lh.cortex.label
|
||||
fsaverage/label/lh.entorhinal.label
|
||||
fsaverage/label/lh.oasis.chubs.annot
|
||||
fsaverage/label/rh.BA1.label
|
||||
fsaverage/label/rh.BA2.label
|
||||
fsaverage/label/rh.BA3a.label
|
||||
fsaverage/label/rh.BA3b.label
|
||||
fsaverage/label/rh.BA44.label
|
||||
fsaverage/label/rh.BA45.label
|
||||
fsaverage/label/rh.BA4a.label
|
||||
fsaverage/label/rh.BA4p.label
|
||||
fsaverage/label/rh.BA6.label
|
||||
fsaverage/label/rh.HCPMMP1.annot
|
||||
fsaverage/label/rh.HCPMMP1_combined.annot
|
||||
fsaverage/label/rh.MT.label
|
||||
fsaverage/label/rh.Medial_wall.label
|
||||
fsaverage/label/rh.PALS_B12.labels.gii
|
||||
fsaverage/label/rh.PALS_B12_Brodmann.annot
|
||||
fsaverage/label/rh.PALS_B12_Lobes.annot
|
||||
fsaverage/label/rh.PALS_B12_OrbitoFrontal.annot
|
||||
fsaverage/label/rh.PALS_B12_Visuotopic.annot
|
||||
fsaverage/label/rh.V1.label
|
||||
fsaverage/label/rh.V2.label
|
||||
fsaverage/label/rh.Yeo2011_17Networks_N1000.annot
|
||||
fsaverage/label/rh.Yeo2011_7Networks_N1000.annot
|
||||
fsaverage/label/rh.aparc.a2005s.annot
|
||||
fsaverage/label/rh.aparc.a2009s.annot
|
||||
fsaverage/label/rh.aparc.annot
|
||||
fsaverage/label/rh.aparc.label
|
||||
fsaverage/label/rh.aparc_sub.annot
|
||||
fsaverage/label/rh.cortex.label
|
||||
fsaverage/label/rh.entorhinal.label
|
||||
fsaverage/label/rh.oasis.chubs.annot
|
||||
fsaverage/mri.2mm/README
|
||||
fsaverage/mri.2mm/T1.mgz
|
||||
fsaverage/mri.2mm/aseg.mgz
|
||||
fsaverage/mri.2mm/brain.mgz
|
||||
fsaverage/mri.2mm/brainmask.mgz
|
||||
fsaverage/mri.2mm/mni305.cor.mgz
|
||||
fsaverage/mri.2mm/orig.mgz
|
||||
fsaverage/mri.2mm/reg.2mm.dat
|
||||
fsaverage/mri.2mm/reg.2mm.mni152.dat
|
||||
fsaverage/mri.2mm/subcort.mask.mgz
|
||||
fsaverage/mri.2mm/subcort.prob.mgz
|
||||
fsaverage/mri/T1.mgz
|
||||
fsaverage/mri/aparc+aseg.mgz
|
||||
fsaverage/mri/aparc.a2005s+aseg.mgz
|
||||
fsaverage/mri/aparc.a2009s+aseg.mgz
|
||||
fsaverage/mri/aseg.mgz
|
||||
fsaverage/mri/brain.mgz
|
||||
fsaverage/mri/brainmask.mgz
|
||||
fsaverage/mri/lh.ribbon.mgz
|
||||
fsaverage/mri/mni305.cor.mgz
|
||||
fsaverage/mri/orig.mgz
|
||||
fsaverage/mri/p.aseg.mgz
|
||||
fsaverage/mri/rh.ribbon.mgz
|
||||
fsaverage/mri/ribbon.mgz
|
||||
fsaverage/mri/seghead.mgz
|
||||
fsaverage/mri/subcort.prob.log
|
||||
fsaverage/mri/subcort.prob.mgz
|
||||
fsaverage/mri/transforms/reg.mni152.2mm.dat
|
||||
fsaverage/mri/transforms/talairach.xfm
|
||||
fsaverage/scripts/build-stamp.txt
|
||||
fsaverage/scripts/csurfdir
|
||||
fsaverage/scripts/make_average_surface.log
|
||||
fsaverage/scripts/make_average_volume.log
|
||||
fsaverage/scripts/mkheadsurf.log
|
||||
fsaverage/scripts/mris_inflate.log
|
||||
fsaverage/scripts/mris_inflate_lh.log
|
||||
fsaverage/scripts/mris_inflate_rh.log
|
||||
fsaverage/scripts/recon-all-status.log
|
||||
fsaverage/scripts/recon-all.cmd
|
||||
fsaverage/scripts/recon-all.done
|
||||
fsaverage/scripts/recon-all.env
|
||||
fsaverage/scripts/recon-all.env.bak
|
||||
fsaverage/scripts/recon-all.local-copy
|
||||
fsaverage/scripts/recon-all.log
|
||||
fsaverage/surf/lh.area
|
||||
fsaverage/surf/lh.area.seghead
|
||||
fsaverage/surf/lh.avg_curv
|
||||
fsaverage/surf/lh.avg_sulc
|
||||
fsaverage/surf/lh.avg_thickness
|
||||
fsaverage/surf/lh.cortex.patch.3d
|
||||
fsaverage/surf/lh.cortex.patch.flat
|
||||
fsaverage/surf/lh.curv
|
||||
fsaverage/surf/lh.curv.seghead
|
||||
fsaverage/surf/lh.fsaverage_sym.sphere.reg
|
||||
fsaverage/surf/lh.inflated
|
||||
fsaverage/surf/lh.inflated.H
|
||||
fsaverage/surf/lh.inflated.K
|
||||
fsaverage/surf/lh.inflated_avg
|
||||
fsaverage/surf/lh.inflated_pre
|
||||
fsaverage/surf/lh.orig
|
||||
fsaverage/surf/lh.orig.avg.area.mgh
|
||||
fsaverage/surf/lh.orig_avg
|
||||
fsaverage/surf/lh.pial
|
||||
fsaverage/surf/lh.pial.avg.area.mgh
|
||||
fsaverage/surf/lh.pial_avg
|
||||
fsaverage/surf/lh.pial_semi_inflated
|
||||
fsaverage/surf/lh.seghead
|
||||
fsaverage/surf/lh.seghead.inflated
|
||||
fsaverage/surf/lh.smoothwm
|
||||
fsaverage/surf/lh.sphere
|
||||
fsaverage/surf/lh.sphere.left_right
|
||||
fsaverage/surf/lh.sphere.reg
|
||||
fsaverage/surf/lh.sphere.reg.avg
|
||||
fsaverage/surf/lh.sulc
|
||||
fsaverage/surf/lh.sulc.seghead
|
||||
fsaverage/surf/lh.thickness
|
||||
fsaverage/surf/lh.white
|
||||
fsaverage/surf/lh.white.avg.area.mgh
|
||||
fsaverage/surf/lh.white_avg
|
||||
fsaverage/surf/lh.white_avg.H
|
||||
fsaverage/surf/lh.white_avg.K
|
||||
fsaverage/surf/mris_preproc.surface.lh.log
|
||||
fsaverage/surf/mris_preproc.surface.rh.log
|
||||
fsaverage/surf/rh.area
|
||||
fsaverage/surf/rh.avg_curv
|
||||
fsaverage/surf/rh.avg_sulc
|
||||
fsaverage/surf/rh.avg_thickness
|
||||
fsaverage/surf/rh.cortex.patch.3d
|
||||
fsaverage/surf/rh.cortex.patch.flat
|
||||
fsaverage/surf/rh.curv
|
||||
fsaverage/surf/rh.fsaverage_sym.sphere.reg
|
||||
fsaverage/surf/rh.inflated
|
||||
fsaverage/surf/rh.inflated.H
|
||||
fsaverage/surf/rh.inflated.K
|
||||
fsaverage/surf/rh.inflated_avg
|
||||
fsaverage/surf/rh.inflated_pre
|
||||
fsaverage/surf/rh.orig
|
||||
fsaverage/surf/rh.orig.avg.area.mgh
|
||||
fsaverage/surf/rh.orig_avg
|
||||
fsaverage/surf/rh.pial
|
||||
fsaverage/surf/rh.pial.avg.area.mgh
|
||||
fsaverage/surf/rh.pial_avg
|
||||
fsaverage/surf/rh.pial_semi_inflated
|
||||
fsaverage/surf/rh.smoothwm
|
||||
fsaverage/surf/rh.sphere
|
||||
fsaverage/surf/rh.sphere.left_right
|
||||
fsaverage/surf/rh.sphere.reg
|
||||
fsaverage/surf/rh.sphere.reg.avg
|
||||
fsaverage/surf/rh.sulc
|
||||
fsaverage/surf/rh.thickness
|
||||
fsaverage/surf/rh.white
|
||||
fsaverage/surf/rh.white.avg.area.mgh
|
||||
fsaverage/surf/rh.white_avg
|
||||
fsaverage/surf/rh.white_avg.H
|
||||
fsaverage/surf/rh.white_avg.K
|
||||
Reference in New Issue
Block a user