freesurfer.py 690 B

12345678910111213141516171819
  1. import os
  2. import re
  3. import typing
  4. # pylint: disable=too-few-public-methods
  5. class HippocampalSubfieldsVolumeFile:
  6. # https://surfer.nmr.mgh.harvard.edu/fswiki/HippocampalSubfields
  7. FILENAME_PATTERN = r'^(?P<h>[lr])h\.hippoSfVolumes' \
  8. r'(?P<T1>-T1)?(-(?P<analysis_id>.+?))?\.v10.txt$'
  9. FILENAME_REGEX = re.compile(FILENAME_PATTERN)
  10. @staticmethod
  11. def find(root_dir_path: str,
  12. filename_regex: typing.Pattern = FILENAME_REGEX) -> typing.Iterator[str]:
  13. for dirpath, _, filenames in os.walk(root_dir_path):
  14. for filename in filter(filename_regex.search, filenames):
  15. yield os.path.join(dirpath, filename)