There is a newer version of this record available.

Software Open Access


Brett, Matthew; Markiewicz, Christopher J.; Hanke, Michael; Côté, Marc-Alexandre; Cipollini, Ben; McCarthy, Paul; Jarecka, Dorota; Cheng, Christopher P.; Halchenko, Yaroslav O.; Cottaar, Michiel; Larson, Eric; Ghosh, Satrajit; Wassermann, Demian; Gerhard, Stephan; Lee, Gregory R.; Wang, Hao-Ting; Kastman, Erik; Kaczmarzyk, Jakub; Guidotti, Roberto; Daniel, Jonathan; Duek, Or; Rokem, Ariel; Madison, Cindee; Moloney, Brendan; Morency, Félix C.; Goncalves, Mathias; Markello, Ross; Riddell, Cameron; Sólon, Anibal; Burns, Christopher; Millman, Jarrod; Gramfort, Alexandre; Leppäkangas, Jaakko; van den Bosch, Jasper J.F.; Vincent, Robert D.; Braun, Henry; Subramaniam, Krish; Papadopoulos Orfanos, Dimitri; Van, Andrew; Gorgolewski, Krzysztof J.; Raamana, Pradeep Reddy; Klug, Julian; Nichols, B. Nolan; Baker, Eric M.; Hayashi, Soichi; Pinsard, Basile; Haselgrove, Christian; Hymers, Mark; Esteban, Oscar; Koudoro, Serge; Pérez-García, Fernando; Dockès, Jérôme; Oosterhof, Nikolaas N.; Amirbekian, Bago; Nimmo-Smith, Ian; Nguyen, Ly; Reddigari, Samir; St-Jean, Samuel; Panfilov, Egor; Garyfallidis, Eleftherios; Varoquaux, Gael; Legarreta, Jon Haitz; Hahn, Kevin S.; Waller, Lea; Hinds, Oliver P.; Fauber, Bennet; Roberts, Jacob; Poline, Jean-Baptiste; Stutters, Jon; Jordan, Kesshi; Cieslak, Matthew; Moreno, Miguel Estevan; Hrnčiar, Tomáš; Haenel, Valentin; Schwartz, Yannick; Baratz, Zvi; Darwin, Benjamin C; Thirion, Bertrand; Gauthier, Carl; Solovey, Igor; Gonzalez, Ivan; Palasubramaniam, Jath; Lecher, Justin; Leinweber, Katrin; Raktivan, Konstantinos; Calábková, Markéta; Fischer, Peter; Gervais, Philippe; Gadde, Syam; Ballinger, Thomas; Roos, Thomas; Reddam, Venkateswara Reddy; freec84

Most work on NiBabel so far has been by Matthew Brett (MB), Chris Markiewicz (CM), Michael Hanke (MH), Marc-Alexandre Côté (MC), Ben Cipollini (BC), Paul McCarthy (PM), Chris Cheng (CC), Yaroslav Halchenko (YOH), Satra Ghosh (SG), Eric Larson (EL), Demian Wassermann, Stephan Gerhard and Ross Markello (RM).

References like "pr/298" refer to github pull request numbers.

4.0.0 (Saturday 18 June 2022)

New feature release in the 4.0.x series.

New features
  • Add 'mask', 'compat' and 'smallest' dtype aliases to NIfTI images to allow for dtype specifications that can depend on the contents of the data. 'mask' is a synonym for uint8. 'compat' will find the nearest Analyze-compatible (therefore widely supported) dtype that will not truncate the data. 'smallest' attempts to find the smallest integer dtype that will contain the data. (pr/1096) (CM, reviewed by Chris Rorden and Josh Teves)
  • Add dtype arguments to Cifti2Image (pr/1111) (CM)
  • Allow dtypes to be passed to Analyze-like images at __init__() and to_filename() to provide better control over output images. (pr/1082) (CM, following discussions with Chris Rorden, Josh Teves, Jerome Dockes, and MB)
  • Allow compressed GIFTI images (MB, reviewed by CM)
  • Add zstd compression support (pr/1005) (Andrew Van, reviewed by CM)
  • Support ExternalFileBinary GIFTI data arrays (PM, reviewed by CM)
  • Document InTemporaryDirectory as non-thread-safe (pr/1103) (Jacob Roberts, reviewed by MB)
  • Unify Caret-XML-style metadata structure (GiftiMetaData, Cifti2MetaData) as dict-like (pr/1091) (CM, reviewed by Josh Teves and Hao-Ting Wang)
  • Add __repr__ methods to GIFTI objects (pr/1092) (CM, reviewed by Josh Teves and Hao-Ting Wang)
  • Create gzip header deterministically by default (pr/1024) (CM, reviewed by YOH)
  • Provide clear error message when files with zip extensions don't match file contents (pr/1013) (Jérôme Dockès, reviewed by CM)
Bug fixes
  • Re-import externals/ from scipy to resolve numpy API change (pr/1110) (CM)
  • Resize without helper function to avoid reference increment (pr/1093) (MC, reviewed by CM)
  • Update submodule URLs to use https over git protocol (pr/1097) (CM)
  • Published BIAP 9: CoordinateImage API (pr/1084) (CM)
  • Drop uses of deprecated distutils (pr/1073) (CM, reviewed by MB)
  • Suppress LGTM false alarm "Clear-text logging of sensitive information" (pr/1052) (Dimitri Papadopoulos, reviewed by CM)
  • Test on Python 3.10 (pr/1047) (CM)
  • Fix typos found by codespell (pr/1040, pr/1044) (Dimitri Papadopoulos, reviewed by CM)
  • Run stable tests weekly, pre-release tests nightly (pr/1025) (CM)
  • Documentation updates to establish/clarify governance and decision making (pr/1019, pr/1020, pr/1022, pr/1018, pr/1017, pr/1016) (MB and CM)
API changes and deprecations
  • Writing NIfTIs with 64-bit integer dtypes is getting harder. Passing (u)int64 arrays to Nifti1Image and subclasses will warn unless a header or dtype option is passed; in the future this will become an error. Additionally, passing int or 'int' to set_data_dtype() now raises an error, requiring an explicit numpy dtype to make 64-bit integer images. (pr/1082) (CM, following discussions with Chris Rorden, Josh Teves, Jerome Dockes, and MB)
  • Drop support for Python 3.6, Numpy < 1.17 (pr/1079) (CM)
  • Fully removed the following APIs, which have raised errors on use since 3.0 (pr/980) (CM, reviewed by Jonathan Daniel)
    • nibabel.trackvis
    • nibabel.volumeutils.calculate_scale
    • nibabel.volumeutils.can_cast
    • nibabel.volumeutils.scale_min_max
    • nibabel.dataobj_images.DataobjImage.get_shape
    • nibabel.minc1.MincImage (use Minc1Image)
    • nibabel.minc1.MincFile (use Minc1File)
    • nibabel.filebasedimages.FileBasedImage.from_files
    • nibabel.filebasedimages.FileBasedImage.filespec_to_files
    • nibabel.filebasedimages.FileBasedImage.to_filespec
    • nibabel.filebasedimages.FileBasedImage.to_files
    • nibabel.arrayproxy.ArrayProxy.header
    • keep_file_open=="auto" parameter to load method (now must be boolean)
Files (4.7 MB)
Name Size
4.7 MB Download
All versions This version
Views 6,158489
Downloads 4137
Data volume 1.5 GB33.0 MB
Unique views 4,871412
Unique downloads 2007


Cite as