Source code for src.utils.file_path_search
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
File path search
"""
from pathlib import Path
from mne import read_labels_from_annot
from mne.datasets.sample import data_path
__author__ = "Lemahieu Antoine"
__copyright__ = "Copyright 2022"
__credits__ = ["Lemahieu Antoine"]
__license__ = "GNU General Public License v3.0"
__maintainer__ = "Lemahieu Antoine"
__email__ = "Antoine.Lemahieu@ulb.be"
__status__ = "Dev"
[docs]def get_project_root_path():
"""
Get the project root path.
:return: The path to the project root directory.
:rtype: str
"""
path = Path(__file__).parent.parent.parent
return str(path)
[docs]def get_project_freesurfer_path():
"""
Get the project freesurfer path, where the "fsaverage" data is present, used for the source space computations.
If the path does not exist, create the path and download the files.
:return: The project freesurfer path.
:rtype: str
"""
try:
subjects_dir = str(data_path(download=False))
if subjects_dir == ".":
subjects_dir = None
else:
subjects_dir += "/subjects/"
except FileNotFoundError: # Path does not exist, create it and download the data.
subjects_dir = None
return subjects_dir
[docs]def get_directory_path_from_file_path(file_path):
"""
Get the directory of the file given.
:param file_path: The path to the file.
:type file_path: str
:return: The directory.
:rtype: str
"""
path = Path(file_path).parent
return str(path)
[docs]def get_labels_from_subject(subject, subjects_dir):
"""
Get the labels names from a specific subject.
:param subject: The subject used by the source space computations.
:type subject: str
:param subjects_dir: The directory of the subject used by the source space computations.
:type subjects_dir: str
:return: The labels.
:rtype: list of str
"""
labels = read_labels_from_annot(subject, parc='aparc', subjects_dir=subjects_dir)
for i in range(len(labels)):
if labels[i].name == "unknown-lh":
del labels[i]
break
return labels
[docs]def get_image_folder():
"""
Get the image directory.
:return: The image directory.
:rtype: str
"""
return get_project_root_path() + "/image/"