diff --git a/fsl/data/mesh.py b/fsl/data/mesh.py index edd16c3d74a6685bba7ea91a1b01e976d0d39c60..ce7094e58a9d683cfdd607d98211e2d246a91edf 100644 --- a/fsl/data/mesh.py +++ b/fsl/data/mesh.py @@ -243,7 +243,7 @@ def loadVTKPolydataFile(infile): def getFIRSTPrefix(modelfile): """If the given ``vtk`` file was generated by `FIRST <https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FIRST>`_, this function - will return the file prefix. Otherwise an ``Exception`` will be + will return the file prefix. Otherwise a ``ValueError`` will be raised. """ @@ -268,8 +268,18 @@ def findReferenceImage(modelfile): try: - prefix = getFIRSTPrefix(modelfile) - return fslimage.addExt(prefix, mustExist=True) - + dirname = op.dirname(modelfile) + prefixes = [getFIRSTPrefix(modelfile)] except: return None + + if prefixes[0].endswith('_first'): + prefixes.append(prefixes[0][:-6]) + + for p in prefixes: + try: + return fslimage.addExt(op.join(dirname, p), mustExist=True) + except: + continue + + return None