Source code for osl_dynamics.files.functions
"""Functions used to manage files kept within osl-dynamics."""
from os import path
[docs]
def check_exists(filename: str, directory: str) -> str:
"""Looks for a file in the current working directory and in osl-dynamics.
Parameters
----------
filename : str
Name of file to look for or a path to a file.
directory : str
Path to directory to look in.
Returns
-------
filename : str
Full path to the file if found.
Raises
------
FileNotFoundError
If the file could not be found.
"""
if not path.exists(filename):
# Mapping from old parcellation filenames to new ones
old_filenames = {
"Glasser50_space-MNI152NLin6_res-8x8x8.nii.gz": "atlas-Glasser_nparc-50_space-MNI_res-8x8x8.nii.gz",
"Glasser52_binary_space-MNI152NLin6_res-8x8x8.nii.gz": "atlas-Glasser_nparc-52_space-MNI_res-8x8x8.nii.gz",
"fmri_d100_parcellation_with_PCC_reduced_2mm_ss5mm_ds8mm.nii.gz": "atlas-Giles_nparc-38_space-MNI_res-8x8x8.nii.gz",
"fmri_d100_parcellation_with_PCC_tighterMay15_v2_8mm.nii.gz": "atlas-Giles_nparc-39_space-MNI_res-8x8x8.nii.gz",
"fmri_d100_parcellation_with_3PCC_ips_reduced_2mm_ss5mm_ds8mm_adj.nii.gz": "atlas-Giles_nparc-42_space-MNI_res-8x8x8.nii.gz",
"dk_cortical.nii.gz": "atlas-DK_nparc-68_space-MNI_res-8x8x8.nii.gz",
"aal_cortical_merged_8mm_stacked.nii.gz": "atlas-AAL_nparc-78_space-MNI_res-8x8x8.nii.gz",
}
if filename in old_filenames:
filename = old_filenames[filename]
if path.exists(f"{directory}/{filename}"):
filename = f"{directory}/{filename}"
else:
raise FileNotFoundError(filename)
return filename