Source code for CPAC.utils.misc
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
# vi: set ft=python sts=4 ts=4 sw=4 et:
"""
Miscellaneous utilities
"""
# This functionality is adapted from poldracklab/niworkflows:
# https://github.com/poldracklab/niworkflows/blob/master/niworkflows/utils/misc.py
# https://fmriprep.readthedocs.io/
# https://poldracklab.stanford.edu/
# We are temporarily maintaining our own copy for more granular control.
__all__ = ['get_template_specs']
[docs]def get_template_specs(in_template, template_spec=None, default_resolution=1):
"""
Parse template specifications
>>> get_template_specs('MNI152NLin2009cAsym', {'suffix': 'T1w'})[1] # doctest: +SKIP
{'resolution': 1}
>>> get_template_specs('MNI152NLin2009cAsym', {'res': '2', 'suffix': 'T1w'})[1] # doctest: +SKIP
{'resolution': '2'}
>>> get_template_specs('MNIInfant', {'res': '2', 'cohort': '10', 'suffix': 'T1w'})[1] # doctest: +SKIP
{'resolution': '2', 'cohort': '10'}
>>> get_template_specs('MNI152NLin2009cAsym',
... {'suffix': 'T1w', 'cohort': 1})[1] # doctest: +IGNORE_EXCEPTION_DETAIL +SKIP
Traceback (most recent call last):
RuntimeError:
...
>>> get_template_specs('MNI152NLin2009cAsym',
... {'suffix': 'T1w', 'res': '1|2'})[1] # doctest: +IGNORE_EXCEPTION_DETAIL +SKIP
Traceback (most recent call last):
RuntimeError:
...
"""
# from templateflow.api import get as get_template
# Massage spec (start creating if None)
template_spec = template_spec or {}
template_spec['desc'] = template_spec.get('desc', None)
template_spec['atlas'] = template_spec.get('atlas', None)
template_spec['resolution'] = template_spec.pop(
'res', template_spec.get('resolution', default_resolution))
common_spec = {'resolution': template_spec['resolution']}
if 'cohort' in template_spec:
common_spec['cohort'] = template_spec['cohort']
if __name__ == '__main__':
pass