nipype.algorithms.metrics module

Image assessment algorithms. Typical overlap and error computation measures to evaluate results from other processing units.

Distance

Link to code

Bases: BaseInterface

Calculates distance between two volumes.

volume1a pathlike object or string representing an existing file

Has to have the same dimensions as volume2.

volume2a pathlike object or string representing an existing file

Has to have the same dimensions as volume1.

mask_volumea pathlike object or string representing an existing file

Calculate overlap only within this mask.

method‘eucl_min’ or ‘eucl_cog’ or ‘eucl_mean’ or ‘eucl_wmean’ or ‘eucl_max’

“”eucl_min”: Euclidean distance between two closest points “eucl_cog”: mean Euclidean distance between the Center of Gravity of volume1 and CoGs of volume2 “eucl_mean”: mean Euclidean minimum distance of all volume2 voxels to volume1 “eucl_wmean”: mean Euclidean minimum distance of all volume2 voxels to volume1 weighted by their values “eucl_max”: maximum over minimum Euclidean distances of all volume2 voxels to volume1 (also known as the Hausdorff distance). (Nipype default value: eucl_min)

distance : a float histogram : a pathlike object or string representing a file point1 : an array with shape (3,) point2 : an array with shape (3,)

ErrorMap

Link to code

Bases: BaseInterface

Calculates the error (distance) map between two input volumes.

Example

>>> errormap = ErrorMap()
>>> errormap.inputs.in_ref = 'cont1.nii'
>>> errormap.inputs.in_tst = 'cont2.nii'
>>> res = errormap.run() 
in_refa pathlike object or string representing an existing file

Reference image. Requires the same dimensions as in_tst.

in_tsta pathlike object or string representing an existing file

Test image. Requires the same dimensions as in_ref.

metric‘sqeuclidean’ or ‘euclidean’

Error map metric (as implemented in scipy cdist). (Nipype default value: sqeuclidean)

maska pathlike object or string representing an existing file

Calculate overlap only within this mask.

out_mapa pathlike object or string representing a file

Name for the output file.

distancea float

Average distance between volume 1 and 2.

out_mapa pathlike object or string representing an existing file

Resulting error map.

FuzzyOverlap

Link to code

Bases: SimpleInterface

Calculates various overlap measures between two maps, using the fuzzy definition proposed in: Crum et al., Generalized Overlap Measures for Evaluation and Validation in Medical Image Analysis, IEEE Trans. Med. Ima. 25(11),pp 1451-1461, Nov. 2006.

in_ref and in_tst are lists of 2/3D images, each element on the list containing one volume fraction map of a class in a fuzzy partition of the domain.

Example

>>> overlap = FuzzyOverlap()
>>> overlap.inputs.in_ref = [ 'ref_class0.nii', 'ref_class1.nii' ]
>>> overlap.inputs.in_tst = [ 'tst_class0.nii', 'tst_class1.nii' ]
>>> overlap.inputs.weighting = 'volume'
>>> res = overlap.run() 
in_refa list of items which are a pathlike object or string representing an existing file

Reference image. Requires the same dimensions as in_tst.

in_tsta list of items which are a pathlike object or string representing an existing file

Test image. Requires the same dimensions as in_ref.

in_maska pathlike object or string representing an existing file

Calculate overlap only within mask.

out_filea pathlike object or string representing a file

Alternative name for resulting difference-map. (Nipype default value: diff.nii)

weighting‘none’ or ‘volume’ or ‘squared_vol’

‘none’: no class-overlap weighting is performed. ‘volume’: computed class-overlaps are weighted by class volume ‘squared_vol’: computed class-overlaps are weighted by the squared volume of the class. (Nipype default value: none)

class_fdia list of items which are a float

Array containing the fDIs of each computed class.

class_fjia list of items which are a float

Array containing the fJIs of each computed class.

dicea float

Fuzzy Dice Index (fDI), all the classes.

jaccarda float

Fuzzy Jaccard Index (fJI), all the classes.

Overlap

Link to code

Bases: BaseInterface

Calculates Dice and Jaccard’s overlap measures between two ROI maps. The interface is backwards compatible with the former version in which only binary files were accepted.

The averaged values of overlap indices can be weighted. Volumes now can be reported in \(mm^3\), although they are given in voxels to keep backwards compatibility.

Example

>>> overlap = Overlap()
>>> overlap.inputs.volume1 = 'cont1.nii'
>>> overlap.inputs.volume2 = 'cont2.nii'
>>> res = overlap.run() 
bg_overlapa boolean

Consider zeros as a label. (Nipype default value: False)

vol_units‘voxel’ or ‘mm’

Units for volumes. (Nipype default value: voxel)

volume1a pathlike object or string representing an existing file

Has to have the same dimensions as volume2.

volume2a pathlike object or string representing an existing file

Has to have the same dimensions as volume1.

mask_volumea pathlike object or string representing an existing file

Calculate overlap only within this mask.

out_filea pathlike object or string representing a file

(Nipype default value: diff.nii)

weighting‘none’ or ‘volume’ or ‘squared_vol’

‘none’: no class-overlap weighting is performed. ‘volume’: computed class-overlaps are weighted by class volume ‘squared_vol’: computed class-overlaps are weighted by the squared volume of the class. (Nipype default value: none)

dicea float

Averaged dice index.

diff_filea pathlike object or string representing an existing file

Error map of differences.

jaccarda float

Averaged jaccard index.

labelsa list of items which are an integer

Detected labels.

roi_dia list of items which are a float

The Dice index (DI) per ROI.

roi_jia list of items which are a float

The Jaccard index (JI) per ROI.

roi_voldiffa list of items which are a float

Volume differences of ROIs.

volume_differencea float

Averaged volume difference.

Similarity

Link to code

Bases: NipyBaseInterface

Calculates similarity between two 3D or 4D volumes. Both volumes have to be in the same coordinate system, same space within that coordinate system and with the same voxel dimensions.

Note

This interface is an extension of nipype.interfaces.nipy.utils.Similarity to support 4D files. Requires nipy

Example

>>> from nipype.algorithms.metrics import Similarity
>>> similarity = Similarity()
>>> similarity.inputs.volume1 = 'rc1s1.nii'
>>> similarity.inputs.volume2 = 'rc1s2.nii'
>>> similarity.inputs.mask1 = 'mask.nii'
>>> similarity.inputs.mask2 = 'mask.nii'
>>> similarity.inputs.metric = 'cr'
>>> res = similarity.run() 
volume1a pathlike object or string representing an existing file

3D/4D volume.

volume2a pathlike object or string representing an existing file

3D/4D volume.

mask1a pathlike object or string representing an existing file

3D volume.

mask2a pathlike object or string representing an existing file

3D volume.

metric‘cc’ or ‘cr’ or ‘crl1’ or ‘mi’ or ‘nmi’ or ‘slr’ or a callable value

Str or callable Cost-function for assessing image similarity. If a string, one of ‘cc’: correlation coefficient, ‘cr’: correlation ratio, ‘crl1’: L1-norm based correlation ratio, ‘mi’: mutual information, ‘nmi’: normalized mutual information, ‘slr’: supervised log-likelihood ratio. If a callable, it should take a two-dimensional array representing the image joint histogram as an input and return a float. (Nipype default value: None)

similarity : a list of items which are a float