diff --git a/fsl/utils/assertions.py b/fsl/utils/assertions.py index 9d6d748c8c0787a57c24311e86128314af0a6668..35dde034df989e70727c29bd90ddb9d42634c792 100644 --- a/fsl/utils/assertions.py +++ b/fsl/utils/assertions.py @@ -12,11 +12,13 @@ import os.path as op import nibabel as nib +import fsl.data.melodicanalysis as fslma + def assertFileExists(*args): """Raise an exception if the specified file/folder/s do not exist.""" for f in args: - assert op.exists(f), "file/folder does not exist: {0}".format(f) + assert op.exists(f), 'file/folder does not exist: {}'.format(f) def assertIsNifti3D(*args): @@ -25,7 +27,7 @@ def assertIsNifti3D(*args): assertIsNifti(f) d = nib.load(f) assert len(d.shape) == 3, \ - "incorrect shape for 3D nifti: {0}:{1}".format(d.shape, f) + 'incorrect shape for 3D nifti: {}:{}'.format(d.shape, f) def assertIsNifti4D(*args): @@ -34,7 +36,7 @@ def assertIsNifti4D(*args): assertIsNifti(f) d = nib.load(f) assert len(d.shape) == 4, \ - "incorrect shape for 4D nifti: {0}:{1}".format(d.shape, f) + 'incorrect shape for 4D nifti: {}:{}'.format(d.shape, f) def assertIsNifti(*args): @@ -42,7 +44,7 @@ def assertIsNifti(*args): for f in args: assert isinstance(f, nib.nifti1.Nifti1Image) or \ f.endswith('.nii.gz') or f.endswith('.nii'), \ - "file must be a nifti (.nii or .nii.gz): {0}".format(f) + 'file must be a nifti (.nii or .nii.gz): {}'.format(f) def assertNiftiShape(shape, *args): @@ -50,35 +52,27 @@ def assertNiftiShape(shape, *args): for fname in args: d = nib.load(fname) assert d.shape == shape, \ - "incorrect shape ({2}) for nifti: {0}:{1}".format(d.shape, fname, - shape) + 'incorrect shape ({}) for nifti: {}:{}'.format( + shape, d.shape, fname) def assertIsSurfGifti(*args): """Raise an exception if the specified file/s are not surface gifti.""" for fname in args: assert fname.endswith('.surf.gii'), \ - "file must be a surface gifti (surf.gii): {0}".format(fname) + 'file must be a surface gifti (surf.gii): {}'.format(fname) def assertIsFuncGifti(*args): """Raise an exception if the specified file/s are not functional gifti.""" for fname in args: assert fname.endswith('.func.gii'), \ - "file must be a functional gifti (func.gii): {0}".format(fname) + 'file must be a functional gifti (func.gii): {}'.format(fname) + def assertIsMelodicDir(path): """Raise an exception if the specified path is not a melodic directory. - :arg path: Path to melodic directory - :type path: string + :arg path: Path to melodic directory """ - assert op.exists(path), "melodic dir does not exist: {0}".format(path) - assert path.endswith('.ica'), \ - "melodic directory must end in *.ica: {0}".format(path) - assert op.exists(op.join(path, 'melodic_IC.nii.gz')), \ - "melodic directy must contain a file called melodic_IC.nii.gz" - assert op.exists(op.join(path, 'melodic_mix')), \ - "melodic directy must contain a file called melodic_mix" - assert op.exists(op.join(path, 'melodic_FTmix')), \ - "melodic directy must contain a file called melodic_FTmix" + assert fslma.isMelodicDir(path), 'not a melodic directory: {}'.format(path)