nipype.algorithms.metrics module¶
Image assessment algorithms. Typical overlap and error computation measures to evaluate results from other processing units.
Distance¶
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 Euclidian distance between the Center of Gravity of volume1 and CoGs of volume2 “eucl_mean”: mean Euclidian minimum distance of all volume2 voxels to volume1 “eucl_wmean”: mean Euclidian minimum distance of all volume2 voxels to volume1 weighted by their values “eucl_max”: maximum over minimum Euclidian 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¶
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¶
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¶
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 (int or long)
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¶
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. Requiresnipy
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