From 801b6b7c9c70cbef84738d397abaddfc62811c78 Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauldmccarthy@gmail.com> Date: Thu, 3 May 2018 11:30:26 +0100 Subject: [PATCH] BF: Fixed invalid assumptions: - not all atlases have a 2mm version - label atlas value does not correspond to its index in the AtlasDescription.labels list. --- fsl/scripts/atlasq.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/fsl/scripts/atlasq.py b/fsl/scripts/atlasq.py index bd2459490..502965767 100644 --- a/fsl/scripts/atlasq.py +++ b/fsl/scripts/atlasq.py @@ -275,17 +275,27 @@ def ohi(namespace): dumpatlases() return + # atlasquery always uses 2mm atlas + # versions when a 2mm is available + reses = [p[0] for p in atlasDesc.pixdims] + + if 2 in reses: res = 2 + else: res = max(reses) + # Mask query. if namespace.ohiMask is not None: - # atlasquery always uses 2mm atlas versions mask = fslimage.Image(namespace.ohiMask) - labels, props = maskQuery(atlasDesc, [mask], resolution=2) + labels, props = maskQuery(atlasDesc, [mask], resolution=res) labels = labels[0] props = props[ 0] for lbl, prop in zip(labels, props): - lbl = atlasDesc.labels[int(lbl)].name + + if atlasDesc.atlasType == 'probabilistic': + lbl = atlasDesc.labels[int(lbl)].name + elif atlasDesc.atlasType == 'label': + lbl = atlasDesc.find(value=int(lbl)).name print('{}:{:0.4f}'.format(lbl, prop)) # Coordinate query @@ -295,7 +305,7 @@ def ohi(namespace): labels, props = coordQuery(atlasDesc, [coord], False, - resolution=2) + resolution=res) labels = labels[0] props = props[ 0] -- GitLab